{"version":3,"file":"AE.general.min.js","sources":["AE.general.min.js"],"sourcesContent":["/*\n===================================================================================================\nThis module declares top-level methods and instantiates the AE object. It must be loaded first.\n===================================================================================================\n*/\n\n\n/*\nThe AE object will be the returned result of a self-invoked function. This allows us to expose methods\nfor use by other modules while protecting some variables in a closure. If the APP.ui object is already\ndefined then it's not altered. This prevents us from running the entire function each time one of its\ninternal methods are called.\n*/\n;\nvar AE = AE || (function() {\n /* This is where we set variables and things that will only live inside the closure. */\n var APP = {\n resizeTasks: [],\n scrollTasks: [],\n transitionTasks: [],\n displayObjects: {\n /*\n This is just a container for any custom modules that go along with Mura display objects. There\n isn't an init function for this. It's more of a library for other submodules.\n\n Nothing will be added in this file. Display objects will add themselves to it, and will live\n within the AE object.\n\n It's important to know that display objects could load before this file. To prevent that, they\n are written to only run when a global Deferred Object is resolved by this controller module,\n and to add themselves to the displayObjects property at that time.\n */\n },\n components: {\n // A container for custom components in Mura. They'll be added in a way that's similar to display objects.\n },\n init: function() {\n APP.props = {\n $bodyElement: $('body'),\n $scrollContainer: $('#scroll-container'),\n $scrollContent: $('#scroll-content'),\n $stickyWrapper: $('#sticky-wrapper'),\n $siteContainer: $('#site-container'),\n $mainFooter: $('#main-footer'),\n $mainFooterContent: $('#main-footer__content'),\n $mainNav: $('#mainnav'),\n $masthead: $('#masthead'),\n $mainNavLink: $('#mainnav__link'),\n $mainNavFull: $('#mainnav').add('#mainnav__link'),\n isLegacy: ($('html').hasClass('ua-ie-9')), // If the user is browsing with IE 9, No longer support 8.\n isIE: false,\n googleMapsAPIKey: '',\n isAUNZ: false\n };\n\n if (oSite) {\n if (_.isObject(oSite)) { $.extend(true, APP.props, oSite); }\n }\n if (AE.props.chaosSystem) { APP.props.isAUNZ = (AE.props.chaosSystem === 'AU' || AE.props.chaosSystem === 'NZ') ? true : false; }\n APP.buildURLObject();\n\n /*\n The transition event is different across browsers, so this function will loop through them\n until it gets a hit. Once done, event handlers can be registered to the variable. This is\n currently used in the matrix, with a fallback to jQuery animate for legacy browsers. - bcribb\n */\n APP.props.transEnd = (function() {\n var t;\n var el = document.createElement('fakeelement');\n var transitions = {\n 'transition': 'transitionend',\n 'OTransition': 'oTransitionEnd',\n 'MozTransition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd'\n };\n\n for (t in transitions) {\n if (el.style[t] !== undefined) {\n return transitions[t];\n }\n }\n })();\n\t\t\t\n\t\t\t/* getSiteViewType() references the props object, so this can't just be tossed into props. */\n\t\t\tAPP.windowSize = APP.getSiteViewType();\n\t\t\t\n\t\t\t// Set the Criteo Tag view type to the data layer object\n\t\t\taeDataLayer.push({\"criteoSiteType\":APP.getCriteoTagSiteViewType()});\n\t\t\t\n\t\t\t/*\n\t\t\t\tThis will be used to compare window width before and after a resize. This way, we only resize\n\t\t\t\twhen the window WIDTH changes, and not when the height changes. Starts as null because\n\t\t\t\tmanageResize needs to fail the first test so it can run once on page load.\n\t\t\t*/\n\t\t\tAPP.width = null;\n\t\t\t\n\t\t\tif (AE.privateBrowsing) {\n\t\t\t\tAE.privateBrowsing.init();\n\t\t\t}\n\t\t\tif (AE.nav) {\n\t\t\t\tAE.nav.init();\n\t\t\t}\n\t\t\t/* Legacy and Utils are used by Autocomplete. */\n\t\t\tif (AE.legacy) {\n\t\t\t\tAE.legacy.init();\n\t\t\t\tAPP.props.isIE = AE.legacy.grief.isIE;\n\t\t\t}\n\t\t\tif (AE.utils) {\n\t\t\t\tAE.utils.init();\n\t\t\t}\n\t\t\tif (AE.ui) {\n\t\t\t\tAE.ui.init(); /* This init will run init functions for its sub-modules. */\n\t\t\t}\n\t\t\tif (AE.ga && AECookie.read('iosTrackingDisabled') !== 'true') { /*Google Analytics*/\n\t\t\t\tAE.ga.init();\n\t\t\t}\n\t\t\tif (AE.cd && AECookie.read('iosTrackingDisabled') !== 'true') {/* Tracking Dimensions */\n\t\t\t\twindow.addEventListener('load', checkAEcd);\n\t\t\t}\n\t\t\tif (AE.forms) {\n\t\t\t\tAE.forms.init();\n\t\t\t}\n if (AE.maps) {\n AE.maps.init();\n }\n\t\t\tif (AE.account) {\n\t\t\t\tAE.account.init();\n\t\t\t}\n if (AE.modal) {\n AE.modal.init();\n }\n\t\t\tif (AE.mura) { \n\t\t\t\twindow.addEventListener('load', checkMura);\n\t\t\t}\n\t\t\tif (AE.newsletter) {\n\t\t\t\tAE.newsletter.init();\n\t\t\t}\n if (AE.feeds) {\n AE.feeds.init();\n }\n if (AE.booking && $('#aebooking,#aemodify,#peugeot-buy-back')[0]) {\n AE.booking.init(); /* This init will run init functions for its sub-modules. */\n }\n\t\t\t// White label iFrame pages\n\t\t\tif ($('.whitelabel-if')[0]) {\n\t\t\t\twindow.addEventListener('load', checkWlIframeResizer);\n\t\t\t}\n \n // Preventing persistent button loading states\n // WEBAE3-5945 - Reset any disabled elements on initial page show (to fix back/forward navigation issues)\n window.addEventListener('pageshow', resetLoadingBtns);\n\n function resetLoadingBtns()\n {\n $('.ui--btn-submit-wait').removeAttr('disabled').removeClass('btn--no-icon').find('i.fa-cog').remove();\n $('.rateFinger__button').removeAttr('disabled').removeClass('btn--no-icon');\n $('.insurance__options.last td.btn-disabled i.fa-cog, #insuranceUI .package-btn-wrapper.btn-disabled i.fa-cog').remove();\n $('.insurance__options.last td.btn-disabled, #insuranceUI .package-btn-wrapper.btn-disabled').removeClass('btn-disabled');\n $('#carUpgradeY, #carUpgradeN').removeAttr('disabled');\n $('.fingerCancelLink').css('pointer-events', 'all');\n \n // iPhone Safari only:\n if($('body').attr('id') == 'results' && $('html').hasClass('ios') && $('html').hasClass('mobile') && $('html').hasClass('ua-safari') && $('.ui--btn-submit-wait').length) {\n AE.ui.init();\n AE.booking.matrix.init();\n AE.ui.search.init();\n }\n \n $('.ui--btn-submit-wait').removeClass('ui--btn-submit-wait');\n }\n \n\t\t\t// White label page within an iFrame window\n\t\t\tfunction checkWlIframeResizer() {\n\t\t\t\tif ('parentIFrame' in window) {\n\t\t\t\t\t// AE PAGE URLs: /, /search/, /results/, /options/, /upgrade/, /checkout/, /confirmation/\n\t\t\t\t\tvar wlIframePagesNotToScrollToTheTop = [\"\", \"/\", \"/search/\", \"/foo/\", \"/bar/\"]; //zero-based\n\t\t\t\t\tif (wlIframePagesNotToScrollToTheTop.indexOf(oSite.path_info) < 0) {\n\t\t\t\t\t\t// if we do not find a page in the list, that means we want to shift the parent page\n\t\t\t\t\t\tvar amountOfParentWindowToShow = 50; //in pixels\n\t\t\t\t\t\twindow.parentIFrame.getPageInfo(function(parentPageInfo) { \n\t\t\t\t\t\t\tvar distanceFromParentTopToIframe = parentPageInfo.offsetTop;\n\t\t\t\t\t\t\tvar amountToScrollParentWindow = distanceFromParentTopToIframe - amountOfParentWindowToShow;\n\t\t\t\t\t\t\twindow.parentIFrame.scrollTo(0, amountToScrollParentWindow); //scroll the parent page\n\t\t\t\t\t\t\twindow.parentIFrame.getPageInfo(false); //stop trying to auto-scroll\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (wlIframePagesNotToScrollToTheTop.indexOf(oSite.path_info) == 0 || wlIframePagesNotToScrollToTheTop.indexOf(oSite.path_info) == 1) {\n\t\t\t\t\t\t// This is the homepage (array is zero-based)\n\t\t\t\t\t\t/*\n\t\t\t\t\t\twindow.parentIFrame.scrollTo(0,0); //scroll the parent page to it's top\n\t\t\t\t\t\twindow.parentIFrame.getPageInfo(false); //stop trying to auto-scroll\n\t\t\t\t\t\t*/\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\twindow.removeEventListener('load', checkWlIframeResizer);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\treturn checkWlIframeResizer();\n\t\t\t\t},100); // wait 1/10th of a second\n\t\t\t}\n\t\t\t\n\t\t\tfunction checkAEcd() {\n\t\t\t\tif ('AECustomDimension' in window) {\n\t\t\t\t\tAE.cd.init();\n\t\t\t\t\twindow.removeEventListener('load', checkAEcd);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn checkAEcd();\n\t\t\t}\n\t\t\t\n\t\t\tfunction checkMura() {\n\t\t\t\tif ('mura' in window) {\n\t\t\t\t\tAE.mura.init();\n\t\t\t\t\twindow.removeEventListener('load', checkMura);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn checkMura();\n\t\t\t}\n\t\t\t\n /*\n Setup debouncing for resize tasks. Run the manageResize function once upon init. This part relies upon having UnderscoreJS\n loaded along with jQuery. It runs all resize tasks at the end of a resize. DO NOT CHANGE THIS TO A THROTTLE. It lowers our\n performance considerably and the manageResize task will error out.\n http://underscorejs.org/\n */\n var debounced = _.debounce(APP.manageResize, 250);\n $(window).on('resize', debounced);\n\n var debounceScroll = _.debounce(APP.manageScroll, 0, true);\n $('#scroll-content').on('scroll', debounceScroll);\n\n /* Initial resize tasks */\n var initTasks = {\n func: function() {\n /* These lines of code will be run during resize, but they'll be throttled. */\n\n var siteSize = APP.getSiteViewType();\n\n /* Support for CSS break-points */\n if (siteSize === 'desk' || siteSize === 'desk-wide') {\n // Add or remove classes if the window is big.\n } else {\n // Add or remove classesif the window is small.\n }\n\n /* Some tasks need to be run only when transitioning to or from the palm size. */\n\n /* If the current size doesn't match the last known size. */\n if (APP.windowSize !== siteSize) {\n\n if (APP.windowSize === 'palm') {\n /* Starting size was palm, which means that we're getting larger. Moving up. */\n APP.palmTransition(false);\n } else {\n /*\n Started at a larger size, so we only want to do something if we're going to palm. We don't want\n to change anything if we're just going from 'desk' to 'lap', for example.\n */\n if (siteSize === 'palm') {\n APP.palmTransition(true);\n }\n }\n /* After sorting out what to do, set the new props size. */\n APP.windowSize = siteSize;\n\n } else {\n /* Sizes match, so there's no need to do anything. */\n\n }\n },\n args: [] // No arguments, so it's an empty array.\n };\n initTasks.func(initTasks.args); // Initial call of initial resize task.\n APP.addResizeTask(initTasks);\n APP.manageResize();\n \n /* Uncomment this block of code to see when the palmTransition() function fires, and to see the arguments array.\n var myFunction = function() {\n console.log('myfunction: ' + arguments[0]);\n console.log(arguments);\n }\n var myTask = {func:myFunction, args:['arg1','arg2']}\n APP.addTransitionTask(myTask);\n */\n dfd_ready.resolve();\n if (AE.forms) AE.forms.postAutoForm();\n },\n _augmentPrivateBrowsingLocalStorage: function() {\n // See gist.github.com/jarrodirwin/\n // Refer to gist.github.com/remy/350433\n var Storage = function(type) {\n function createCookie(name, value, days) {\n var date, expires;\n\n if (days) {\n date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = \"; expires=\" + date.toGMTString();\n } else {\n expires = \"\";\n }\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\n }\n\n function readCookie(name) {\n var nameEQ = name + \"=\",\n ca = document.cookie.split(';'),\n i, c;\n\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n }\n\n function setData(data) {\n data = encodeURIComponent(JSON.stringify(data));\n return (type == 'session') ? createCookie(getSessionName(), data, 365) : createCookie('localStorage', data, 365);\n }\n\n function clearData() {\n return (type == 'session') ? createCookie(getSessionName(), '', 365) : createCookie('localStorage', '', 365);\n }\n\n function getData() {\n var data = type == 'session' ? readCookie(getSessionName()) : readCookie('localStorage');\n return data ? JSON.parse(decodeURIComponent(data)) : {};\n }\n\n function getSessionName() {\n if (!window.name) window.name = new Date().getTime();\n return 'sessionStorage' + window.name;\n }\n\n var data = getData();\n\n return {\n length: 0,\n clear: function() {\n data = {};\n this.length = 0;\n clearData();\n },\n getItem: function(key) {\n return data[key] === undefined ? null : data[key];\n },\n key: function(i) {\n // not perfect, but works\n var ctr = 0;\n for (var k in data) {\n if (ctr == i) return k;\n else ctr++;\n }\n return null;\n },\n removeItem: function(key) {\n delete data[key];\n this.length--;\n setData(data);\n },\n setItem: function(key, value) {\n data[key] = value + '';\n this.length++;\n setData(data);\n }\n };\n };\n\n // Replace window.localStorage and window.sessionStorage with out custom implementation.\n var localStorage = new Storage('local');\n var sessionStorage = new Storage('session');\n\n window.localStorage = localStorage;\n window.sessionStorage = sessionStorage;\n // For Safari private browsing need to also set the proto value.\n if (window.localStorage) {\n window.localStorage.__proto__ = localStorage;\n window.sessionStorage.__proto__ = sessionStorage;\n }\n },\n addResizeTask: function(task) {\n /*\n\n Adds and object with a \"func\" property and an \"args\" property. This is VERY important, because we use the apply() method\n in manageResize(). All tasks in the queue will be run during resize. We throttle resizing to keep things from getting too crazy.\n\n Basic syntax:\n myTask = {func:myFunction, args:[arg1,arg2]}\n\n Example of adding a task:\n var myTask = { func: function(){console.log(\"I'm resizing!\")} }\n APP.addResizeTask(myTask);\n\n Or you could be fancy and do this:\n APP.addResizeTask( { func: function(){console.log(\"I'm resizing!\")} } );\n */\n\n task.args = task.args || [];\n APP.resizeTasks.push(task);\n },\n addScrollTask: function(task) {\n task.args = task.args || [];\n APP.scrollTasks.push(task);\n },\n addTransitionTask: function(task) {\n /*\n Same as addResizeTask() but meant for the transition between the \"palm\" size and anything larger.\n\n IMPORTANT NOTE: Syntax is the same as above, but the first argument will always be the direction of the transition. So if you\n send in the following:\n -- var myTask = {func:myFunction, args:[arg1,arg2]}\n -- APP.addTransitionTask(myTask);\n\n It would be executed like this:\n -- myFunction(direction,arg1,arg2);\n\n */\n\n task.args = task.args || [];\n\n /*\n Insert a false value in the beginning of the args array. This is a placeholder for the \"toPalm\" variable and will be updated\n each time the palmTransition() function is run.\n */\n task.args.unshift(false);\n APP.transitionTasks.push(task);\n },\n manageResize: function() {\n var newWidth = APP.props.$bodyElement.outerWidth(true);\n\n\n // Correct footer height\n if (APP.props.$bodyElement.hasClass('searchwait') || APP.props.$bodyElement.hasClass('sticky-active')) {\n\n // The CSS kills the absolute positioning on the footer, so we don't need to compensate by addign padding to the container.\n var footerHeight = (APP.getSiteViewType() === 'palm') ? 0 : $('#main-footer__content').outerHeight(true);\n\n APP.props.$mainFooter.height(footerHeight); //.addClass('sticky');\n APP.props.$stickyWrapper.css('padding-bottom', footerHeight);\n }\n\n\n // If the width has changed, then run resize tasks. Forget the window height.\n if (APP.width !== newWidth) {\n\n // Set width to the new window width\n APP.width = newWidth;\n\n // Cycle through resize tasks.\n for (var i = 0; i < APP.resizeTasks.length; i++) {\n var task = APP.resizeTasks[i];\n task.func.apply(this, task.args);\n }\n }\n },\n manageScroll: function() {\n // Cycle through scroll tasks.\n for (var i = 0; i < APP.scrollTasks.length; i++) {\n var task = APP.scrollTasks[i];\n task.func.apply(this, task.args);\n }\n },\n heightAdjust: function() {\n var eleHeight = 0;\n\n $(arguments[0]).each(function() {\n $(this).height(''); // set to auto height\n });\n $(arguments[0]).each(function() {\n eleHeight = ($(this).height() > eleHeight) ? $(this).height() : eleHeight; // find tallest element\n });\n $(arguments[0]).each(function() {\n $(this).height(eleHeight); // set height of the tallest element\n });\n\n return eleHeight;\n },\n palmTransition: function(toPalm) {\n /*\n NOTE: This function is called by initTasks(), which is the first task function added to manageResize() above. Every resize,\n the window size is checked to see if this function should be run.\n\n Once run, we cycle through the palm transition tasks. \"toPalm\" is true when arriving at palm from a larger size, false when moving up from\n palm to a larger size. We initialize the variable to false in case it isn't passed in for some reason.\n */\n toPalm = toPalm || false;\n for (var i = 0; i < APP.transitionTasks.length; i++) {\n var task = APP.transitionTasks[i];\n /* The first argument is inserted by addTransitionTask() as a placeholder for the \"toPalm\" variable. */\n task.args[0] = toPalm;\n task.func.apply(this, task.args);\n }\n },\n getSiteViewType: function() {\n var sizes = {\n /*\n Support for CSS break-points. If you change them in the variables Sass file, then\n you need to change them here as well. This function should be used in harmony with CSS.\n */\n lapStart: 701,\n deskStart: 1024,\n deskWideStart: 1200\n };\n currentSize = APP.props.$bodyElement.outerWidth(true);\n sizeType = \"palm\";\n\n if (currentSize >= sizes.lapStart) {\n sizeType = \"lap\";\n }\n if (currentSize >= sizes.deskStart) {\n sizeType = \"desk\";\n }\n if (currentSize >= sizes.deskWideStart) {\n sizeType = \"desk-wide\";\n }\n return sizeType;\n },\n\t\tgetCriteoTagSiteViewType: function() {\n\t\t\tswitch (AE.getSiteViewType()) {\n\t\t\t\tcase 'palm':\n\t\t\t\t\tsizeType = 'm';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'lap':\n\t\t\t\t\tsizeType = 't';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'desk':\n\t\t\t\tcase 'desk-wide':\n\t\t\t\t\tsizeType = 'd';\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsizeType = 'd';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t\treturn(sizeType);\n\t\t},\n buildURLObject: function() {\n APP.url = APP.url || {};\n APP.url.props = APP.url.props || {};\n APP.url.props.host = window.location.hostname;\n APP.url.props.path = window.location.pathname;\n APP.url.props.protcol = window.location.protocol;\n APP.url.props.query = window.location.search;\n APP.url.props.href = window.location.href;\n var qString = (APP.url.props.query.length && APP.url.props.query.substring(0, 1) === '?') ? APP.url.props.query.substring(1) : APP.url.props.query;\n var aPairs = qString.split('&');\n for (var i = 0; i < aPairs.length; i++) {\n var aKeyVal = aPairs[i].split('=');\n if (aKeyVal[0].trim().length) APP.url[aKeyVal[0].trim()] = (aKeyVal[1]) ? aKeyVal[1].trim() : true;\n }\n }\n };\n return APP;\n})();\n\n/*\nThe comments below will tell the Prepros app to append the listed JavaScript files, resulting in one big JavaScript file.\nOur third-party service will then minify this in Production.\nhttp://discuss.prepros.io/t/concatenate-and-minify-javascript/19\n*/\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\nAE.account = AE.account || (function () {\n\t/*\n\tDEPENDENCIES: AE\n\t*/\n\tvar APP = {\n\t\tinit: function () {\n\t\t\t$('.arrow').show();\n\t\t\tvar resetInput = document.getElementById('member_reset_email');\n\t\t\tvar resetBttn = document.getElementById('account_lookup_button');\n\n\t\t\t APP.props = {\n $resetInput: document.getElementById('member_reset_email'),\n $resetBttn: $(\"form.validate\"),\n $isInCheckout: window.location.pathname.split('/')[1] == 'checkout',\n \t\t\t\t$isInMemberAccount: window.location.pathname.split('/')[1] == 'member-accounts',\n $accountLoginForm: $(\"form#account_login_form:visible\"),\n $isInLogin:($(\"form#account_login_form:visible\").length !=0) ? true :false,\n $isLoggedIn: (window.jsloginStatus == 'true' || window.jsloginStatus)? true :false, \n $memberDefaultSection: $('#member_account_information_block'), \n $ObjMember: '/plugins/ae3/lib/Member3.cfc' ,\n $ObjAff: '/plugins/ae3/lib/Affiliate3.cfc' \n \t}; \t\n\n\t\t\tif(APP.props.$resetInput){\n\t\t\t\tAPP.props.$resetInput.addEventListener('keydown',function(e){\n\t\t\t\t\tif(e.which == 13){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tAPP.props.$resetBttn.click();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t//Added for WEBAE3-4802 - VM\n\n\t\t\tlet countryStates = ['US', 'AU', 'CA', 'BR', 'ZA'];\n\n\t\t\t$( window ).load(function() {\t\t\t\t\n\t\t\t\tvar selectedName = $('.country--select').find(\":selected\").val();\n\t\t\t\tif (countryStates.includes(selectedName)) {\n\t\t\t\t\t$('.state-container').show();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$('.state-container').removeAttr(\"style\").hide();\n\t\t\t\t}\t\n\t\t\t});\n\t\t\t\n\t\t\t//Added for WEBAE3-4802 - VM\n\t\t\t\n\t\t\t$('.country--select').change(function(){\n\t\t\t\tvar chosenCountry = $(this).val();\t\t\t\n\t\t\t\tif(countryStates.includes(chosenCountry)){ \n\t\t\t\t\t$('.state-container').show();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$('.state-container').removeAttr(\"style\").hide();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('#account_update').on('focus', '.state--select,.country--select', function(){\t\t\t\t\n\t\t\t \tvar isValid = $(this).parent().hasClass('ui-state-valid'); \n\t\t\t \tvar isInValid = $(this).parent().hasClass('ui-state-invalid'); \n\t\t\t \tif(!isValid && !isInValid){$(this).parent().css(\"border\", \"2px solid #3089e0\");}\n\t\t\t});\n\n\t\t\t$('#account_update').on('blur', '.state--select,.country--select', function(){\t\t\t\t\n\t\t\t \t$(this).parent().css(\"border\", \"2px solid #5fba35\");\n\t\t\t});\n\n\t\t\t$('div.member_accounts [data-pattern=\"notblank\"],div.member_accounts [data-pattern=\"email\"]').on('keyup blur', function(ele) {\n\t\t\t\tvar $formId = $(this).parents('form').attr('id');\n\t\t\t\tvar $fld = $(this).attr('name');\n\t\t\t\tAPP.clearServerError($formId,$fld);\t\t\t\t\t\n\t\t\t});\n\n\t\t\n\t\t\t// only initilize load member information for acount logged in page\n\t\t\t//isInMemberAccount = window.location.pathname.split('/')[1] == 'member-accounts';\n\t\t\n\t\t\t$('input.validateEmail').on('keyup blur', function(ele) {\n\t\t\t\tvar $formId = $(this).parents('form').attr('id');\n\t\t\t\tvar $match = $(this).attr('data-match');\n\t\t\t\tvar $checkOther = $('#' + $formId + ' input[name=' + $match + ']');\n\t\t\t\tAPP.initCustomMatchVerification(this);\n\t\t\t\tAPP.initCustomMatchVerification($checkOther);\t\t\t\t\n\t\t\t});\n\n\t\t\n\t\t\t$('input.validateRemail').on('keyup blur', function(ele) {\n\t\t\t\tAPP.initCustomMatchVerification(this);\t\n\t\t\t});\n\n\t\t\t$('input.validateRemail').on('paste', function(ele) {\n\t\t\t\tvar $formId = $(this).parents('form').attr('id');\n\t\t\t\tAPP.removeGuardianError($formId,$(this).attr('name'));\n\t\t\t});\n\n\n\t\t $('input#member_reemail').on('blur keyup', function(ele) {\n\t\t\t\tAPP.initCustomMatchVerification(this);\n\t\t\t});\n\t\n\t\t $('input.validateRepass').on('focus blur keyup', function() {\n\t\t \t\tvar $result = APP.initCustomMatchVerification(this);\n\t\t\t});\n\n\t\t\t$('input.validatePassword').on('focus keyup blur', function(ele) {\n\n\t\t\t\tvar $formId = $(this).parents('form').attr('id');\n\n\t\t\t\tvar $match = $(this).attr('data-match');\n\t\t\t\tvar $checkOther = $('#' + $formId + ' input[name=' + $match + ']');\n\t\t\t\tif($(this).hasClass('legacy')){\n\t\t\t\t\tAPP.checkPasswordLegacy($formId);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tAPP.checkPassword($formId);\n\t\t\t\t\tAPP.initCustomMatchVerification($checkOther);\n\t\t\t\t}\t\t\t\t\t\t\n\t\t\t});\n\n\t\t $('input#current_password').on('blur', function(ele) {\n\t\t\t\tvar $formId = $(this).parents('form').attr('id');\n\t\t\t var $error_ele = APP.getErrorEle($formId,$(this).attr('name'));\n\t\t\t\tAPP.removeGuardianError($formId,$(this).attr('name'));\n\t\t\t\t$($error_ele ).html('');\t\n\t\t\t});\n\n\n\t $('input.current_pwd').on('blur', function(ele) {\n\t\t\t\tvar $formId = $(this).parents('form').attr('id');\n\t\t\t var $error_ele = APP.getErrorEle($formId,$(this).attr('name'));\n\t\t\t\t//APP.removeGuardianError($formId,$(this).attr('name'));\n\t\t\t\t$($error_ele ).html('');\t\n\t\t\t});\n\n\t\t $('input#member_email').on('blur', function(ele) {\n\t\t \t var $formId = $(this).parents('form').attr('id');\n\t\t \t var $error_ele = APP.getErrorEle($formId,'member_email');\n\t\t\t\t$($error_ele).html('');\t\n\t\t\t});\n\n\t\t\tif (APP.props.$isInMemberAccount && !APP.props.$isInLogin) {\n\n\t\t\t\t $('#member_signup #country,#state').on('blur', function() {\n\t\t\t\t\t$(this).parent().css(\"border\", \"2px solid #5fba35\");\t\t\t\t\t\n\t\t\t\t });\n\n\t\t\t\t $('#member_signup #country,#state').on('focus', function() {\n\t\t\t\t \tvar isValid = $(this).parent().hasClass('ui-state-valid'); \n\t\t\t\t \tvar isInValid = $(this).parent().hasClass('ui-state-invalid'); \n\t\t\t\t \tif(!isValid && !isInValid){$(this).parent().css(\"border\", \"2px solid #3089e0\");}\t\t\t\t\t\n\t\t\t\t });\n\n\t\t\t\t//jsloginStatus status appears to be not a true boolean\n\t\t\t\tif (APP.props.$isLoggedIn && APP.props.$memberDefaultSection.length != 0) {\n\t\t\t\t\t/* Member Account page */\n\t\t\t\t\t$('#account_update_button').attr('disabled', false);\n\t\t\t\t\tAPP.loadAccountInformation(false);\n\t\t\t\t\t//WEBAE3-4930 fire ajax call if opening payment section via nav link, only run\n\t\t\t\t\t//this if we have correct div\n\t\t\t\t\tif(document.getElementById('member_payment_information_block')){\n\t\t\t\t\t\tAPP.getPayOptions();\n\t\t\t\t\t}\n\t\t\t\t\t// If we are getting to the member account page via link, determine which section to show\n\t\t\t\t\tif ( localStorage.getItem('memberAccountSection') && _.isString(localStorage.getItem('memberAccountSection')) && localStorage.getItem('memberAccountSection') != '') {\n\t\t\t\t\t\tAPP.navigateMemberPageLocalStorage();\n\t\t\t\t\t }\n\t\t\t\t}\n\t\t}\n\n\t\tAE.ui.addBodyClickTask({\n\t\t\tfunc: APP.onBodyClick\n\t\t});\n\n\t},\n\n\t/* Body Click Watch Tasks */\n\tonBodyClick: function (event, $target) {\t\t\n\n\t\t// Prevent the 'Enter Key' from submitting forms\n\t\tif (event.which !== 13) {\n\t\t\tvar elemID, thisForm;\n\t\t\t// only initilize load member information for acount logged in page\n\t\t\t//var isInMemberAccount = window.location.pathname.split('/')[1] == 'member-accounts';\n\t\t\tif($target.hasClass('member_login_portable') || $target.parent().hasClass('member_login_portable')) {\n\t\t\t\n\t\t\t\tAE.ui.dialog.launch({\n\t\t\t\t\tselector:'#memberloginNav',\n\t\t\t\t\tdialogClass:'account-signinform account-signinform--portable',\n\t\t\t\t\ttitleBar: false\n\t\t\t\t});\n\t\t\t}\n\t\t\t/* NAVBAR MEMBER LINKS */\n\t\t\tif($target.hasClass('my-account-dropdown') && APP.props.$isInMemberAccount) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\tif ($target.is('#member_my_reservations_link')) {\n\t\t\t\tlocalStorage.setItem('memberAccountSection', 'my_reservations');\n\t\t\t}\n\t\t\tif ($target.is('#member_account_information_link')) {\n\t\t\t\tAPP.loadAccountInformation(false);\n\t\t\t\tlocalStorage.setItem('memberAccountSection', 'account_information');\n\t\t\t}\n\t\t\tif ($target.is('#member_payment_information_link')) {\n\t\t\t\tlocalStorage.setItem('memberAccountSection', 'payment_information');\n\t\t\t}\n\t\t\tif ($target.is('#member_promotions_link')) {\n\t\t\t\tlocalStorage.setItem('memberAccountSection', 'promotions');\n\t\t\t}\n\t\t\tif ($target.is('#member_customer_support_link')) {\n\t\t\t\tlocalStorage.setItem('memberAccountSection', 'customer_support');\n\t\t\t}\n\t\t\tif(!APP.props.$isInMemberAccount && $target.hasClass('member_link')){\n\t\t\t\twindow.location.replace('/member-accounts');\n\t\t\t}\n\t\t\tif(APP.props.$isInMemberAccount && $target.hasClass('member_link') && APP.props.$isInLogin && window.jsloginStatus == 'true'){\n\t\t\t\twindow.location.replace('/member-accounts');\n\t\t\t}\n\t\t\tif($target.parent().parent().is('#member_account_information_block')){APP.loadAccountInformation(false);}\n\n\t\t\tif ($target.closest('div.menu-dropdown').hasClass('account-signinform') && $target.hasClass('ui-dialog-titlebar-close')){\n\t\t\t \tvar resetHidden= $(\"#memberPasswordResetNav\").hasClass('visuallyhidden');\n\t\t\t\tif(!resetHidden){\n\t\t\t\t\tAPP.setHTML('member-response-left', ''); \n\t\t\t\t\tAPP.hideEle('memberPasswordResetNav');\n\t\t\t\t\tAPP.showEle('memberloginNav');\n\t\t\t\t\t$(\"#member_reset_password_nav\").find(\"input[type=text], input[type=password], input[type=email]\").val(\"\");\n\t\t\t\t}\n\t\t\t }\n\n\t\t\tif($target.hasClass('account_post') && APP.props.$isInMemberAccount && !$target.hasClass('memberLogout') && !APP.props.$isInLogin){\n\t\t\t\tAPP.navigateMemberPageLocalStorage();\n\t\t\t}\n\t\n\t\t\tif ($target.is('#submitForm') && $(event.target).attr('data-value') == 'btt-submit_booking') {\n\t\t\t\tvar frm_selector = 'form#ae-checkout';\n\t\t\t\tvar $forms = $(frm_selector);\n\t\t\t\tAE.forms.applyGuardian($forms);\n\t\t\t\tAE.forms.addSpinGear($target);\n\n\t\t\t\t$(\"form#ae-checkout\").submit();\n\n\t\t\t\tvar eleInvalid = $(frm_selector + \" .ui-state-invalid\")[0];\t\n\t\t\t\tif (eleInvalid){\n\t\t\t\t AE.forms.removeSpinGear($target);\n\t\t\t\t} \n\t\t\t}\n\n\t\t\tif ($target.is('#acct__pswd__submit')) {\n\t\t\t\t var $thisForm = $target.closest('form')[0];\n\t\t\t\t var $matchEle = $(\"form#\" + $thisForm.id + \" input.validateRepass\");\t\t\t\t\n\t\t\t\t $(\"span.custom_msg\").html('');\n\t\t\t\t $($thisForm).submit();\t\t\t\t\t\t\t\t\t\n\t\t\t}\n\n\t\t\t/************************ Aff ACCOUNT BUTTONS **********************/\t\t\t\n\n\t\t\tif ($target.is('#bttn_aff_pass_lookup')) {\n\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\tAPP.sendResetAff($target);\t\t\t\t\t\t\t\t\n\t\t\t}\n\n\t\t\tif ($target.is('#btn_aff_pass_reset')) {\n\t\t\t\tAPP.submitAndCheckresetPasswordAff($target);\t\t\t\t\t\t\n\t\t\t}\n\n\t\t\tif ($target.is('#btn_aff_login')) {\n\t\t\t\tAE.forms.addSpinGear($target);\t\t\t\t\t\t\n\t\t\t}\n\n\t\t\tif ($target.is('#submitForm') && $(event.target).attr('data-value') == 'btn_aff_signup') {\n\t\t\t\tvar $thisForm = $target.closest('form')[0];\n\t\t\t $(\"form#\" + $thisForm.id + \" span.custom_msg\").html('');\n\t\t\t}\n\n\t\t\tif($target.hasClass('bttn_aff_pass_update--cancel')){\n\t\t\t\t$(\"div.frm_aff_update\").removeClass('visuallyhidden'); \n\t\t\t\t$( \"div#aff_pass_result\" ).remove();\n\t\t\t\t$( \"button.bttn_aff_pass_update--cancel\" ).remove();\n\t\t\t\t$('div.secnav')[0].scrollIntoView({behavior:'smooth',block: 'start'});\n\t\t\t}\n\n\t\t\tif($target.hasClass('btn--affOp')) {\n\t\t\t\t$(\"div.aff_frm_result\").html('');\n\t\t\t}\n\t\t\t\n\t\t\t/********* MEMBER ACCOUNT BUTTONS ******************/\n\n\t\t\t// Account logout link\n\t\t\tif ($target.hasClass('memberLogout')) {\n\t\t\t\n\t\t\t\tif(!$target.hasClass('noSpinner')){\n\t\t\t\t\t$('.arrow').hide();\n\t\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\t}\n\t\t\t\t// WEBAE3-2167 clear local storage on logout\n\t\t\t\ttry {\n\t\t\t\t\tlocalStorage.clear();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// no local storage to clear\n\t\t\t\t}\n\t\t\t\t$('#account_form .account_form').val($(event.target).attr('data-value'));\n\n\t\t\t\tif(APP.props.$isInMemberAccount){\n\t\t\t\t\t$('#account_form input[name=form_location]').val('member-account');\n\t\t\t\t}\n\t\t\t\tAPP.logOutMember();\n\t\t\t\t//$('#account_form').submit();\n\t\t\t}\n\n\t\t\t// Member login\n\t\t\tif ($target.is('#account_login_button')) {\n\t\t\t\t$('form[name=\\'account_login_form\\']').submit(function(event) {event.preventDefault();});\n\t\t\t\t//APP.loginUser(); moved to AE.forms.js - WEBAE3-1686\n\t\t\t}\n\n\t\t\t// Create Account link\n\t\t\tif ($target.hasClass('account_create_link')) {\n\t\t\t\tthisForm = $('.account_create_link').closest('form')[0];\n\t\t\t\tlocalStorage.setItem('memberAccountSection', 'createAccount');\n\t\t\t\t$(thisForm).submit();\n\t\t\t}\n\n\t\t\t// Create Account submit\n\t\t\tif ($target.is('#account_create_button')) {\n\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\t$($target).prop('disabled', true);\n\t\t\t\tif(APP.checkAccountFormsPreSubmit($target)){\n\t\t\t\t\tAPP.submitMemberAccountCreateForm($target);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t$($target).prop('disabled', false);\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($target.is('#savecard')) {\n\t\t\t\teleSaveCard = $('#savecard').is(':checked');\n\t\t\t\tAPP.setHTML('Member_error_message','');\n\t\t\t\t\n\t\t\t\tif(eleSaveCard){\t\n\t\t\t\t\tAPP.setHTML('acct_processing','..... checking accounts');\n\t\t\t\t\tthisForm = $target.closest('form')[0];\n\t\t\t\t\tvar memberEmail = $('#' + thisForm.id).find('input[name=email]').val();\n\t\t\t\t\tvar exists = '';\t\n\t\t\t\t\tAPP.checkMemberExistsByEmail(memberEmail);\t\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tAPP.handleCreateAccountFormCheckout(false, false);}\t\t\n\t\t\t}\n\n\t\t\tif ($target.is('#account_edit_button')) {\n\t\t\t\t// sets timeout for form to come into view after scrolling\n\t\t\t\tfunction editBtnScroll(callback) {\n\t\t\t\t\t$('#member_account_information_block')[0].scrollIntoView({behavior:'smooth',block: 'start'});\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}, 50);\n\t\t\t\t }\n\t\t\t\t \n\t\t\t\teditBtnScroll(function() {\n\t\t\t\t\tAPP.loadAccountUpdateForm();\n\t\t\t\t\tAPP.showHide('account_update','account_information');\n\t\t\t\t\t$('div.required').removeClass('ui-state-valid');\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Account edit-cancel button\n\t\t\tif ($target.is('#account_edit_cancel_button')) {\n\t\t\t\t// move the page to put the account information more into view\n\t\t\t\tAPP.loadAccountInformation(true);\n\t\t\t\tAPP.setHTML('dspMemberUpdate', '');\n\t\t\t}\n\n\t\t\t// Account delete button\n\t\t\tif ($target.is('#account_delete_button') || $target.is('#account_edit_delete_button')) {\n\t\t\t\tAPP.deleteWarning($target);\n\t\t\t}\n\n\t\t\t// === Added for WEBAE3-4756 === //-\n\t\t\t$('#account_update_button').click(function(){\n\t\t\t\tsetTimeout(\n\t\t\t\t function() {\t\t\t\n\t\t\t\t\tconst cookieValue = document.cookie\n\t\t\t\t\t.split('; ')\n\t\t\t\t\t.find(row => row.startsWith('MEMBERAGE'))\n\t\t\t\t\t.split('=')[1];\n\t\t\t\t\t//\n\t\t\t\t\t// Get the existing data\n\t\t\t\t\tvar existing = localStorage.getItem('aeSearch');\n\t\t\t\t\t// convert the localStorage string to an array\n\t\t\t\t\texisting = existing ? JSON.parse(existing) : {};\n\t\t\t\t\t\t\t\n\t\t\t\t\tif ($('#member_dob').val().length === 0) {\n\t\t\t\t\t\texisting['searchAge'] = '40';\n\t\t\t\t\t\tlocalStorage.setItem('aeSearch', JSON.stringify(existing));\n\t\t\t\t\t\t//Set check box\n\t\t\t\t\t\tvar boxexisting = localStorage.getItem('aeSearch');\n\t\t\t\t\t\tboxexisting = boxexisting ? JSON.parse(boxexisting) : {};\n\t\t\t\t\t\tboxexisting['searchAgeCheckbox'] = true;\n\t\t\t\t\t\tlocalStorage.setItem('aeSearch', JSON.stringify(boxexisting));\n\t\t\t\t\t\t//searchAgeCheckbox\n\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\texisting['searchAge'] = cookieValue;\t\t\t\t\t\t\n\t\t\t\t\t\t// Save back to localStorage\n\t\t\t\t\t\tlocalStorage.setItem('aeSearch', JSON.stringify(existing));\n\t\t\t\t\t\t// console.log(cookieValue);\n\t\t\t\t \n\t\t\t\t\t\t//Set check box\n\t\t\t\t\t\tvar boxexisting = localStorage.getItem('aeSearch');\n\t\t\t\t\t\tboxexisting = boxexisting ? JSON.parse(boxexisting) : {};\n\t\t\t\t\t\tboxexisting['searchAgeCheckbox'] = true;\n\t\t\t\t\t\tlocalStorage.setItem('aeSearch', JSON.stringify(boxexisting));\n\t\t\t\t\t\t//searchAgeCheckbox\n\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t700);\n\t\t\t});\n\n\t\t\t// Account update button\n\t\t\tif ($target.is('#account_update_button')) {\n\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\t$($target).prop('disabled', true);\n\t\t\t\tif(APP.checkAccountFormsPreSubmit($target)){\n\t\t\t\t\tAPP.submitMemberUpdate($target);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t$($target).prop('disabled', false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Account forgot password lookup button\n\t\t\tif ($target.is('.account_forgot_password')) {\n\t\t\t\twindow.location.replace('/member-accounts');\n\t\t\t}\n\n\t\t\t// Account send reset password button\n\t\t\tif ($target.is('#account_lookup_button')) {\n\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\t$($target).prop('disabled', true);\n\t\t\t\tAPP.sendReset($target);\n\t\t\t}\n\n\t\t\t// Account save reset password button\n\t\t\tif ($target.is('.submit_password_save_button')) {\n\t\t\t\tvar thisForm = $target.closest('form')[0];\n\t\t\t\tvar frm_selector = 'form#' + thisForm.id;\n\t\t\t\tvar $forms = $(frm_selector);\n\t\t\t\tAE.forms.applyGuardian($forms);\t\n\t\t\t\tAE.forms.addSpinGear($target);\t\t\n\t\t\t\tif(APP.checkAccountFormsPreSubmit($target)){\n\t\t\t\t\t$($target).prop('disabled', true);\n\t\t\t\t\tAPP.submitAndCheckresetPassword(thisForm.id,'',$target)\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t$($target).prop('disabled', false);\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\n\t\t\tif ($target.is('#nav_submit_password_cancel')) {\n\t\t\t\tAPP.hideEle('memberPasswordResetNav');\n\t\t\t\tAPP.showEle('memberloginNav');\n\t\t\t\tthisForm.find(\"input[type=text], input[type=password], input[type=email]\").val(\"\");\t\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t// Reset password from member account logged in\n\t\t\tif ($target.is('#account_reset_memberUpdate')) {\n\t\t\t\twindow.jsloginStatus = false;\n\t\t\t\t$('#resetPasswordMemberUpdate').submit();\n\t\t\t}\n\t\t\t//WEBAE3-4932 my accoun stored payment handlers\n\t\t\tif ($target.is('#addNewCC')) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tAPP.toggleAddCard();\n\t\t\t\tAPP.getAddCardWidget();\n\t\t\t}\n\t\t\tif ($target.hasClass('deleteCC')) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tAPP.deleteCCWarning($target[0].dataset.cardid);\n\t\t\t}\n\t\t//clear dob field\n\t\tif ($target.hasClass('ui-datepicker-clear-input')) { \n\t\t\t\tevent.preventDefault();\n\t\t\t\t$('#member_dob').datepicker('setDate', null);\n\t\t\t\t$('span.ui-datepicker-clear-input').addClass('visuallyhidden');\n\t\t\t\t$('input#hidden-dob-date').val('');\n\t\t\t}\n\t\t}\n\n\t\tif ($target.hasClass('datePickerInput')) {\n\t\t\tAPP.showDobClear();\n\t\t}\n\n\t\tif($target.hasClass('toggleeMemberPayment')) {\n\t\t\tif($target.hasClass('open')) {\n\t\t\t\t//opening payment so get cards to display\n\t\t\t\tAPP.getPayOptions();\n\t\t\t} else {\n\t\t\t\tAPP.hideAddCardUI();//make sure AddCard UI gets hidden when closing payment pane\n\t\t\t\t$(\"#editCCControl\").empty();//empty control area on close\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif(APP.props.$isInMemberAccount){\n\t\t\tif ($target.hasClass('toggle_pm_header')){\n\t\t\t\t_.each($('.toggle_pm_header'),function(el){\n\t\t\t\t\tvar $el = $(el);\n\t\t\t\t\tif($el.data('togglee') !== $target.data('togglee')){\n\t\t\t\t\t\t$el.removeClass('open');\n\t\t\t\t\t\t$($el.data('togglee')).addClass('visuallyhidden');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif($target.attr('id') === 'headerMemberReservations'){\n\t\t\t\t\tAPP.loadAccountReservations();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t},\n\n\tnavigateMemberPageLocalStorage: function() {\n\t\tAPP.navigateMemberPage(localStorage.getItem('memberAccountSection'));\n\t\tlocalStorage.removeItem('memberAccountSection');\n\t},\n\n\tnavigateMemberPage:function (section){\n\t\tvar $sectionToOpen = '#Dummy';\n\t\tvar $sectionToScrollTo = $('#dummy_block')[0];\n\t\t$('.toggle_pm_header').removeClass('open');\n\t\t$('.togglee.push--top').addClass('visuallyhidden');\n\n\t\tswitch (section) {\n\t\t\tcase 'my_reservations':\n\t\t\t\t$sectionToOpen = '#toggleeMemberReservations';\n\t\t\t\t$sectionToScrollTo = $('#member_my_reservations_block')[0];\n\t\t\t\tAPP.loadAccountReservations();\n\t\t\t\tbreak;\n\t\t\tcase 'account_information':\n\t\t\t\t$sectionToOpen = '#toggleeMemberAccount';\n\t\t\t\t$sectionToScrollTo = $('#member_account_information_block')[0];\n\t\t\t\tbreak;\n\t\t\tcase 'payment_information':\n\t\t\t\t$sectionToOpen = '#toggleeMemberPayment';\n\t\t\t\t$sectionToScrollTo = $('#member_payment_information_block')[0];\n\t\t\t\tbreak;\n\t\t\tcase 'promotions':\n\t\t\t\t$sectionToOpen = '#toggleeMemberPromotions';\n\t\t\t\t$sectionToScrollTo = $('#member_promotions_block')[0];\n\t\t\t\tbreak;\n\t\t\tcase 'createAccount': \n\t\t\t\t//WEBAE3-3287 - Change the default panel here when member account created\n\t\t\t\tif(AE.props.chaosSystem == 'GB' || AE.props.chaosSystem == 'EU'){\n\t\t\t\t\t$sectionToOpen = '#toggleeMemberPromotions';\n\t\t\t\t\t$sectionToScrollTo = $('#member_promotions_block')[0];\t\n\t\t\t\t}\n\t\t\t\t//WEBAE3-3378 My Account - Remove auto-scroll from post account-creation screen\n\t\t\t\telse{\n\t\t\t\t\t$sectionToOpen = '';\n\t\t\t\t\t$sectionToScrollTo = '';\t\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'customer_support':\n\t\t\t\t$sectionToOpen = '#toggleeMemberSupport';\n\t\t\t\t$sectionToScrollTo = $('#member_customer_support_block')[0];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t$sectionToOpen = '#toggleeMemberAccount';\n\t\t\t\t$sectionToScrollTo = $('#member_account_information_block')[0];\n\t\t\t\tbreak;\n\t\t}\n\n\t\t\tif($sectionToOpen == 'account_information' ){APP.loadAccountInformation(false);}\n\t\t\t\n\t\t\tif($sectionToScrollTo != '' && $sectionToOpen != ''){\t\t\t\n\t\t\t\t// open up the desired section\n\t\t\t\t$('[data-togglee=\"' + $sectionToOpen + '\"]').trigger('click');\n\n\t\t\t\t// move the page to put the desired section more into view\n\t\t\t\t//using different scroll to function for my reservations so it will scroll to top.\n\t\t\t\t$sectionToScrollTo.scrollIntoView({behavior:'smooth',block: 'start'});\n\t\t\t\t// Since we are already on the member account page, we no longer need this info\n\t\t\t}\n\t},\n\tduplicateAccountWarning: function (msg) {\n\t\t\tvar oButtons = {}; // Preparing the Object ahead of the dialog operation allows for Dynamic Button name/text\n\n\t\t\t\toButtons[AEdata.account.duplicateModal.btn_reset] = function () {\n\t\t\t\t\twindow.location.href = '/member-accounts';\n\t\t\t\t\tAE.ui.dialog.close();\n\t\t\t\t};\n\n\t\t\t\toButtons[AEdata.account.duplicateModal.btn_login] = function () {\n\t\t\t\t\twindow.location.href = '/member-accounts';\n\t\t\t\t\tAE.ui.dialog.close();\n\t\t\t\t};\n\n\n\t\t\tvar buttonOpts = {\n\t\t\t\tsetClass: 'align-center soft-half--left',\n\t\t\t\tlastButtonClass: 'push--top',\n\t\t\t\tfirstButtonClass: 'btn--primary push--top'\n\t\t\t};\n\n\t\t\tAE.ui.dialog.launch({\n\t\t\t\ttitleBar: true,\n\t\t\t\tid: 'duplicateWarning',\n\t\t\t\tdialogClass: 'top-dialog',\n\t\t\t\tcontent: buildDuplicateAcctMarkup(msg),\n\t\t\t\tbuttons: oButtons,\n\t\t\t\tapplyUI: true,\n\t\t\t\tbuttonOpts: buttonOpts,\n\t\t\t\twidth: ($(window).width() > 600) ? 500 : '70%'\n\t\t\t});\n\n\t\t\tfunction buildDuplicateAcctMarkup(msg) {\n\t\t\t\tvar docFrag = $(document.createDocumentFragment());\n\t\t\t\tdocFrag.append($(document.createElement('div')).append(msg));\n\n\t\t\t\treturn docFrag;\n\t\t\t}\n\t},\n\tduplicateAccountWarningUpdate: function ($msg) {\n\t\tvar oButtons = {}; // Preparing the Object ahead of the dialog operation allows for Dynamic Button name/text\n\t\t\toButtons[AEdata.account.duplicateModalUpdate.btn_cancel] = function () {\n\t\t\tAE.ui.dialog.close();\n\t\t\tAPP.navigateMemberPage('account_information');\n\t\t};\n\n\t\tvar buttonOpts = {\n\t\t\tsetClass: 'align-center soft-half--left',\n\t\t\tlastButtonClass: 'push--top',\n\t\t\tfirstButtonClass: 'btn--primary push--top'\n\t\t};\n\n\t\tAE.ui.dialog.launch({\n\t\t\ttitleBar: true,\n\t\t\tid: 'duplicateWarningUpdate',\n\t\t\tdialogClass: 'top-dialog',\n\t\t\tcontent: buildDuplicateAcctMarkup($msg),\n\t\t\tbuttons: oButtons,\n\t\t\tapplyUI: true,\n\t\t\tbuttonOpts: buttonOpts,\n\t\t\twidth: ($(window).width() > 600) ? 500 : '70%'\n\t\t});\n\n\t\tfunction buildDuplicateAcctMarkup($msg) {\n\t\t\tvar docFrag = $(document.createDocumentFragment());\n\t\t\tdocFrag.append($(document.createElement('div')).append($msg));\n\n\t\t\treturn docFrag;\n\t\t}\n\t},\n\tdeleteCCWarning:function(cardId) {\n\t\tvar oButtons = {}; // Preparing the Object ahead of the dialog operation allows for Dynamic Button name/text\n\t\toButtons[AEdata.account.oStoredPaymentLang.button_delete] = function() {\n\t\t\tAPP.deletePaymentOption(cardId);\n\t\t\tAE.ui.dialog.close();\n\t\t};\n\n\t\toButtons[AEdata.account.oStoredPaymentLang.button_cancel] = function() {\n\t\t\tAE.ui.dialog.close();\n\t\t};\n\n\t\tvar buttonOpts = {\n\t\t\tsetClass: 'align-center soft-half--left',\n\t\t\tlastButtonClass: 'push--top',\n\t\t\tfirstButtonClass: 'btn--primary push--top'\n\t\t};\n\n\t\tAE.ui.dialog.launch({\n\t\t\ttitleBar: true,\n\t\t\tid: 'deleteWarning',\n\t\t\tdialogClass: 'top-dialog',\n\t\t\tcontent: buildDeleteWarnMarkup(cardId),\n\t\t\tbuttons: oButtons,\n\t\t\tapplyUI: true,\n\t\t\tbuttonOpts: buttonOpts,\n\t\t\twidth: ($(window).width() > 600) ? 500 : '70%'\n\t\t});\n\n\t\tfunction buildDeleteWarnMarkup(cardId) {\n\t\t\t\n\t\t\tvar cardDetails = _.findWhere(AEdata.CARDS, {CARDID: cardId});\n\t\t\tcardDetails.cardTypeDisplay = (AEdata.oCClogos[cardDetails.CARDTYPE.toLowerCase()]) ? '<img style=\"flex:auto;\" src=\"'+AEdata.oCClogos[cardDetails.CARDTYPE.toLowerCase()]+'\">' : '<strong>' + cardDetails.CARDTYPE + '</strong> ';\n\t\t\tcardDetails.cardLast4 = '<strong>' + cardDetails.LAST4 + '</strong> ';\n\t\t\tcardDetails.cardExp = '<strong>' + cardDetails.EXP + '</strong> ';\n\t\t\t//show logo if we have one, otherwise card type text\n\t\t\tvar modalCardSummary = AEdata.account.oStoredPaymentLang.txt_card_summary.replace('##cardtype##',cardDetails.cardTypeDisplay);\n\t\t\tmodalCardSummary = modalCardSummary.replace('##last4##',cardDetails.cardLast4);\n\t\t\tmodalCardSummary = modalCardSummary.replace('##expdate##',cardDetails.cardExp);\n\t\n\t\t\tvar docFrag = $(document.createDocumentFragment());\n\t\t\tdocFrag.append($(document.createElement('h3')).append(AEdata.account.oStoredPaymentLang.confirm_delete_card_header));\n\t\t\tdocFrag.append('<div class=\"soft--ends text--center\">'+modalCardSummary+'</div>');\n\t\t\tdocFrag.append($(document.createElement('div')).append(AEdata.account.oStoredPaymentLang.confirm_delete_card_body));\n\t\t\treturn docFrag;\n\t\t}\n\t},\n\tdeleteWarning:function($Target) {\n\t\tvar oButtons = {}; // Preparing the Object ahead of the dialog operation allows for Dynamic Button name/text\n\t\toButtons[AEdata.account.deleteModal.btn_delete] = function() {\n\n\t\t\twindow.jsloginStatus = false;\n\t\t\ttry {\n\t\t\t\tlocalStorage.clear();\n\t\t\t} catch (err) {\n\t\t\t\t// no local storage to clear\n\t\t\t}\n\t\n\t\t\tAE.forms.addSpinGear($Target);\n\t\t\tvar $suid = $Target.data('suid');\n\t\t\tAPP.deleteSFRecord($suid);\n\t\t\t$('#submitMemberDeleteForm').submit();\n\t\t\tAE.ui.dialog.close();\n\t\t};\n\n\t\toButtons[AEdata.account.deleteModal.btn_cancel] = function() {\n\t\t\tAE.ui.dialog.close();\n\t\t};\n\n\t\tvar buttonOpts = {\n\t\t\tsetClass: 'align-center soft-half--left',\n\t\t\tlastButtonClass: 'push--top',\n\t\t\tfirstButtonClass: 'btn--primary push--top'\n\t\t};\n\n\t\tAE.ui.dialog.launch({\n\t\t\ttitleBar: true,\n\t\t\tid: 'deleteAccountWarning',\n\t\t\tdialogClass: 'top-dialog',\n\t\t\tcontent: buildDeleteWarnMarkup(),\n\t\t\tbuttons: oButtons,\n\t\t\tapplyUI: true,\n\t\t\tbuttonOpts: buttonOpts,\n\t\t\twidth: ($(window).width() > 600) ? 500 : '70%'\n\t\t});\n\n\t\tfunction buildDeleteWarnMarkup() {\n\t\t\tvar docFrag = $(document.createDocumentFragment());\n\t\t\tdocFrag.append($(document.createElement('h3')).append(AEdata.account.deleteModal.delete_warn_head));\n\t\t\tdocFrag.append($(document.createElement('div')).append(AEdata.account.deleteModal.delete_warn));\n\n\t\t\treturn docFrag;\n\t\t}\n\t}\n\t,addInvalidClass: function ($formId,$ele) {\n\t\tvar $thisEle = $('#' + $formId + ' input[name=' + $ele + ']');\n\t\tvar $parent = $('#' + $formId + ' input[name=' + $ele + ']').parent();\n\t\t$parent.removeClass('ui-state-valid');\n\t\t$parent.addClass('ui-state-invalid');\n\t}\n\t,addValidClass: function ($formId,$ele) {\n\t\tvar $thisEle = $('#' + $formId + ' input[name=' + $ele + ']');\n\t\tvar $parent = $('#' + $formId + ' input[name=' + $ele + ']').parent();\n\t\tif($parent ){\n\t\t\t$parent.removeClass('ui-state-invalid');\n\t\t\t$parent.addClass('ui-state-valid');\n\t\t}\n\t},\n\tremoveInvalidClass: function ($formId,$ele) {\n\t\tvar $thisEle = document.querySelector('#' + $formId + ' #' + $ele);\n\n\t\tif($thisEle){\n\t\t\tvar $parent = $($thisEle.parentNode);\n\t\t\tif ($ele == 'all') {\n\t\t\t\t$('div.required').removeClass('ui-state-invalid');\n\t\t\t} else {\n\t\t\t\t$parent .removeClass('ui-state-invalid').addClass('ui-state-valid');\n\n\t\t\t}\n\t\t}\n\t},\n\tremoveValidClass: function ($formId,$ele) {\n\t\tvar thisEle = document.querySelector('#' + $formId + ' #' + $ele);\n\t\tvar parent = $(thisEle.parentNode);\n\t\tparent.removeClass('ui-state-valid');\t\t\n\t},\n\tremoveValidClassByClass: function ($formId, eleClass) {\n\t\t\tvar thisEle = document.querySelector('#' + $formId + ' .' + eleClass);\t\t\n\t\t\tvar parent = $(thisEle.parentNode);\n\t\t\tparent.removeClass('ui-state-valid');\t\n\t},\n\tshowGridDiv: function ($ele, $formId) {\n\t\tvar thisEle = document.querySelector('#' + $ele);\n\t\t\n\t\tvar parent = $(thisEle.parentNode);\n\t\tparent.removeClass('visuallyhidden');\n\t},\n\tshowGridDivByClass: function ($formId, eleClass) {\n\t\t\tvar thisEle = document.querySelector('#' + $formId + ' .' + eleClass);\t\t\n\t\t\tvar parent = $(thisEle.parentNode);\n\t\t\tparent.removeClass('visuallyhidden');\n\t},\n\tgetWhichReset: function ($ele) {\n\t\tvar $str = '';\n \t\tif ($($ele).hasClass('nav')) {\n\t\t\t $str = 'member_reset_password_nav';\n\t\t}\n \t\telse if ($($ele).hasClass('signup')) {\n\t\t\t $str = 'member_signup';\n\t }\n\t else{$str = 'member_reset_password';}\n\t return $str;\n\t},\n\thideGridDiv: function ($formId, $ele) {\n\t\tvar $thisEle = document.querySelector('#' + $ele);\n\t\t\tif($thisEle ){\n\t\t\t\tvar $parent = $($thisEle.parentNode);\n\t\t\t\t$parent.addClass('visuallyhidden');\n\t\t\t}\n\t},\n\thideGridDivByClass: function ($formId, $eleClass) {\n\t\tvar $thisEle = document.querySelector('#' + $formId + ' .' + $eleClass);\t\n\t\t\tif($thisEle){\t\n\t\t\t\tvar $parent = $($thisEle.parentNode);\n\t\t\t\t$parent.addClass('visuallyhidden');\n\t\t\t}\n\t},\n\tSetErrorText: function ($formId, $eleClass, $str) {\n\t\t\tvar $ele = $('#' + $formId + ' .' + $eleClass);\n\t\t\t$ele.innerHTML = $str;\t\t\t\t\t\t\n\t},\n\tloadAccountInformation: function (scrollTop) {\n\t\tvar cfc = APP.props.$ObjMember + '?method=showAccountInformation';\n\t\tvar $ele = '';\n\t\t\t$.ajax({\n type: 'POST',\n url: cfc,\n dataType: 'json',\n \tsuccess: function(result){\n \tif(result.trim != ''){\n $ele = document.getElementById('dspAccountInfo');\n\t\t\t\t\t\tif ($ele) {\n\t\t\t\t\t\t\t$ele.innerHTML = '';\n\t\t\t\t\t\t\t$ele.innerHTML = result;\n\t\t\t\t\t\t\tAPP.hideShow('account_update', 'account_information');\n\t\t\t\t\t\t\t// WEBAE3-3426 do not scroll to top when account info is expanded\n\t\t\t\t\t\t\t//Do need to scroll to member account info block after an edit SL\n\t\t\t\t\t\t\tif(scrollTop){$('#member_account_information_block')[0].scrollIntoView({behavior:'smooth',block: 'start'});}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t \t},\n\t\t error: function (/*xhr, ajaxOptions, thrownError*/) {\n\t\t // console.log(xhr.status);\n\t\t // console.log(thrownError);\n\t\t }\n\t\t });\n\t},\n\tlogOutMember: function () {\n\t\tvar cfc = APP.props.$ObjMember + '?method=memberLogoutRemote';\n\t\t\t$.ajax({\n type: 'POST',\n url: cfc,\n \tsuccess: function(){\n \t\t// WEBAE3-1669 - always reload the page after logging out to reflect account status\n \t\twindow.location.reload();//keep user on page they logged in on WEBAE3-1662\n \t },\n error: function (xhr, ajaxOptions, thrownError) {\n // console.log(xhr.status);\n // console.log(thrownError);\n }\n });\n\t},\n\tsubmitMemberUpdate:function($target){\n\t\tvar $checkEmail = $('#member_email').val();\n\t\tvar $currentemail = $('#member_email_old').val();\n\t\tvar $hasErrors = document.getElementsByClassName('ui-state-invalid')[0];\n\t\tvar $inputs ='';\n\t\tvar $elemID = '';\n\t\tvar $position = '';\n\t\tvar $thisposition = '';\n\n\t\tif(!$checkEmail){\n\t\t\t$errorFirst = document.getElementsByClassName('ui-state-invalid')[0];\n\t\t\t$errorFirst.scrollIntoView({behavior:'smooth',block: 'start'});\n\t\t\treturn false;\n\t\t}\n\t\n\t\tif($checkEmail != $currentemail){\n\t\t\tAPP.checkMemberExists($checkEmail,$target);\n\t\t}\n\t\telse{\n\t\t\t$elemID = $target.attr('id');\n\t\t\t$thisForm = $('#' + $elemID).closest('form')[0];\n\t\t\tAPP.submitAndCheckMemberAccountForm($thisForm.id, $target,'');\n\t\t}\n\t},\n\tsubmitAffiliateForm: function ($target) {\n\t\tvar $thisForm = $target.closest('form')[0];\n\t\tvar $forms = $($thisForm );\n\t\tAE.forms.applyGuardian($forms);\n\t\t$($thisForm).submit();\n\t},\n\n\tloadAccountUpdateForm: function () {\n\t\tvar cfc = APP.props.$ObjMember + '?method=dspUpdateAccountForm';\n\t\tvar $frm_selector = 'form#member_update';\n\t\t $.ajax({\n\t type: 'POST',\n\t url: cfc,\n\t dataType: 'json',\n\t success: function(result){\n\t \tif(!result.isEmpty()){\n\t\t\t\t\t$('div#dspMemberUpdate').html('');\n\t\t\t\t\t$('div#dspMemberUpdate').html(result.markup);\n\t\t\t\t\t//WEBAE3-4036 changed how state data is handled\n\t\t\t\t\tAEdata.arrstates = JSON.parse(result.states);\n\t\t\t\t\t//fixes state select issue with not displaying list options\n\t\t\t\t\tAE.ui.applyJQUI($frm_selector);\n\t\t\t\t\tAE.ui.selectmenu.init();\n\n\t\t\t\t\tvar $forms = $($frm_selector);\n\t\t\t\t\tAE.forms.applyGuardian($forms);\t\t\t\t\n\t\t\t\t\t//APP.navigateMemberPage('account_information');\n\t\t\t\t\t$('#member_account_information_block')[0].scrollIntoView({behavior:'smooth',block: 'start'});\n \t\t}\n\t },\n error: function (/*xhr, ajaxOptions, thrownError*/) {\n // console.log(xhr.status);\n // console.log(thrownError);\n }\n\t });\n\n\t return false;\n\t},\n\tgetUrlParameter: function (sParam) {\n\t\t\t// utility function\n\t\t\tvar sPageURL = decodeURIComponent(window.location.search.substring(1));\n\t\t\tvar sURLVariables = sPageURL.split('&');\n\t\t\tvar sParameterName;\n\t\t\tvar index;\n\n\t\t\tfor (index = 0; index < sURLVariables.length; index++) {\n\t\t\t\tsParameterName = sURLVariables[index].split('=');\n\t\t\t\tif (sParameterName[0] === sParam) {\n\t\t\t\t\treturn sParameterName[1] === undefined ? true : sParameterName[1];\n\t\t\t\t}\n\t\t\t}\n\t},\n\tresetResetStatus: function (tokenExpired, isReset) {\n\t\t\tvar cfc = APP.props.$ObjMember + '?method=setResetStatus';\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: cfc,\n\t\t\t\tdata: {\n\t\t\t\t\ttokenExpired: tokenExpired,\n\t\t\t\t\tisReset: isReset\n\t\t\t\t}\n\t\t\t});\n\t},\n\n\tsendResetAff: function ($target) {\n\t\tvar cfc = APP.props.$ObjAff + '?method=sendPasswordResetAff';\n\t\tvar $form = $($target).closest('form')[0];\n\t\tvar $formId = ($form.length != 0) ? $($form).attr('id') :'';\n\t\tvar $messDiv = $(\"div#msg_reset_response\");\n\t\tvar $frmInstructions = $(\"div#msg_reset_instr\");\n\t\tvar $resetFormDiv = $(\"div#form_reset_request\");\n\t\tvar $error_ele = APP.getErrorEle($formId,'email');\n\t\tvar $atv2 = (APP.getUrlParameter('atv2')) ? 1 :0;\n\t\tif($formId ==''){return false;}\n\t\tvar $hasBlanks = APP.checkBlank($formId);\n\t\t// var $memEmail = $(\"#\" + $form.id + \" input[name='email']\");\n\t\t// var $memName = $(\"#\" + $form.id + \" input[name='membername']\");\t\n\t\t// var $typex= $(\"#\" + $form.id + \" input[name='typex']\");\n\t\tvar $formVals = $('#' + $formId ).serialize();\n\t\t$formVals = $formVals + '&atv2=' + encodeURIComponent($atv2);\n\t\tvar $eleLookup = $(\"#reset-response\");\n\t\tvar $str = '';\n\t\t\tif(!$hasBlanks){\n\t\t\t\t//leaving logic in for failed reset send until end users sure of functionality\n\t\t\t\t$.post(cfc, $formVals, function (result) {\n\t\t\t\t\tif(result.RESULT !='invalid'){\n\t\t\t\t\t\t$messDiv.html('');\n\t\t\t\t\t\t$($messDiv).html(result.MESS);\n\n\t\t\t\t\t\tif(result.RESULT){\n\t\t\t\t\t\t\t$($resetFormDiv).addClass('visuallyhidden');\n\t\t\t\t\t\t\t$($frmInstructions).addClass('visuallyhidden');\n\t\t\t\t\t\t\t$($messDiv).removeClass('visuallyhidden');\n\t\t\t\t\t\t\t$($messDiv).removeClass('error_message');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t$($resetFormDiv).removeClass('visuallyhidden');\n\t\t\t\t\t\t\t$($messDiv).removeClass('visuallyhidden');\n\t\t\t\t\t\t\t$($messDiv).addClass('error_message');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t\t$($target).prop('disabled', false);\n\t\t\t\t\t\n\t\t\t\t}, 'json');\n\t\t\t}\n\t\t\telse{\n\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t$($target).prop('disabled', false);\n\t\t\t}\n\t\t\n\n\n\t\t\t//leaving logic in for failed reset send until end users sure of functionality\n\t\t\t// $.post(cfc, $formVals, function (result) {\n\t\t\t// \tif(result.RESULT =='invalid'){\n\t\t\t// \t\tAE.forms.removeSpinGear($target);\n\t\t\t// \t\t$str = '<li class=\\'small--errornote\\'>' + result.MESS + '</li>';\n\t\t\t// \t\t$($error_ele).html($str)\t\t\t\n\t\t\t// \t}\n\t\t\t// \telse if(!result.RESULT && result.MESS.trim == ''){\n\t\t\t// \t\treturn false;\n\t\t\t// \t}\n\t\t\t// \telse{\n\t\t\t// \t\tAE.forms.removeSpinGear($target);\n\t\t\t// \t\tAPP.hideEle('forgotPasswordContainer');\n\t\t\t// \t\tAPP.hideEle('resetPasswordContainer');\t\t\t\t\t\t\t\n\t\t\t// \t\tAPP.setHTML('member-response-right', result.MESS); \n\t\t\t// \t\tAPP.showGridDiv('member-response-right','');\t\t\t\t\t\n\t\t\t// \t}\n\t\t\t// }, 'json');\n\t\t\treturn false;\t\t\t\n\t},\n\tsendReset: function ($target) {\n\t\tvar cfc = APP.props.$ObjMember + '?method=sendPasswordReset';\n\t\tvar $form = $($target).closest('form')[0];\n\t\tvar $formId = ($form.length != 0) ? $($form).attr('id') :'';\n\n\t\tif($formId ==''){return false;}\n\n\t\tvar $resetFld = $(\"#\" + $form.id + \" input[name='member_reset_email']\");\n\t\tvar $error_ele = APP.getErrorEle($formId, $resetFld.attr('name'));\t\t\n\t\tvar $formVals = $('#account_lookup_form').serialize();\n\t\tvar $isMobile = APP.checkIfMobile();\n\t\tvar $eleLookup = $(\"#member-response-right\");\n\t\tvar $resetFld = $(\"#\" + $form.id + \" input[name='member_reset_email']\");\n\t\tvar hasName = (name === 'true') ? 'Y' :'N';\n\t\tvar $error_ele = APP.getErrorEle($formId, $resetFld.attr('name'));\n\t\tvar $str = '';\n\n\t\tif(!$isMobile ){\t\t\t\t\n\t\t\t$eleLookup.addClass('full-push--top');\n\t\t}\n\t\telse{\n\t\t\t$eleLookup.addClass('push--bottom');\n\t\t}\n\n\t\tif($(\"input#member_reset_email\").val() ==''){\n\t\t\t\tAPP.addInvalidClass($formId,$(\"input#member_reset_email\").attr('name'));\n\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\treturn false;\n\t\t}\n\t\tAPP.setHTML('member-response-left', ''); \n\t\tAPP.hideGridDiv('account_lookup_form','member-response-left');\n\n\t\t//leaving logic in for failed reset send until end users sure of functionality\n\t\t$.post(cfc, $formVals, function (result) {\n\t\t\tif(result.RESULT =='invalid'){\n\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t$str = '<li class=\\'small--errornote\\'>' + result.MESS + '</li>';\n\t\t\t\t$($error_ele).html($str)\t\t\t\n\t\t\t}\n\t\t\telse if(!result.RESULT && result.MESS.trim == ''){\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\telse{\n\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t//APP.hideEle('forgotPasswordContainer'); // DS: WEBAE3-4345\n\t\t\t\t//APP.hideEle('resetPasswordContainer'); // DS: WEBAE3-4345\t\t\t\t\t\t\t\n\t\t\t\tAPP.setHTML('member-response-right', result.MESS); \n\t\t\t\tAPP.showGridDiv('member-response-right','');\t\t\t\t\t\n\t\t\t}\n\t\t\t$($target).prop('disabled', false);\n\t\t}, 'json');\n\t\t//return false;\t\t\t\n\t},\n\tcheckMemberExistsByEmail: function($email){\n\t\tvar cfc = APP.props.$ObjMember + '?method=getMemberIDByEmailRemote';\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: cfc,\n\t\t\tdata: {\n\t\t\t\t\tmember_email: $email\n\t\t\t\t},\n\t\t\tdataType: 'json',\n\t\t\tsuccess: function (result) {\n\t\t\t\tAPP.setHTML('Member_error_message','');\n\t\t\t\tAPP.setHTML('acct_processing','');\n\t\t\t\t//Invalid Email or Member Exists Show message- uncheck savecard\n\t\t\t\t\tif(result.INVALID ||result.RESULT){\n\t\t\t\t\t\t\t$(\"div.chkout_acct_container\").removeClass('visuallyhidden');\n\t\t\t\t\t\t\tAPP.setHTML('Member_error_message',result.MESSAGE);\n\t\t\t\t\t\t \t$(\"div#member_response\").removeClass('visuallyhidden');\n\t\t\t\t\t\t \t$('#savecard').prop('checked',false);\n\t\t\t\t\t\t \tAPP.handleCreateAccountFormCheckout(false, true);\n\t\t\t\t\t}\t\t\t\n\t\t\t\t //Good to proceed\n\t\t\t\t\telse{\n\t\t\t\t\t\t$(\"div#member_exists\").addClass('visuallyhidden');\n\t\t\t\t\t\tAPP.handleCreateAccountFormCheckout(true, false);\n\t\t\t\t\t}\t\t\t\t\t\n\t\t\t}\n\t\t});\n\t},\n\tsubmitMemberAccountCreateForm: function ($target) {\n\t\t\tvar $form = $($target).closest('form')[0];\n\t\t\tvar $email= $(\"#\" + $form.id + \" input[name='member_email']\").val();\n\t\t\tAPP.setHTML('duplicateMemberMsg', '');\n\t\t\tAPP.hideEle('duplicateMemberError', '');\n\t\t\t//if email not blank - check if member exists first\n\t\t\tif ($email) {\n\t\t\t\tAPP.checkMemberExists($email,$target);\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tAPP.submitAndCheckMemberAccountForm($form.name,$target,'');\n\t\t\t}\n\t},\n\tcheckMemberExists: function (checkEmail,$target) {\n\t\t\tvar $elemID = $target.attr('id');\n\t\t\tvar $form = $('#' + $elemID).closest('form')[0];\n\t\t\tvar cfc = APP.props.$ObjMember + '?method=checkAccountExists';\n\t\t\tvar $emailFld = $(\"#\" + $form.id + \" input[data-check='member_email']\");\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: cfc,\n\t\t\t\tdata: {\n\t\t\t\t\tmember_email: $emailFld.val()\n\t\t\t\t},\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function (result) {\n\t\t\t\t\tif (result.RESULT) {\n\t\t\t\t\t\tAPP.showEle('duplicateMemberError');\n\t\t\t\t\t\tAPP.setHTML('duplicateMemberMsg', result.MESS);\n\t\t\t\t\t\t//re-enable account create\n\t\t\t\t\t\t//AE.forms.removeSpinGear($target);\t\t\t\t\t\n\t\t\t\t\t\tif($form.id == 'member_update'){\n\t\t\t\t\t\t\tAPP.duplicateAccountWarningUpdate(result.MESS);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tAPP.duplicateAccountWarning(result.MESS);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tAE.forms.removeSpinGear($target);\t\n\t\t\t\t\t\t$($target).prop('disabled',false);\t\n\t\t\t\t\t\tAPP.addInvalidClass($form.id,$($emailFld).attr('name'));\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\tAPP.submitAndCheckMemberAccountForm($form.id,$target, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdeleteSFRecord: function ($suid) {\n\t\tvar cfc = APP.props.$ObjMember + '?method=deleteSFRecord';\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: cfc,\n\t\t\tdata: {\n\t\t\t\tsuid: $suid \n\t\t\t},\n\t\t\tdataType: 'json',\n\t\t\tsuccess: function (result) {\n\t\t\t}\n\t\t});\n\t},\n\tcheckPassword: function ($formId) {\n\t\tvar $ele = $('form#' + $formId + ' input.validatePassword');\t\t\n\t\tvar $fld = $($ele).attr('name');\n\t\tvar $str = $ele.val();\n\t\tvar $match = $($ele).attr('data-match');\n\t\t//var $checkOther = $('#' + $formId + ' input[name=' + $match + ']');\n\t\tvar $ObjpwdEle = APP.validatePwd($str);\n\t\tvar $submit = $(\"#\" + $formId).find(':button');\n\n\t\t\t jQuery.each($ObjpwdEle, function(name, value) {\n\t\t\t \t$error_item = $('#' + $formId + ' li.checklist.' + name);\n\n\t\t\t \tif(!value){\n\t\t\t \t\t$error_item.removeClass('pwd_valid');\t\n\t\t\t \t\t$error_item.addClass('pwd_error');\t\t \t\t\n\t\t\t \t}\n\t\t\t \telse{\n\t\t\t \t\t$error_item.removeClass('pwd_error');\n\t\t\t \t\t$error_item.addClass('pwd_valid');\n\t\t\t\t }\t\t\n\t\t\t });\n\n\t\t\tif($ObjpwdEle.validated){\n\t\t\t\t//$($submit).prop('disabled', false);\n\t\t\t\tAPP.hideGridDivByClass($formId,'memberPasswordChecklist');\n\t\t\t\tAPP.addValidClass($formId,$fld );\n\t\t\t}\n\t\t\telse{\n\t\t\t\t//$($submit).prop('disabled', true);\n\t\t\t\tAPP.showGridDivByClass($formId,'memberPasswordChecklist');\n\t\t\t\tAPP.addInvalidClass($formId,$fld);\n\t\t\t}\n\t\t\treturn $ObjpwdEle.validated;\n\t},\n\tcheckPasswordLegacy: function ($formId) {\n\t\tvar $ele = $('form#' + $formId + ' input.validatePassword');\t\t\n\t\tvar $fld = $($ele).attr('name');\n\t\tvar $str = $ele.val();\n\t\tvar $errorGuardian = APP.getGuardianErrorEle($formId,$fld);\n\t\tvar $errorEle_guardian = $(\"span#\" + $errorGuardian + \":visible\"); \n\t\tvar $messfield = APP.getErrorEle($formId, $fld);\n\t\tvar $mess = $($ele).attr('data-error-message');\n\t\tvar $ObjpwdEle = APP.validatePwdLegacy($str);\n\t\t$($errorEle_guardian).remove();\n\n\t\t\tif($ObjpwdEle.validated){\n\t\t\t\t$($messfield).html('');\n\t\t\t\tAPP.addValidClass($formId,$fld );\n\t\t\t}\n\t\t\telse{\n\t\t\t\tAPP.addInvalidClass($formId,$fld);\n\t\t\t\tif($errorEle_guardian.length == 0){\n\t\t\t\t\t$($messfield).html($mess );\t\t\t\t\n\t\t\t\t}\t\t\n\t\t\t}\n\t\t\treturn $ObjpwdEle.validated;\n\t},\n\n\tinitCustomMatchVerification:function($ele){\n\t\tvar $data = {};\t\n\t\tvar $formId = $($ele).parents('form').attr('id');\n\t\tvar $fldEle = $($ele);\n\t\tvar $fld = $($fldEle).attr('name');\n\t\tvar $match = $($ele).attr('data-match'); \n\t\tvar $errorMessageEle = $($ele).attr('data-error-mess-ele');\n\n\t\tif(!$errorMessageEle){\n\t\t\t$errorMessageEle = $fld;\n\t\t}\n\t\tvar $data = {formId:$formId, thisEle:$fld,matchEle:$match,errorMessDspEle:$errorMessageEle};\n\t\t\n\t\treturn APP.verifyMatch($data);\t\n\t},\n\tverifyMatch: function ($data) {\n\t\t//{formId: \"acct__pswd\", thisEle: \"passwdver\", matchEle: \"newpasswd\", parentType: \"LI\", errorMessDspEle: \"passwdver\"}\n\t\t//var $str = '';\n\t\tvar $formId = $data[\"formId\"];\n\t\tvar $thisEle =$data[\"thisEle\"];\n\t\tvar $matchEle = $data[\"matchEle\"];\n\t\tvar $errorMessDspEle = $data[\"errorMessDspEle\"];\n\t\tvar $messfield = APP.getErrorEle($formId, $errorMessDspEle);\n\t\tvar $current_mess = $($messfield).html(); \t\n\t\tvar $thisFld = $(\"#\" + $formId + \" input[name=\" + $thisEle + \"]\");\n\t\tvar $matchField = $(\"#\" + $formId + \" input[name=\" + $matchEle + \"]\"); \n\t\tvar $noCase = false;\t\t\n\t\tvar $strDspMess = $($thisFld).data(\"error-message-nomatch\");\n\t\tvar $isValid = false;\n\t\tvar $submit = $(\"#\" + $formId).find(':button');\n\t\tvar $isMatch = false;\n\t\tvar $errorGuardian = APP.getGuardianErrorEle($formId,$thisEle);\n\t\tvar $errorEle_guardian = $(\"span#\" + $errorGuardian);\n\n\n\t\t\tif(!$thisFld.data('match-nocase')){$noCase == false;}\n\t\t\telse{$noCase = $thisFld.data('match-nocase');}\n\t\t\tif($thisFld.val() && $matchField.val()){\n\t\t\t\t$isMatch = ($noCase)? $thisFld.val().toUpperCase() === $matchField.val().toUpperCase() : $thisFld.val() === $matchField.val();\t\n\t\t\t}\n\n\t\t if(!$isMatch && $thisFld.val() !=''){\n\t\t\t\t//if message already there do not re-add or screen shimmys\n\t\t\t\tif($thisFld.val() !='' && $errorEle_guardian.length != 0){APP.removeGuardianError($formId,$errorMessDspEle);}\n\t\t\t\tif(($current_mess != $strDspMess) || $current_mess ==''){\n\t\t\t\t\t$($messfield).html('');\n\t\t\t\t\t$($messfield).html($strDspMess);\n\t\t\t\t}\t\t\t\t\n\t\t\t\tAPP.addInvalidClass($formId,$errorMessDspEle);\n\t\t\t\t//$($submit).prop('disabled', true);\t\n\t\t\t\t$isValid = false;\t\t\n\t\t\t}\n\t\t\telse if($isMatch && $thisFld.val() !=''){\n\t\t\t\t$($messfield).html('');\n\t\t\t\tAPP.addValidClass($formId,$errorMessDspEle);\n\t\t\t\t$isValid = true;\n\t\t\t\t//$($submit).prop('disabled', false);\n\t\t\t}\n\t\t\telse if($thisFld.val() =='' && $errorEle_guardian.length != 0){\n\t\t\t\t$($messfield).html('');\n\t\t\t}\n\t\t// }\n\treturn $isValid;\n\t},\n\tcheckAccountFormsPreSubmit:function($target){\n\t\tvar $form = $($target).closest('form')[0];\n\t\tvar $formId = $form.id;\n\t\tvar $hasBlank = APP.checkBlank($form.id);\n\t\tvar $isValid = false; \n\t\tvar $isValid_pwd = false;\n\t\tvar $pwdMatch = false;\n\t\tvar $pwd = $('#' + $formId + ' input.validatePassword');\n\n\t\tif($pwd.length != 0){\n\t\t\tvar $isValid_pwd = APP.checkPassword($formId);\n\t\t\tvar $pwdVer = $('#' + $formId + ' input.validateRepass');\n\t\t\tvar $pwdMatch = APP.initCustomMatchVerification($pwdVer);\n\t\t}\n\t\telse{\n\t\t\t$isValid_pwd =true;\n\t\t\t$pwdMatch =true;\n\t\t}\n\n\t\tif(!$hasBlank && $isValid_pwd && $pwdMatch ){$isValid = true;}\n\n\t\tif(!$isValid){\n\t\t\tAE.forms.removeSpinGear($target);\n\t\t\tAPP.scrollToErrors($formId,$target);\n\t\t}\n\t\treturn $isValid;\n\t},\n\tscrollToErrors:function($formId,$target){\n\t\tvar $errorflds = document.querySelectorAll('form#' + $formId + ' .ui-state-invalid');\n\t\tif($errorflds.length != 0){\n\t\t\t$position = $($errorflds[0]).position().top;\n\t\t\t$thisposition = $($target).position().top;\n\t\n\t\t\tif($thisposition - $position >= 200){\n\t\t\t\t$errorflds[0].scrollIntoView({behavior:'smooth',block: 'start'});\n\t\t\t}\n\t\t}\n\t},\n\n\tsubmitAndCheckresetPasswordAff:function($target){\n\t\tAE.forms.addSpinGear($target);\n\t\tvar $thisForm = $target.closest('form')[0];\t\n\t\tvar $formVals = $('#' + $thisForm.id ).serialize();\n\t\tvar $typex = $('#' + $thisForm.id + ' input[name=typex]').val();\n\t\tvar $isValidPwd = APP.checkPasswordLegacy($thisForm.id);\n\t\tvar $ele = $('#' + $thisForm.id + ' input[name=reset_repassword]');\n\t\tvar $isMatch = APP.initCustomMatchVerification($ele);\n\t\tvar $hasBlanks = APP.checkBlank($thisForm.id);\n\t\tvar $errorEleNotFound = APP.getErrorEle($thisForm.id, 'no_match');\n\t\tvar $errorEleNotFound = $($errorEleNotFound);\n\t\tif(!$hasBlanks && $isValidPwd && $isMatch){\n\t\t\tvar cfc = APP.props.$ObjMember + '?method=resetPasswordAff';\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: cfc,\n\t\t\t\tdata: $formVals,\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function(result){\n\t\t\t\t\tif(!result.RESULT){\n\t\t\t\t\t\tif(!result.AFF_FOUND){\n\t\t\t\t\t\t\t$($errorEleNotFound).html(result.MESS);\t\n\t\t\t\t\t\t\tAE.forms.removeSpinGear($target);\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t$($errorEleNotFound).html('');\n\t\t\t\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tAE.ui.enableClicks();\n\t\t\t\t\t}\n\t\t\t\t\telse if(result.PWD_CHANGED){\n\t\t\t\t\t\tvar $postForm = $(\"form#aff_reset_password\");\t\t\t\t\t\t\t\n\t\t\t\t\t\tvar $elesuccessMsg = $('form#aff_reset_password input#successMsg');\t\t\t\t\t\t\t\n\t\t\t\t\t\tvar $elepwdChanged = $('form#aff_reset_password input#pwdChanged');\n\t\t\t\t\t\t$($elesuccessMsg).val(result.MESS);\n\t\t\t\t\t\t$($elepwdChanged).val(true);\t\t\t\t\t\t\t\n\t\t\t\t\t\t$($postForm ).submit();\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t$($target).prop('disabled', false);\n\t\t\t\t\tAE.ui.enableClicks();\n\t\t\t\t},\n\t\t\t\t error: function (/*xhr, ajaxOptions, thrownError*/) {\n //console.log(xhr.status);\n //console.log(thrownError);\n }\t\t\t\t\n\t\t\t});\n\t\t}\n\t}\n\t,\n\n\tsubmitAndCheckresetPassword: function ($formId,$fieldToCheck,$Target) {\n\t\tvar $cfc = APP.props.$ObjMember + '?method=checkAndSubmitResetFormRemote';\n\t\tvar $thisForm = $('#' + $formId);\n\t\tvar $isNav = false;\n\t\tvar $formVals = $thisForm.serialize();\n\t\tvar $password_changed = false;\n\t\tvar $strSingle = '';\n\t\tvar $error_ele = '';\n var $hasErrors = true;\n var $currEle = '';\n\t\tvar $currEleVal = '';\n\t\tvar $currEleErrorClass = '';\n\t\tvar $currEle_curr_val = '';\n\t\tvar $checkThis = '';\t\n\t\tvar $do_nothing = false;\t\n\n\t\tAE.forms.addSpinGear($Target);\n\t\t\n\t\tif($thisForm.hasClass('nav')){$isNav = true;}\n\n\t\tAPP.setHTML('member-response-left', '');\n\t\t//for single field check, on blur we only want to check that one field. indicated by non blank formField value\n\t\tif($fieldToCheck){$formVals = $formVals + '&fieldToCheck=' + encodeURIComponent($fieldToCheck);}\n\t\telse{APP.hideGridDivByClass($formId,'memberPasswordChecklist');}\n\n\t \t $.ajax({\n\t type: 'POST',\n\t dataType: 'JSON',\n\t cache: false, \n\t url: $cfc,\n\t data: $formVals,\n\t success: function(result){\n\t\t $str = '';\n\t\t $hasErrors = false;\n\t\t $currEle = '';\n\t\t\t\t\t$currEleVal = '';\n\t\t\t\t\t$currEleErrorClass = '';\n\t\t\t\t\t$currEle_curr_val = '';\n\t\t\t\t\t$checkThis = '';\t\n\t\t\t\t\t$do_nothing = false;\t\n\t\t\t\t\t$password_changed = false;\t\n\t\t\t\t\t$error_ele = '';\n\n\t\t for (var i = 0, len = result.length; i < len; i++) {\n\t\t\t\t\t\t$currEle = result[i][0];\n\t\t\t\t\t \t$currEleVal = result[i][1];\n\t\t\t\t\t \tif(result[i][2]){$currEleErrorClass = result[i][2];}\n\t\t\t\t\t \t$currEle_curr_val = '';\n\t\t\t\t\t \t$do_nothing = false;\n\n\t\t\t\t\t// Password successfully changed\n\t\t\t\t\t\tif($currEle == 'passwordChanged'){\n\t\t\t\t\t\t\t$hasErrors = false;\n\t\t\t\t\t\t\tif($isNav){\t\n\t\t\t\t\t\t\t\tAPP.hideEle('memberPasswordResetNav');\n\t\t\t\t\t\t\t\tAPP.showEle('memberloginNav');\n\t\t\t\t\t\t\t\t$thisForm.find(\"input[type=text], input[type=password], input[type=email]\").val(\"\");\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t//$hasErrors = false;\n\t\t\t\t\t\t\t\tAPP.hideEle('resetPasswordContainer');\n\t\t\t\t\t\t\t\tAPP.showEle('forgotPasswordContainer');\n\t\t\t\t\t\t\t\t$password_changed = true;\n\t\t\t\t\t\t\t\t//return false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tAPP.setHTML('member-response-right', ''); \n\t\t\t\t\t\t\tAPP.hideGridDiv($formId,'member-response-right');\n\n\n\t\t\t\t\t\t\tAPP.setHTML('member-response-left', $currEleVal); \n\t\t\t\t\t\t\tAPP.showGridDiv('member-response-left', '');\n\t\t\t\t\t\t\t$(\"div.login_container\").removeClass('visuallyhidden--palm');\n\t\t\t\t\t\t\t$(\"div.login_container\").removeClass('visuallyhidden--lap');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\t\t\t\t\n\t\t\t\t\t\t\t\t$strSingle = '<p>' + $currEleVal + '</p>';\n\t\t\t\t\t\t\t\t$error_ele = APP.getErrorEle($formId, $currEle);\n\t\t\t\t\t\n\t\t\t\t\t\t\t\tif($error_ele){$currEle_curr_val = $($error_ele).html();}\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t//only add error text if not already there. keeps screen from shimmying\n\t\t\t\t\t\t\t\tif($currEle_curr_val && $currEle_curr_val.length > 0 && ($currEle_curr_val == $currEleVal)){\n\t\t\t\t\t\t\t\t\t$do_nothing = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t$do_nothing = false;\n\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif(!$do_nothing && $currEleVal){\n\t\t\t\t\t\t\t\t\t\tstrSingle = '<p>' + $currEleVal + '</p>';\n\t\t\t\t\t\t\t\t\t\t//APP.setHTML($error_ele, $strSingle);\n\t\t\t\t\t\t\t\t\t\t$($error_ele).html($strSingle);\n\t\t\t\t\t\t\t\t\t\tAPP.addInvalidClass($formId,$currEle);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if(!$do_nothing){\n\t\t\t\t\t\t\t\t\t\t$($error_ele).html('');\n\t\t\t\t\t\t\t\t\t\tAPP.addValidClass($formId,$currEle);\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//}\n\t\t\t\t\t\t}\n\t\t\t\t\t}//end data loop\n\n\t\t\t\t\tAE.forms.removeSpinGear($Target);\n\t\t\t\t\t$($Target).prop('disabled', false);\n\n\t\t\t\t\tif(!$hasErrors && !$fieldToCheck){\n\t\t\t\t\t \t//$('#submit_password_save_button').prop('disabled', false);\n\t\t\t\t\t \t$(\"div.login_container\").removeClass('visuallyhidden--lap');\n\t\t\t\t\t \t$(\"div.login_container\").removeClass('visuallyhidden--palm');\n\t\t\t\t\t}\n\t },//end success\n\t error: function (/*xhr, ajaxOptions, thrownError*/) {\n //console.log(xhr.status);\n // console.log(thrownError);\n }\n \t\t});\n\t},\n\taddUpdateSalesforce: function (formVals) {\n\t\tvar cfc = '/plugins/ae3/lib/Member3.cfc?method=handleSalesforce';\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: cfc,\n\t\t\t\tdata: formVals,\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function(result){\n\t\t\t\t\t\t\t\n\t\t\t\t },\n\t\t\t\t error: function (/*xhr, ajaxOptions, thrownError*/) {\n //console.log(xhr.status);\n //console.log(thrownError);\n }\n\t\t\t\t\n\t\t\t});\n\t},\n\n\thandleSalesforceLogin:function(){\n\t\t\tvar cfc = '/plugins/ae3/lib/Member3.cfc?method=handleSalesforce_Login';\n\t\t\t$.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: cfc,\n\t\t\t\tsuccess: function(result){\n\t\t\t\t\t//console.log('handleSalesforceLogin',result);\n\t\t\t\t},\n\t\t\t\terror: function (/*xhr, ajaxOptions, thrownError*/) {\n // console.log(xhr.status);\n // console.log(thrownError);\n }\n\t\t\t\t\n\t\t\t});\n\t},\n\n\tsubmitAndCheckMemberAccountForm: function ($formId, $target, fieldToCheck) {\n\t\t\tvar cfc = APP.props.$ObjMember + '?method=checkAndSubmitAccountFormRemote';\n\t\t\tvar $formAction = $('#' + $formId + ' input[name=form_action]').val();\n\t\t\tvar $hasErrors = false;\n\t\t\tvar $currEle = '';\n\t\t\tvar $error_ele = '';\n\t\t\tvar $currEleVal = '';\n\t\t\tvar $currEle_curr_val = 0;\n\t\t\tvar $do_nothing = false;\n\t\t\tvar $formVals = $('#' + $formId).serialize();\n\t\t\tvar $ele_guardian = '';\n\t\t\tAPP.setHTML('duplicateMemberMsg', '');\t\n\t\t\t//for single field check, on blur we only want to check that one field. indicated by non blank formField value\n\t\t\tif(fieldToCheck){$formVals = $formVals + '&fieldToCheck=' + encodeURIComponent(fieldToCheck);}\n\n\t\t\t\t$.ajax({\n\t\t\t type: 'POST',\n\t\t\t dataType: 'JSON',\n\t\t\t cache: false,\n\t\t\t url: cfc,\n\t\t\t data: $formVals,\n\t\t\t success: function(result){\t\n\t\t\t\t\t\t\tfor (var i = 0, len = result.length; i < len; i++) {\n\t\t\t\t\t\t\t\t$currEle = result[i][0];\n\t\t\t\t\t\t\t\t$currEleVal = result[i][1];\n\t\t\t\t\t\t\t\t$currEle_curr_val = '';\t\n\t\t\t\t\t\t\t\t$do_nothing = false;\n\t\t\t\t\t\t\t\tformvals = $formVals;\n\n\t\t\t\t\t\t\t\t$error_ele = APP.getErrorEle($formId, $currEle);\t\n\t\t\t\t\t\t\t\t$ele_guardian = APP.getGuardianErrorEle($formId,$currEle);\n\t\t\t\t\t\t\t\t$ele_guardian = $(\"span#\" + $ele_guardian);\n\t\t\t\t\t\t\t\tif(!$currEleVal){\n\t\t\t\t\t\t\t\t\tAPP.removeInvalidClass($formId,$currEle);\n\t\t\t\t\t\t\t\t\t$($error_ele).html('');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t$hasErrors = true;\n\t\t\t\t\t\t\t\t\t$currEle_curr_val = $($error_ele).html();\n\t\t\t\t\t\t\t\t\t//only add error text if not already there or different than current messge. keeps screen from shimmying\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif($currEle_curr_val.length > 0 && ($currEle_curr_val == $currEleVal)){\n\t\t\t\t\t\t\t\t\t\t$do_nothing = true;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif($ele_guardian){\n\t\t\t\t\t\t\t\t\t\tif($ele_guardian.val() == $currEleVal){\n\t\t\t\t\t\t\t\t\t\t\t$do_nothing = true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{APP.removeGuardianError($formId,$currEle);}\n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(!$do_nothing){\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$($error_ele ).html($currEleVal);\n\t\t\t\t\t\t\t\t\t\tAPP.addInvalidClass($formId,$currEle);\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}//end for loop\n\n\t\t\t\t\t\t\tif($hasErrors ){\n\t\t\t\t\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t\t\t\t\t$($target).attr('disabled', false);\n\t\t\t\t\t\t\t\tAPP.scrollToErrors($formId,$target);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\tif($formAction == 'account_update'){\n\t\t\t\t\t\t\t\t\tif(!fieldToCheck){\n\t\t\t\t\t\t\t\t\t\tAPP.addUpdateSalesforce($formVals);\n\t\t\t\t\t\t\t\t\t\tAPP.loadAccountInformation(true);\n\t\t\t\t\t\t\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t\t\t\t\t\t\t$($target).attr('disabled', false);\n\t\t\t\t\t\t\t\t\t\t//$($target).prop('disabled', false);\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if($formAction == 'account_save'){\n\t\t\t\t\t\t\t\t\tif(!fieldToCheck){\n\t\t\t\t\t\t\t\t\t\t//WEBAE3-6285 start\n\t\t\t\t\t\t\t\t\t\tformvalsDes = APP.deparam(formvals);\n\t\t\t\t\t\t\t\t\t\tif(typeof formvalsDes.member_emaillist == \"undefined\"){ \n\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"aeShowSubscribe\", true);//trigger New Modal to spawn when unsubscribed user logs in except the following pages\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//WEBAE3-6285 END\n\t\t\t\t\t\t\t\t\t\t$('#member_signup').submit();\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},//end success\t\t\t\t\t\n\n \t\t\t\t\t\terror: function (/*xhr, ajaxOptions, thrownError*/) {\n \t\t \t// console.log(xhr.status);\n \t\t\t// console.log(thrownError);\n \t\t}\n\t\t\t\t});//end ajax\n\t\t\t//}\t\t\t\t\t\n\t},\n\tshowDobClear: function () {\n\t\t$('.ui-state-default,.ui-datepicker-title,.ui-datepicker-prev,.ui-datepicker-next').click(function(){\n\t\t\t$('span.ui-datepicker-clear-input').removeClass('visuallyhidden');\n\t\t})\n\t},\n\tshowHide: function (show, hide) {\n\t\t\t$('#' + hide).addClass('visuallyhidden');\n\t\t\t$('#' + show).removeClass('visuallyhidden');\n\t},\n\thideShow: function (hide,show) {\n\t\t\t$('#' + hide).addClass('visuallyhidden');\n\t\t\t$('#' + show).removeClass('visuallyhidden');\n\t},\n\tshowEle: function (ele) {\n\t\t\treturn $('#' + ele).removeClass('visuallyhidden');\n\t},\n\thideEle: function (ele) {\n\t\t\treturn $('#' + ele).addClass('visuallyhidden');\n\t},\n\tsetHTML: function (ele, str) {\n\t\t$('#' + ele).html(str);\n\t},\n\tcheckIfMobile: function () {\n\t\tvar isMobile = false; //initiate as false\n\t\t// device detection\n\t\t\tif(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) \n\t\t\t|| /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(navigator.userAgent.substr(0,4))) { \n\t\t\tisMobile = true;\n\t\t};\n\t\treturn isMobile\n\t},\n\tgetErrorEle: function ($formId, $ele) {\n\t\tvar $error_ele = 'form#' + $formId + ' span.errorTxt-' + $ele;\n\t\treturn $error_ele;\n\n\t},\n\tgetGuardianErrorEle: function ($formId, $ele) {\n\t\tvar $eleGuardian = 'error-message-' + $formId + '-' + $ele;\n\t\treturn $eleGuardian;\n\t},\n\tremoveGuardianError:function($formId,$ele){\n\t\tvar $eleGuardian = 'error-message-' + $formId + '-' + $ele;\n\t\t$eleGuardian = 'span.ui-error-message#' + $eleGuardian;\n\t\t$eleGuardian = $($eleGuardian);\n\t\tif($eleGuardian){$($eleGuardian).remove();}\n\t},\n\tclearServerError:function($formId,$ele){\n\t\tvar $clear_ele = 'errorTxt-' + $ele;\n\t\t$clear_ele = 'span.ui-error-message.' + $clear_ele;\n\t\t$clear_ele = $($clear_ele);\n\t\tif($clear_ele){$($clear_ele).html('');}\n\t},\n\tcheckBlank:function($formId){\n\t\tvar empty = false;\n\t\tvar $form = document.querySelector('#' + $formId);\n\t\tvar $flds = $form.querySelectorAll('*[required]');\n\n\t\tvar i;\n\t\tfor (i = 0; i < $flds.length; i++) {\n\t\n\t\t $isVisible = !$flds[i].parentNode.classList.contains('visuallyhidden');\n\n\t\t if($flds[i].value.trim() == '' && $isVisible ){ \n\n\t\t \tif(APP.getErrorEle($formId, $flds[i].name) && !$flds[i].classList.contains('validatePassword')){\n\t\t \t\t$ele = $('#' + $formId + ' input[name=' + $flds[i].name + ']');\n\t\t \t\t$error_ele = $(APP.getErrorEle($formId, $flds[i].name));\n\t\t \t\t$error_ele_guardian = APP.getGuardianErrorEle($formId, $flds[i].name);\n\t\t \t\t$error_ele_guardian = $('span#' + $error_ele_guardian);\n\t\t \t\t$errorMess1 = $flds[i].getAttribute('data-error-message');\n\t\t \t\t$errorMess2 = $flds[i].getAttribute('data-empty-message');\n\t\t \t\t$errorMess = (!$errorMess2) ? $errorMess1 : $errorMess2;\t \t\n\n\t\t \t\tif($error_ele_guardian.length != 0){\n\t\t \t\t\t$($error_ele).html('');\n\t\t \t\t}\n\t\t \t\telse if($error_ele.length == 0 && $error_ele_guardian.length == 0 ){\n\t\t \t\t\t$ele.after('<span class=\"ui-error-message\" id=\"error-message-'+ $formId + '-'+ $flds[i].name +'\">' + $errorMess + '</span>'); \t\n\t\t \t\t }\n\t\t \t\t// else{\n\t\t \t\t// \t$($error_ele).html($errorMess);\t\t \t\t\n\t\t \t\t// }\n\t\t \t}\n\t\t \t$flds[i].parentElement.classList.add('ui-state-invalid');\n\t\t \tempty = true;\n\t\t }\n\t\t}\n\t\t//check if state required\n\t\tvar $checkState = $('#' + $formId + ' select.state--select:visible').parent().parent('.required');\n\t\tif($checkState.length != 0){\n\t\t\t$eleState = $('#' + $formId + ' select.state--select:visible');\n\t\t\tif($($eleState ).val() == ''){\n\t\t\t\t$($($eleState).parent()).addClass('ui-state-invalid');\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\treturn empty;\n\t},\n\tisTwoCol: function(){\n\t var isTwoCol = false; \n\t if($(window).width() > 1023){isTwoCol = true;}\n\n\t\treturn isTwoCol;\n\n\t},\n\n\tvalidatePwdLegacy:function($str){\n\t var pwd = {\n\t \tvalidated: true,\n\t\t\tpwd_length: true\t\t\n\t };\t\n\t\t\tif ($str.length < 8 ) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_length = false;\n\t\t\t};\n\t\t\tif ($str.length > 16 ) {\n\t\t\t\tpwd.validated = false;\n\t\t\t\tpwd.pwd_length = false;\n\t\t\t }\t\t\t\t\t\t\n\t\treturn pwd;\n\t},\n\n\tvalidatePwd:function($str){\n\t var pwd = {\n\t \tvalidated: true,\n\t\t\tpwd_length: true,\n\t\t\tpwd_number: true,\n\t\t\tpwd_special: true,\n\t\t\tpwd_upper: true,\n\t\t\tpwd_lower: true\n\t };\n\n\t if($str && $str.length!=0){\n\t\t\t//validate lower\n\t\t\tif (!$str.match(/[a-z]/) ) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_lower = false;\n\t\t\t}\n\n\t\t\t//validate capital letter\n\t\t\tif (!$str.match(/[A-Z]/) ) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_upper = false;\n\t\t\t}\n\n\t\t\t//validate number\n\t\t\tif (!$str.match(/\\d/) ) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_number = false;\n\t\t\t}\n\t\t\t// validate length greater than 8\n\t\t\tif ($str.length < 8) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_length = false;\n\t\t\t}\n\t\t\t// validate length less than 16\n\t\t\tif ($str.length > 16) {\n\t\t\t\tpwd.validated = false;\n\t\t\t\tpwd.pwd_length = false;\n\t\t\t }\n\n\t\t\tif (!$str.match(/[!=@#$%^&*-_\\+\\(\\)?<>\\.:;\"'`~\\|\\{\\}\\[\\]\\\\\\/]/) ) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_special = false;\n\t\t\t}\n\t\t\tif (!$str.match( /[!@#$%^&*()_=\\[\\]{};':\"\\\\|,.<>\\/?+-]/) ) {\n\t\t\t pwd.validated = false;\n\t\t\t pwd.pwd_special = false;\n\t\t\t}\n\t\t}\n\t\telse{\n\n\t \t\tpwd.validated = false;\n\t\t\tpwd.pwd_lower = false;\n\t\t\tpwd.pwd_upper = false;\n\t\t\tpwd.pwd_number = false;\n\t\t\tpwd.pwd_length = false;\n\t\t\tpwd.pwd_special = false;\n\t\t}\n\n\t\treturn pwd;\n\t},\n\treadCookie:function($name){\n\t var nameEQ = $name + \"=\";\n\t var ca = document.cookie.split(';');\n\t for(var i=0;i < ca.length;i++) {\n\t var c = ca[i];\n\t while (c.charAt(0)==' ') c = c.substring(1,c.length);\n\t if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\n\t }\n\t return null;\n\t},\n\tgetPayOptions:function(){\n\t\t/*\n\t\tgetPayOptions: GET - returns array of all payment options\n\t\t*/ \n\t\tvar cfc = APP.props.$ObjMember + '?method=getPayOptions';\n\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: cfc,\n\t\t\tdata: {remoteId: AEdata.myRemoteId},\n\t\t\tdataType: 'json',\n\t\t\tsuccess: function(result){\n\t\t\t\tif(result.CARDS){\n\t\t\t\t\tAEdata.CARDS = [];//make sure array is empty before adding cards\n\t\t\t\t\tAEdata.CARDS = result.CARDS;\n\t\t\t\t\tAPP.showCurrentCards();\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: function (/*xhr, ajaxOptions, thrownError*/) {\n\t\t\t\t// console.log(xhr.status);\n\t\t\t\t// console.log(thrownError);\n\t\t\t\t}\n\t\t});\n\t},\n\tgetAddCardWidget:function(){\n\t\t/*\n\t\tgetAddCard: GET - Returns URL for hosted checkout widget\n\t\t*/ \n\t\tvar cfc = APP.props.$ObjMember + '?method=getAddCard';\n\n\t\tif(AEdata.account.ccWidgetUrl && AEdata.account.ccWidgetUrl !== 'expired') {\n\t\t\t//we already requested a widget so use it\n\t\t\tAPP.showAddCard(AEdata.account.ccWidgetUrl);\n\n\t\t} else {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: cfc,\n\t\t\t\tdata: {remoteId: AEdata.myRemoteId},\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: function(result){\n\t\t\t\t\tif(result.SUCCESS){\n\t\t\t\t\t\tAEdata.account.ccWidgetUrl = result.URL;//save URL in this browser request state for toggling\n\t\t\t\t\t\tAPP.showAddCard(AEdata.account.ccWidgetUrl);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tAPP.showAddCardWidgetFail();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function (/*xhr, ajaxOptions, thrownError*/) {\n\t\t\t\t\t// console.log(xhr.status);\n\t\t\t\t\t// console.log(thrownError);\n\t\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\ttoggleAddCard:function(){\n\t\tif ($(\".add_card_container\").hasClass('visuallyhidden')) {\n\t\t\tAPP.showAddCardUI();\n\t\t} else { \n\t\t\tAPP.hideAddCardUI();\n\t\t}\n\t},\n\tshowAddCardUI:function(){\n\t\t//make for all AddCard UI elements visible\n\t\tif($('.add_card_container').hasClass('visuallyhidden')) {\n\t\t\t$(\".add_card_container\").removeClass('visuallyhidden');\n\t\t}\n\t\tif($('#mycc_loader').hasClass('visuallyhidden')) {\n\t\t\t$('#mycc_loader').removeClass('visuallyhidden');\n\t\t}\n\t\tif(!$('#noCCwidget').hasClass('visuallyhidden')) {\n\t\t\t$('#noCCwidget').addClass('visuallyhidden');//only an error retrieving widget will display this id\n\t\t}\n\t\t$(\".addNewCCToggle\").text('-');\n},\n\thideAddCardUI:function(){\n\t\t//hide all AddCard UI elements\n\t\tif(!$('.add_card_container').hasClass('visuallyhidden')) {\n\t\t\t$(\".add_card_container\").addClass('visuallyhidden');\n\t\t}\n\t\tif($('#mycc_loader').hasClass('visuallyhidden')) {\n\t\t\t$('#mycc_loader').removeClass('visuallyhidden');\n\t\t}\n\t\tif(!$('#noCCwidget').hasClass('visuallyhidden')) {\n\t\t\t$('#noCCwidget').addClass('visuallyhidden');//only an error retrieving widget will display this id\n\t\t}\n\t\tif(!$('#hp_cc').hasClass('visuallyhidden')) {\n\t\t\t$('#hp_cc').addClass('visuallyhidden');\n\t\t}\n\t\t$(\".addNewCCToggle\").text('+');\n\n\t},\n\thideMyCCLoader:function(){\n\t\t$('#mycc_loader').addClass('visuallyhidden');\n\t},\n\tshowAddCard:function(widgetUrl){\n\t\t//make sure iframe is hidden until URL loads (or reloads on toggling of Add New or whole section)\n\t\tif(!$('#ccWidget').hasClass('visuallyhidden')) {\n\t\t\t$('#ccWidget').addClass('visuallyhidden');\n\t\t}\n\t\tif (!$(\"#noCCwidget\").hasClass('visuallyhidden')) {\n\t\t\t//we got widget URL so make sure this message isn't showing\n\t\t\t$(\"#noCCwidget\").addClass('visuallyhidden');\n\t\t}\n\t\tdocument.getElementById('ccWidget').src = widgetUrl;\n\t\tdocument.getElementById('ccWidget').addEventListener(\"load\", function() {\n\t\t\tAPP.hideMyCCLoader()\n\t\t\tdocument.getElementById('hp_cc').classList.remove('visuallyhidden');\n\t\t\tdocument.getElementById('ccWidget').classList.remove('visuallyhidden');\n\t\t\t});\n\t},\n\tshowAddCardWidgetFail:function(widgetUrl){\n\t\tAPP.hideMyCCLoader();\n\t\t//show a failure message\n\t\tdocument.getElementById('noCCwidget').innerHTML = '<h4>' + AEdata.account.oStoredPaymentLang.payment_added_failed + '</h4>';\n\t\tdocument.getElementById('noCCwidget').classList.remove('visuallyhidden');\n\t},\n\tshowCurrentCards:function(){\n\t\t$(\"#editCCControl\").empty();//clear out any old cards displayed\n\t\tif (!$(\".add_card_container\").hasClass('visuallyhidden')) {\n\t\t\t$(\".add_card_container\").addClass('visuallyhidden');//hide add card form if it was open\n\t\t}\n\t\tvar newCardId = ( localStorage.getItem('newCardId') && _.isString(localStorage.getItem('newCardId'))) ? localStorage.getItem('newCardId') : 'none';\n\t\t//if newCardId isn't 'none' then we have a status message to show\n\t\tif(newCardId !== 'none'){\n\t\t\t//clear saved checkout URL from AEdata\n\t\t\tAEdata.account.ccWidgetUrl = 'expired';//this triggers a new checkout if necessary\n\n\t\t\t//check for duplicate card added\n\t\t\tvar isDuplicateCard = false;\n\t\t\tif(localStorage.getItem('isDuplicate') !== null) {\n\t\t\t\tvar isDuplicateCard = localStorage.getItem('isDuplicate');\n\t\t\t\tlocalStorage.removeItem('isDuplicate');//clear so it can be reset\n\t\t\t}\n\t\t\t//clear saved ID from localStorage so message isn't shown again\n\t\t\tlocalStorage.removeItem('newCardId');\n\n\t\t\t//determine which message show: if NewCardId = 0, then we'll show failure, default is to show added\n\t\t\tvar savePaymentMsg = (isDuplicateCard === 'true') ? AEdata.account.oStoredPaymentLang.payment_method_exists : AEdata.account.oStoredPaymentLang.payment_added_success;\n\t\t\tvar savePaymentMsgClass = '';\n\t\t\tif(newCardId === '0'){\n\t\t\t\t//no card added but was attempted so set fail message/class\n\t\t\t\tvar savePaymentMsg = AEdata.account.oStoredPaymentLang.payment_added_failed;\n\t\t\t\tvar savePaymentMsgClass = 'class=\"ui-error-message\"';\n\t\t\t}\n\t\t\tvar savePaymentMsgDiv = document.createElement(\"div\");\n\t\t\tsavePaymentMsgDiv.innerHTML = '<h4 '+ savePaymentMsgClass + '>' + savePaymentMsg + '</h4>';\n\t\t\t$(\"#editCCControl\").append(savePaymentMsgDiv);\n\t\t}\n\t\tif(AEdata.CARDS.length){\n\t\t\tAEdata.CARDS.forEach(function (item, index) {\n\t\t\t\tvar cardLast4 = '<strong>' + item.LAST4 + '</strong> ';\n\t\t\t\tvar cardExp = '<strong>' + item.EXP + '</strong> ';\n\t\t\t\tvar cardType = item.CARDTYPE;\n\t\t\t\tvar cardId = item.CARDID;\n\t\t\t\tvar carLabelClass = (newCardId === cardId) ? 'current-cc-label-justadded' : 'current-cc-label';\n\n\t\t\t\tvar cardLogoKey = item.CARDTYPE.toLowerCase();\n\t\t\t\t//show logo if we have one, otherwise card type text\n\t\t\t\tvar cardTypeDisplay = (AEdata.oCClogos[cardLogoKey]) ? '<img style=\"flex:auto;\" src=\"'+AEdata.oCClogos[cardLogoKey]+'\">' : '<strong>' + cardType + '</strong> ';\n\t\t\t\tvar cardSummary = AEdata.account.oStoredPaymentLang.txt_card_summary.replace('##cardtype##',cardTypeDisplay);\n\t\t\t\tcardSummary = cardSummary.replace('##last4##',cardLast4);\n\t\t\t\tcardSummary = cardSummary.replace('##expdate##',cardExp);\n\n\t\t\t\tdisplayHTML = '<div class=\"current-cc-label-wrap\"><div class=\"' + carLabelClass + '\">';\n\t\t\t\tdisplayHTML += '<div>' + cardSummary + '</div></div>';\n\t\t\t\tdisplayHTML += '<div class=\"current-cc-buttons\">';\n\t\t\t\tdisplayHTML += '<a href=\"#\" name=\"btn_'+cardId+'\" class=\"deleteCC\" data-cardId=\"'+cardId+'\" tabindex=\"1\">' + AEdata.account.oStoredPaymentLang.button_delete + '</a>';\n\t\t\t\tdisplayHTML += '</div></div>';\n\t\t\t\tvar newCardBlock = document.createElement(\"div\");\n\t\t\t\tnewCardBlock.id = cardId;\n\t\t\t\tnewCardBlock.classList.add('current-cc-container')\n\t\t\t\tnewCardBlock.innerHTML = displayHTML;\n\t\t\t\t$(\"#editCCControl\").append(newCardBlock);\n\n\t\t\t});\n\t\t} else {\n\t\t\tvar newCardBlock = document.createElement(\"div\");\n\t\t\tnewCardBlock.innerHTML = '<p>' + AEdata.account.oStoredPaymentLang.no_saved_payments + '</p>';\n\t\t\t$(\"#editCCControl\").append(newCardBlock);\n\t\t}\n\t\t$(\"#editCCControl\").removeClass('visuallyhidden');\n\t\t//if addcard form is visible, hide it\n\t\tif(!$(\".add_card_container\").hasClass('visuallyhidden')){\n\t\t\t$(\".add_card_container\").addClass('visuallyhidden');\n\t\t}\n\n\t},\n\tdeletePaymentOption:function(cardId){\n\t\t/*\n\t\tdeletePaymentOption: GET - returns array of all payment options\n\t\t*/ \n\t\tvar cfc = APP.props.$ObjMember + '?method=deleteStoredPayment';\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: cfc,\n\t\t\tdata: {remoteId: AEdata.myRemoteId, paymentId: cardId},\n\t\t\tdataType: 'json',\n\t\t\tsuccess: function(result){\n\t\t\t\tif(result.SUCCESS){\n\t\t\t\t\t$(\"#editCCControl\").addClass('visuallyhidden');//hide cards before refreshing\n\t\t\t\t\tAPP.getPayOptions();\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: function (xhr, ajaxOptions, thrownError) {\n\t\t\t\t// console.log(xhr.status);\n\t\t\t\t// console.log(thrownError);\n\t\t\t\t}\n\t\t});\n\t},\n\n\t/*\tLAZY LOADING RESERVATION SECTION FUNCTIONS - WEBAE3-5726\t*/\n\tloadAccountReservations:function() {\n\t\tif(APP.props.$isInMemberAccount && APP.props.$isLoggedIn){\n\t\t\tvar $resLoadSpinner = $('#loaderMemberReservations');\n\t\t\tif($resLoadSpinner.length){\n\t\t\t\tif(AEdata.hasOwnProperty('stMemberVoucherInfo') && \n\t\t\t\t\t_.isObject(AEdata.stMemberVoucherInfo) && \n\t\t\t\t\t!_.isEmpty(AEdata.stMemberVoucherInfo)\n\t\t\t\t){\n\t\t\t\t\tAPP.renderAccountReservations(AEdata.stMemberVoucherInfo);\n\t\t\t\t} else {\n\t\t\t\t\tAEdata.stMemberVoucherLang = AEdata.stMemberVoucherLang || {};\n\t\t\t\t\tvar cfc = APP.props.$ObjMember + '?method=showAccountReservations';\n\t\t\t\t\tvar lookupPage = AEdata.stMemberVoucherLang.LOOKUP_URL || 'LOOKUP_URL';\n\t\t\t\t\t$.ajax({\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\turl: cfc,\n\t\t\t\t\t\tdataType: 'json',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tlookupPage\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function(result){\n\t\t\t\t\t\t\tif(_.isObject(result) && !result.isEmpty()){\n\t\t\t\t\t\t\t\tAPP.renderAccountReservations(result); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: function (/*xhr, ajaxOptions, thrownError*/) {\n\t\t\t\t\t\t\tAPP.renderAccountReservations({voucherError:true});\n\t\t\t\t\t\t\t// console.log(xhr.status);\n\t\t\t\t\t\t\t// console.log(thrownError);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\trenderAccountReservations:function(objMemberVoucherInfo) {\n\t\tAEdata.stMemberVoucherLang = AEdata.stMemberVoucherLang || {};\n\t\tvar $dfAccountReservations = $(document.createDocumentFragment());\n\t\tif(objMemberVoucherInfo.hasOwnProperty('voucherError') &&\n\t\t\tobjMemberVoucherInfo.voucherError === true\n\t\t){\n\t\t\t$dfAccountReservations.append(APP.renderAccountReservationLookupError());\n\t\t} else if(objMemberVoucherInfo.hasOwnProperty('vouchers') && \n\t\t\t_.isObject(objMemberVoucherInfo.vouchers) && \n\t\t\t!_.isEmpty(objMemberVoucherInfo.vouchers) &&\n\t\t\tobjMemberVoucherInfo.vouchers.hasOwnProperty('current') &&\n\t\t\tobjMemberVoucherInfo.vouchers.hasOwnProperty('past') &&\n\t\t\t_.isArray(objMemberVoucherInfo.vouchers.current) &&\n\t\t\t_.isArray(objMemberVoucherInfo.vouchers.past)\n\t\t){\n\t\t\t['current','past'].forEach(function(vouchKey) {\n\t\t\t\tvar theseVouchers = objMemberVoucherInfo.vouchers[vouchKey];\n\t\t\t\tvar $thisGrid = $(document.createElement('div')).addClass('grid');\n\t\t\t\tvar $thisGridItem = $(document.createElement('div')).addClass('grid__item one-whole palm-one-whole soft--left');\n\t\t\t\tvar classKey = 'curr';\n\t\t\t\tvar langKey = 'CURRENT';\n\t\t\t\tif(vouchKey === 'past'){\n\t\t\t\t\t$thisGridItem.addClass('push-half--top');\n\t\t\t\t\tclassKey = 'past';\n\t\t\t\t\tlangKey = 'PAST';\n\t\t\t\t} else {\n\t\t\t\t\tif(typeof AEdata.stMemberVoucherLang.HEADER_RESERVATIONS_CONTENT === 'string' && AEdata.stMemberVoucherLang.HEADER_RESERVATIONS_CONTENT !== ''){\n\t\t\t\t\t\t$thisGridItem.append(\n\t\t\t\t\t\t\t$(document.createElement('p'))\n\t\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.HEADER_RESERVATIONS_CONTENT)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$thisGridItem.append(\n\t\t\t\t\t$(document.createElement('h3'))\n\t\t\t\t\t.append(AEdata.stMemberVoucherLang['HEADER_'+langKey] || 'HEADER_'+langKey)\n\t\t\t\t);\n\t\t\t\tif(_.isEmpty(theseVouchers)){\n\t\t\t\t\t$thisGridItem.append(\n\t\t\t\t\t\tAEdata.stMemberVoucherLang['NO_'+langKey+'_MSG'] || 'NO_'+langKey+'_MSG'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tvar $thisTable = $(document.createElement('table')).addClass('memres--'+classKey+'--reservations table--striped');\n\t\t\t\tvar $labelRow = $(document.createElement('tr')).addClass('cardetails-smallprint memres_row');\n\t\t\t\t$labelRow.append(\n\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t.addClass('memres_puCalLabel')\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(document.createElement('label'))\n\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.PUDATE_LABEL || 'PUDATE_LABEL')\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t$labelRow.append(\n\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t.addClass('memres_vouchLabel')\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(document.createElement('label'))\n\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.VOUCHER_LABEL || 'VOUCHER_LABEL')\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t$labelRow.append(\n\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t.addClass('memres_puLocLabel visuallyhidden--palm')\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(document.createElement('label'))\n\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.PULOC_LABEL || 'PULOC_LABEL')\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t$labelRow.append(\n\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t.addClass('memres_statusLabel visuallyhidden--palm')\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(document.createElement('label'))\n\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.STATUS_LABEL || 'STATUS_LABEL')\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t$labelRow.append(\n\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t.addClass('memres_action_label numerical')\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(document.createElement('label'))\n\t\t\t\t\t\t.append(' ')\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t$thisTable.append($labelRow);\n\t\t\t\ttheseVouchers.forEach(function(thisVouch) {\n\t\t\t\t\tvar $thisRow = $(document.createElement('tr')).addClass('cardetails-smallprint');\n\t\t\t\t\t$thisRow.append(\n\t\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t\t.addClass('memres_puCalLabel')\n\t\t\t\t\t\t.append(thisVouch.DATE)\n\t\t\t\t\t);\n\t\t\t\t\t$thisRow.append(\n\t\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t\t.addClass('memres_vouchLabel')\n\t\t\t\t\t\t.append(thisVouch.VOUCHNUM)\n\t\t\t\t\t);\n\t\t\t\t\t$thisRow.append(\n\t\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t\t.addClass('memres_puLocLabel visuallyhidden--palm')\n\t\t\t\t\t\t.append(thisVouch.PICKUP)\n\t\t\t\t\t);\n\t\t\t\t\t$thisRow.append(\n\t\t\t\t\t\t$(document.createElement('td'))\n\t\t\t\t\t\t.addClass('memres_statusLabel visuallyhidden--palm')\n\t\t\t\t\t\t.append(thisVouch.STATUSDISPLAY)\n\t\t\t\t\t);\n\t\t\t\t\t\n\t\t\t\t\tvar $linkCell = $(document.createElement('td')).addClass('memres_action numerical');\n\t\t\t\t\tif(vouchKey === 'past'){\n\t\t\t\t\t\t$linkCell.append($(document.createElement('a'))\n\t\t\t\t\t\t\t.attr('href',thisVouch.URL)\n\t\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.VIEW_LINK || 'VIEW_LINK')\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if(thisVouch.STATUS === 'D') {\n\t\t\t\t\t\t$linkCell.append($(document.createElement('a'))\n\t\t\t\t\t\t\t.attr('href',thisVouch.URL)\n\t\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.VIEW_LINK || 'VIEW_LINK')\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$linkCell.append($(document.createElement('a'))\n\t\t\t\t\t\t\t.attr('href',thisVouch.URL)\n\t\t\t\t\t\t\t.append($(document.createElement('span'))\n\t\t\t\t\t\t\t\t.addClass('visuallyhidden--desk visuallyhidden--desk-wide visuallyhidden--tablet visuallyhidden--lap')\n\t\t\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.VIEW_LINK || 'VIEW_LINK')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.append($(document.createElement('span'))\n\t\t\t\t\t\t\t\t.addClass('visuallyhidden--palm')\n\t\t\t\t\t\t\t\t.append(AEdata.stMemberVoucherLang.VIEW_LINK || 'VIEW_MODIFY_LINK')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t$thisRow.append($linkCell);\n\t\t\t\t\t$thisTable.append($thisRow);\n\t\t\t\t});\n\t\t\t\t$thisGridItem.append($thisTable);\n\t\t\t\t$dfAccountReservations.append($thisGrid.append($thisGridItem));\n\t\t\t});\n\t\t} else {\n\t\t\t$dfAccountReservations.append(APP.renderAccountReservationLookupError());\n\t\t}\n\t\t$('#toggleeMemberReservations').html($dfAccountReservations);\n\t},\n\trenderAccountReservationLookupError:function(){\n\t\tAEdata.stMemberVoucherLang = AEdata.stMemberVoucherLang || {};\n\t\treturn $(document.createElement('div')).addClass('grid').append(\n\t\t\t$(document.createElement('div'))\n\t\t\t.addClass('grid__item one-whole palm-one-whole soft--left')\n\t\t\t.append(AEdata.stMemberVoucherLang.VOUCHER_LOOKUP_ERROR || 'VOUCHER_LOOKUP_ERROR')\n\t\t);\n\t}\n\t,\n\tdeparam: function (query) { //WEBAE3-6285 END cool little tool\n\t\tvar pairs, i, keyValuePair, key, value, map = {};\n\t\t// remove leading question mark if its there\n\t\tif (query.slice(0, 1) === '?') {\n\t\t\tquery = query.slice(1);\n\t\t}\n\t\tif (query !== '') {\n\t\t\tpairs = query.split('&');\n\t\t\tfor (i = 0; i < pairs.length; i += 1) {\n\t\t\t\tkeyValuePair = pairs[i].split('=');\n\t\t\t\tkey = decodeURIComponent(keyValuePair[0]);\n\t\t\t\tvalue = (keyValuePair.length > 1) ? decodeURIComponent(keyValuePair[1]) : undefined;\n\t\t\t\tmap[key] = value;\n\t\t\t}\n\t\t}\n\t\treturn map;\n\t}\n};\n\n\treturn APP;\n})();\n\n\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\nAE.modal = AE.modal || (function(){\n\t/*\n\tDEPENDENCIES: AE\n\t*/\n\t\tvar APP = {\n\t\tinit:function() {\n\t\t\tAPP.props = {\n\t\t\t\t$modalLink\t: $('a.open_modal_page'),\n\t\t\t\t$devheight \t: $(window).height(),\n\t\t\t\t$devWidth \t:$(window).width()\t\n\t\t\t};\n\n\t\t\tAPP.props.$modalLink.on('click', function(e){\n\t\t\t\te.preventDefault();\n\t\t\t\tvar $target = $(e.target);\n\t\t\t\tvar strUrl = $target.attr('data-url');\n\t\t\t\tAPP.openPageModal(strUrl);\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t,\n\n\t\topenPageModal:function(strUrl) {\n\t\t\tvar currFontSize = $(\"html\").css('font-size');\n\t\t\t\n\t\t\tif(APP.props.$devWidth < 701){\n\t\t\t\t\tmwidth = .90*APP.props.$devWidth;\n\t\t\t\t\tmheight = .90*APP.props.$devheight;\n\t\t\t\t}\n\t\t\telse if(APP.props.$devWidth >700 && APP.props.$devWidth < 1000 ){\n\t\t\t\tmwidth = '550';\n\t\t\t\tmheight= '700';\n\n\t\t\t}\n\t\t\telse{\n\t\t\t\t\tmwidth = '650';\n\t\t\t\t\tmheight= '700';\n\t\t\t\t}\n\n \t\t\t $.post(strUrl, function(data){ \n\t\t $('#dialog-modal-page').html(data);\n\t\t $('#dialog-modal-page').dialog('open');\n\t\t }, \"html\");\n\n\t \t \t$(\"#dialog-modal-page\").dialog({\n\t\t resizable: false,\n\t\t autoOpen: false,\n\t\t modal: true,\n\t\t width:mwidth,\n\t\t height:mheight,\n\t\t \t\topen: function(){\n\t\t jQuery('.ui-widget-overlay').bind('click',function(){\n\t\t jQuery('#dialog-modal-page').dialog('close');\n\t\t })\n\t\t }\n\t\t }).css(\"font-size\",currFontSize );\n\t\t\n\t\t}\n\t};\n\treturn APP;\n})();\n \n;\r\nvar AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\r\n\r\nAE.customerService = AE.customerService || (function() {\r\n\t/* DEPENDENCIES: AE */\r\n\tvar APP = {\r\n\t\tinit: function() {\r\n\t\t\tAPP.props = {\r\n\t\t\t\t$customerServiceForm : $('#customerForm'),\r\n\t\t\t\t$serviceFormType : $('#customerForm').data('serviceformtype'),\r\n noEBSites: ['AUS', 'DAU', 'DNZ', 'NZL', 'DAP', 'GCR', 'RAU', 'RNZ', 'PEU'], // WEBAE3-6275 - hide excess refund and breakdown protection from certain customer service forms\r\n allowExcessBreakdown: true,\r\n\t\t\t\tsiteList : ['AEM','AOR','AUS','AUT','BEL','BFR','BRA','CHE','CHF','CHI','DAP','DAU','DEU','DNK','DNZ','ESL','ESP','EUR','FIN','FRA','GBR','GCR','HKG','HRV','IRL','ITA','NAL','NLD','NOR','NZL','PEU','POL','RAU','RNZ','RUS','SWE','TUR','TWN','ZAF','US','CA','CAE','KEM','URC','ERC','ATP'],\r\n formOnVoucher: $('body').is('#mybooking'),\r\n hasAltERFields: ['EU', 'GB', 'US', 'CA', 'AU', 'NZ'].includes($('#customerForm').data('serviceformorigin')) // Determines if site has special form fields for Excess Refund Inquiry Type\r\n\t\t\t};\r\n\r\n // WEBAE3-6275 - hide excess refund/breakdown protection fields if site matches\r\n for(var i=0; i<APP.props.noEBSites.length; i++) {\r\n if($('body').hasClass('site--'+APP.props.noEBSites[i])) {\r\n APP.props.allowExcessBreakdown = false;\r\n }\r\n }\r\n \r\n\t\t\t// Preload the max counter on the comments form field\r\n\t\t\t$('#charactersLeft span').text(APP.props.commentsMaxChars);\r\n\t\t\t\r\n\t\t\t// Comments text area character count\r\n\t\t\t$('#comments, .has-max-counter').on('keyup', function() {\r\n\t\t\t\tAPP.characterCounter($(this).parent());\r\n\t\t\t});\r\n \r\n\t\t\t// Fine Uploader\r\n\t\t\tif (AEdata.customerservice && AEdata.customerservice.formAction != 'submit') {\r\n \r\n\t\t\t\tif (AEdata.customerservice.showGenericUploadFields) {\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_upload');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_upload2');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_upload3');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_upload4');\r\n\t\t\t\t} else {\r\n // WEBAE3-5984 initialize fields based on customer service form location\r\n //WEBAE3-6275 don't initialize excess refund or breakdown upload fields for AU/NZ to prevent errors\r\n if(APP.props.formOnVoucher && APP.props.hasAltERFields) {\r\n APP.formFineUploaderInstance('file_accidentReport');\r\n APP.formFineUploaderInstance('file_policeReport');\r\n APP.formFineUploaderInstance('file_checkInOutReport');\r\n APP.formFineUploaderInstance('file_picDamageOne');\r\n APP.formFineUploaderInstance('file_picDamageTwo');\r\n APP.formFineUploaderInstance('file_picDamageThree');\r\n APP.formFineUploaderInstance('file_picDamageFour');\r\n APP.formFineUploaderInstance('file_ccStatementER');\r\n APP.formFineUploaderInstance('file_suppDocsER');\r\n APP.formFineUploaderInstance('file_rentalAgreementER');\r\n APP.formFineUploaderInstance('file_finalInvoiceER');\r\n } else if(APP.props.allowExcessBreakdown) {\r\n APP.formFineUploaderInstance('file_excessRefund');\r\n }\r\n \r\n APP.formFineUploaderInstance('file_picDamage');\r\n APP.formFineUploaderInstance('file_ccStatement');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_origVoucher');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_fuelReceit');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_finalInvoice');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_rentalAgreement');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_addCharges');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_addCharges_2');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_tireRepair');\r\n\t\t\t\t\tAPP.formFineUploaderInstance('file_suppDocs');\r\n if(APP.props.allowExcessBreakdown) {\r\n APP.formFineUploaderInstance('file_breakdownProtection');\r\n }\r\n\t\t\t\t\tif (AEdata.customerservice.showOtherUploadFields) {\r\n\t\t\t\t\t\tAPP.formFineUploaderInstance('file_upload');\r\n\t\t\t\t\t\tAPP.formFineUploaderInstance('file_upload2');\r\n\t\t\t\t\t\tAPP.formFineUploaderInstance('file_upload3');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// Use language management for the file upload buttons and background\r\n\t\t\t\t$('div.qq-upload-button div').text(AEdata.customerservice.pageText_chooseFile);\r\n\t\t\t\t$('div.qq-upload-remove-button').text(AEdata.customerservice.pageText_removeFile);\r\n\t\t\t\t$('div.qq-uploader-selector.qq-uploader').attr('qq-drop-area-text', AEdata.customerservice.pageText_dropFile);\r\n \r\n if(AEdata.customerservice.formAction == 'haserror' && APP.props.formOnVoucher) {\r\n APP.jumpToClaimForm();\r\n }\r\n\t\t\t} else if(AEdata.customerservice && AEdata.customerservice.formAction == 'submit' && APP.props.formOnVoucher) {\r\n APP.jumpToClaimForm();\r\n }\r\n\t\t\t\r\n//\t\t\tif (APP.props.$serviceFormType === 'EUR') {\r\n\t\t\t\t$('.fileUP label, .linkUP label').mouseenter(function() {\r\n\t\t\t\t\t$(this).siblings('.uploadHover').show();\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\t$('.fileUP label, .linkUP label').mouseleave(function() {\r\n\t\t\t\t\t$(this).siblings('.uploadHover').hide();\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tvar selLoad = $('#inquiry_type option:selected').attr('upload');\r\n\t\t\t\tAPP.setInquiryType(selLoad);\r\n\t\t\t\t\r\n\t\t\t\t// on change\r\n\t\t\t\t$('#inquiry_type').on('change', function() {\r\n\t\t\t\t\tvar selChange = $('#inquiry_type option:selected').attr('upload');\r\n\t\t\t\t\tAPP.setInquiryType(selChange);\r\n\t\t\t\t});\r\n//\t\t\t}\r\n\t\t\t\r\n\t\t\tif (APP.props.$serviceFormType === 'AUS') {\r\n\t\t\t\tAPP.changeCity('both');\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/* PAGE CLICK EVENTS */\r\n\t\t\t$('body').on('click', function (event) {\r\n\t\t\t\tvar $target = $(event.target);\r\n \r\n\t\t\t\tif ($target.hasClass('qq-upload-remove-button')) {\r\n\t\t\t\t\t// Remove the file image, file name, hidden input value, and change the button back to \"Choose File\"\r\n\t\t\t\t\tAPP.resetFileUploadInput( $target.closest('.file_upload').prev('.file_upload_filename') );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($target.is(\"#cs_form_submit\")) {\t\t\t\t\t\r\n\t\t\t\t\tif (_.contains( APP.props.siteList, AE.props.siteCode )) {\r\n\t\t\t\t\t\t//client side error handling for attachments\r\n\t\t\t\t\t\t$('#errorHead').hide();\r\n\t\t\t\t\t\t$('#suppdocsError').hide();\r\n\t\t\t\t\t\t$('#addchargesError').hide();\r\n\t\t\t\t\t\t$('#ccstatementError').hide();\r\n\t\t\t\t\t\t$('#originalvouchError').hide();\r\n\t\t\t\t\t\t$('#fuelrefundError').hide();\r\n\t\t\t\t\t\t$('#excessrefundError').hide();\r\n\t\t\t\t\t\t$('#breakdownprotectionError').hide();\r\n\t\t\t\t\t\t$('#tirereceiptError').hide();\r\n\t\t\t\t\t\t$('#addchargesError').hide();\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'DC' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'DC' && $('#file_suppDocs').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#suppdocsError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'BP' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'BP' && $('#file_suppDocs').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#suppdocsError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'BP' && $('#file_breakdownProtection').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#breakdownprotectionError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'TR' && $('#file_tireRepair').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#tirereceiptError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'ND' && $('#file_addCharges').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#addchargesError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'UC' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n if(!APP.props.hasAltERFields || !APP.props.formOnVoucher) {\r\n if ($('#inquiry_type').val() == 'ER' && $('#file_ccStatement').val() == \"\") {\r\n $target.addClass('off');\r\n $('#errorHead').show();\r\n $('#ccstatementError').show();\r\n $('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n }\r\n\r\n if ($('#inquiry_type').val() == 'ER' && $('#file_suppDocs').val() == \"\") {\r\n $target.addClass('off');\r\n $('#errorHead').show();\r\n $('#suppdocsError').show();\r\n $('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n }\r\n\r\n if ($('#inquiry_type').val() == 'ER' && $('#file_excessRefund').val() == \"\" && APP.props.allowExcessBreakdown) {\r\n $target.addClass('off');\r\n $('#errorHead').show();\r\n $('#excessrefundError').show();\r\n $('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n }\r\n } else {\r\n if ($('#inquiry_type').val() == 'ER') {\r\n var ererror = false;\r\n if($('#police_report_yes').is(':checked') && $('#file_policeReport').val() == \"\") {\r\n ererror = true;\r\n $('#policeReportError').show();\r\n } else {\r\n\t\t\t\t\t\t\t\t\t$('#policeReportError').hide();\r\n\t\t\t\t\t\t\t\t}\r\n \r\n if(!$('#customer_consent').is(':checked')) {\r\n ererror = true;\r\n $('#customer_consent').addClass('haserror');\r\n $('#consentError').show();\r\n } else {\r\n\t\t\t\t\t\t\t\t\t$('#customer_consent').removeClass('haserror');\r\n $('#consentError').hide();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n if(ererror) {\r\n $target.addClass('off');\r\n $('#errorHead').show();\r\n $('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n } else {\r\n $('#customer_consent').removeClass('haserror');\r\n $('#policeReportError, #consentError').hide();\r\n }\r\n } else {\r\n $('#policeReportError, #consentError').hide();\r\n }\r\n }\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'BD' && $('#file_addCharges').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#addchargesError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n \r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'BD' && $('#file_suppDocs').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#suppdocsError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'DU' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'FR' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'FR' && $('#file_fuelReceit').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#fuelrefundError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'CI' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'CB' && $('#file_origVoucher').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#originalvouchError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($('#inquiry_type').val() == 'CB' && $('#file_ccStatement').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#ccstatementError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\tif (typeof $('.required .qq-upload-file').html() == 'undefined') {\r\n\t\t\t\t\t\t\t// prevent form submit if any required files are missing\r\n\t\t\t\t\t\t\t$target.addClass('off');\r\n\t\t\t\t\t\t\t$('#errorHead').show();\r\n\t\t\t\t\t\t\t$('#missingfileError').show();\r\n\t\t\t\t\t\t\t$('#cs_headline')[0].scrollIntoView({behavior:'smooth',block: 'start'});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\tif (! ( $target.hasClass( 'off' )) ) {\r\n\t\t\t\t\t\t// Disable Submit button\t\r\n\t\t\t\t\t\t$target.prop( 'disabled', true );\r\n\r\n\t\t\t\t\t\t// Submit the form\r\n\t\t\t\t\t\tAPP.props.$customerServiceForm.submit();\t\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( _.contains( APP.props.siteList, AE.props.siteCode )) {\r\n\t\t\t\t\t\t//if ($('#inquiry_type').val() == 'BD' && $('#file_addCharges').val() == \"\") {\r\n\t\t\t\t\t\t\t$target.removeClass( 'off' );\r\n\t\t\t\t\t\t\tsetTimeout ( () => { $target.prop( 'disabled', false );} ,5000 );\r\n\t\t\t\t\t\t//}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$( \"#cs_form_submit\" ).prop( 'disabled', false );\r\n\t\t\t\t}\r\n\t\t\t});\r\n \r\n /* REFUNDABLE EXCESS SUBSECTION SHOW/HIDE RADIO EVENTS */\r\n $('body').on('change', '.has-subsection input[type=\"radio\"]', function()\r\n {\r\n APP.toggleRESubsection($(this).attr('name'));\r\n });\r\n\t\t},\r\n jumpToClaimForm: function() {\r\n // WEBAE3-5968 Jump to and open customerservice form on claim submit or error, but only on voucher lookup page\r\n $('#btSubmitClaim').addClass('open').removeClass('closed');\r\n $('#toggleeClaim').removeClass('visuallyhidden');\r\n var st = $('#scroll-content').scrollTop() - 20;\r\n $('#scroll-content').scrollTop($('#bookingSubmitClaim').offset().top + st);\r\n },\r\n\t\tresetFileUploadInput: function(fileUploadInput) {\r\n\t\t\tvar formfield = fileUploadInput.attr('id'); //get the name of the hidden input form field\r\n\t\t\t$('input#'+formfield).val(\"\"); //remove the filename from the hidden form input\r\n\t\t\t$('#upload_block-'+formfield+' .qq-upload-remove-button').hide(); //remove the \"Remove\" button\r\n\t\t\t$('#upload_block-'+formfield+' .qq-upload-button').show(); //show the \"Upload\" button\r\n\t\t\tfileUploadInput.next('.file_upload').find('li').remove(); //remove the file info\r\n\t\t\tif (typeof AEdata.customerservice !== 'undefined') {\r\n\t\t\t\tfileUploadInput.next('.file_upload').find('.qq-uploader-selector').attr('qq-drop-area-text', AEdata.customerservice.pageText_dropFile); //add back in the text to drop a file\r\n\t\t\t}\r\n\t\t\tif (typeof AEdata.beatrate !== 'undefined') {\r\n\t\t\t\tfileUploadInput.next('.file_upload').find('.qq-uploader-selector').attr('qq-drop-area-text', AEdata.beatrate.pageText_dropFile); //add back in the text to drop a file\r\n\t\t\t}\t\r\n\t\t},\r\n\t\tsetDOCode: function(thispucode) {\r\n\t\t\tvar element = document.getElementById('docode');\r\n\t\t\t\telement.value = thispucode;\r\n\t\t},\r\n\t\tcharacterCounter: function($el) {\r\n\t\t\tvar len = $el.find('textarea').val().length;\r\n var commentsMaxChars = $el.find('textarea').attr('maxlength') ? parseInt($el.find('textarea').attr('maxlength')) : 500;\r\n\t\t\tvar ch = commentsMaxChars - len;\r\n\t\t\tif (len > commentsMaxChars) {\r\n\t\t\t\t$el.find('.charactersLeft span').text('0');\r\n\t\t\t\t$el.find('.charactersLeft').addClass('color9');\r\n\t\t\t\t$el.removeClass('ui-state-valid').addClass('ui-state-invalid');\r\n\t\t\t} else {\r\n\t\t\t\t$el.find('.charactersLeft span').text(ch);\r\n\t\t\t\t$el.find('.charactersLeft').removeClass('color9');\r\n\t\t\t\t$el.removeClass('ui-state-invalid');\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetInquiryType: function(selType) {\r\n // WEBAE3-6107 display message for UK Refundable Excess inquiry type instead of form\r\n $('.fileUP, .linkUP, .csfield').addClass('visuallyhidden'); //start by 'visually' hiding all fields\r\n if(selType == 'ER' && AE.props.chaosSystem == 'GB') {\r\n $('#ERUKMSG').show();\r\n $('.inquiry-comments, .sendrequest-btn').hide();\r\n } else {\r\n $('#ERUKMSG').hide();\r\n $('.inquiry-comments, .sendrequest-btn').show();\r\n $('.fileUP').removeClass('required'); //remove the required class from the parent div of the file upload blocks\r\n $('.csfield [required]').removeAttr('required'); //remove the required attribute from all form field elements\r\n if(selType != 'ER' || APP.props.hasAltERFields) {\r\n $('.fileUP.'+selType+', .linkUP.'+selType+', .csfield.'+selType).removeClass('visuallyhidden'); //show only the file upload blocks and form fields associated with the chosen \"inquiry type\"\r\n $('.fileUP.'+selType).addClass('required'); //add the required class to all 'chosen' file upload blocks\r\n $('.csfield.'+selType+' .required input, .csfield.'+selType+' .required textarea, .csfield.'+selType+' .required select').prop('required', true); //add required attribute to all required 'chosen' form fields\r\n $('.fileUP.'+selType+'.notreq').removeClass('required'); //remove the required requirement from those blocks and fields with the class 'notreq'\r\n }\r\n \r\n\t\t\t\t// WEBAE3-6519 - When the user selects Refundable Excess Rate, the form cannot be completed because it is expecting 2 file uploads that are not requested.\r\n\t\t\t\tif(selType == 'ER' && (AE.props.chaosSystem != 'AU' || AE.props.chaosSystem != 'NZ')) {\r\n $('.fileUP.'+selType+', .linkUP.'+selType+', .csfield.'+selType).removeClass('visuallyhidden'); //show only the file upload blocks and form fields associated with the chosen \"inquiry type\"\r\n $('.fileUP.'+selType).addClass('required'); //add the required class to all 'chosen' file upload blocks\r\n $('.csfield.'+selType+' .required input, .csfield.'+selType+' .required textarea, .csfield.'+selType+' .required select').prop('required', true); //add required attribute to all required 'chosen' form fields\r\n $('.fileUP.'+selType+'.notreq').removeClass('required'); //remove the required requirement from those blocks and fields with the class 'notreq'\r\n }\r\n\t\t\t\t\r\n if(selType == 'ER' && APP.props.hasAltERFields) {\r\n if(AE.props.chaosSystem != 'GB') {\r\n $('.YES_ER').show();\r\n $('.NO_ER').hide();\r\n } else {\r\n $('.YES_ER').hide();\r\n $('.NO_ER').hide();\r\n }\r\n } else {\r\n $('.YES_ER').hide();\r\n $('.NO_ER').show();\r\n }\r\n }\r\n \r\n\t\t\t// Bank Account form field\r\n\t\t\tif (window.location.pathname == '/customerservice/') {\r\n\t\t\t\t$('.inquiry_type_option').hide();\r\n\t\t\t\t// Check to see if the bank account class exists before trying to use it\r\n\t\t\t\tif ($('.inquiry_type_option .bank_number').length) {\r\n\t\t\t\t\tvar inquiryTypeOptionsAll = document.querySelector('.inquiry_type_option .bank_number');\r\n\t\t\t\t\tinquiryTypeOptionsAll.required = 0; //remove the required property\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (selType !== undefined) {\r\n\t\t\t\t\t\t$('.inquiry_type_option.'+selType).show();\r\n\t\t\t\t\t\tvar inquiryTypeOptionSpecific = document.querySelector('.inquiry_type_option.'+selType+' .bank_number');\r\n\t\t\t\t\t\tif (inquiryTypeOptionSpecific !== null) {\r\n\t\t\t\t\t\t\tinquiryTypeOptionSpecific.required = 1; //adds the required property\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n toggleRESubsection: function(subsection) {\r\n if($('.has-subsection [name=\"'+subsection+'\"]:checked').val() == 'YES') {\r\n $('.form-subsection[data-parent=\"'+subsection+'\"]').css('display', 'none').removeClass('visuallyhidden').slideDown();\r\n \r\n if(subsection == 'police_report') {\r\n $('#noPoliceReport').hide();\r\n }\r\n } else {\r\n $('.form-subsection[data-parent=\"'+subsection+'\"]').slideUp(function() {\r\n $(this).addClass('visuallyhidden');\r\n });\r\n \r\n if(subsection == 'police_report') {\r\n $('#noPoliceReport').show();\r\n }\r\n }\r\n },\r\n\t\tchangeCity: function(menuType) {\r\n\t\t\t/*\tNEED TO REWORK FUNCTION VARS\r\n\t\t\tvar site = '#request.objSite.getCode()#';\r\n\t\t\tvar lang = '#request.objLang.getLanguageCode()#';\r\n\t\t\tvar pucode = $('##pucode').val();\r\n\t\t\tvar docode = $('##docode').val();\r\n\t\t\tvar pucity = '#pucity#';\r\n\t\t\tvar docity = '#docity#';\r\n\t\t\tvar resetpucity = 'true';\r\n\t\t\tvar resetdocity = 'true';\r\n\t\t\tvar puDiv = $('.pucity');\r\n\t\t\tvar doDiv = $('.docity');\r\n\t\t\t\r\n\t\t\tif (menuType == 'both'|menuType == 'pu') {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl:\"/ajaxsupport/car-citylist_cf.cfm\",\r\n\t\t\t\t\tdataType: \"html\",\r\n\t\t\t\t\tcache:true,\r\n\t\t\t\t\tdata:{\r\n\t\t\t\t\t\tsite: site,\r\n\t\t\t\t\t\tlang: lang,\r\n\t\t\t\t\t\tpucode: pucode,\r\n\t\t\t\t\t\tpucity: pucity,\r\n\t\t\t\t\t\tresetpucity: resetpucity,\r\n\t\t\t\t\t\tlistof: 'pu'\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: function(){\r\n\t\t\t\t\t\tpuDiv.html('Sorry, there has been an error.');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbeforeSend: function(){\r\n\t\t\t\t\t\tpuDiv.html('<img src=\"/img/ui/loading.gif\">');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function(data){\r\n\t\t\t\t\t\tpuDiv.html(data);\r\n\t\t\t\t\t\t //if ($('.rdRepl input').length)\r\n\t\t\t\t\t\t$('.pucity select').addClass(\"fullDD\"); //adds class to only visible autosuggest list\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (menuType == 'both'|menuType == 'do') {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl:\"/ajaxsupport/car-citylist_cf.cfm\",\r\n\t\t\t\t\tdataType: \"html\",\r\n\t\t\t\t\tcache:true,\r\n\t\t\t\t\tdata:{\r\n\t\t\t\t\t\tsite: site,\r\n\t\t\t\t\t\tlang: lang,\r\n\t\t\t\t\t\tpucode: pucode,\r\n\t\t\t\t\t\tdocode: docode,\r\n\t\t\t\t\t\tdocity: docity,\r\n\t\t\t\t\t\tresetdocity: resetdocity,\r\n\t\t\t\t\t\tlistof: 'do'\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: function(){\r\n\t\t\t\t\t\tdoDiv.html('Sorry, there has been an error.');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbeforeSend: function(){\r\n\t\t\t\t\t\tdoDiv.html('<img src=\"/img/ui/loading.gif\">');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function(data){\r\n\t\t\t\t\t\tdoDiv.html(data);\r\n\t\t\t\t\t\t$('.docity select').addClass(\"fullDD\"); //adds class to only visible autosuggest list\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t},\r\n\t\tformFineUploaderInstance: function(formfield) {\r\n\t\t\tvar fineUploaderFolder = \"/plugins/ae3/modules/customerservice/fine_uploader\";\r\n\t\t\tvar galleryUploader = new qq.FineUploader({\r\n\t\t\t\t//debug: true,\r\n\t\t\t\tmultiple: false,\r\n\t\t\t\telement: document.getElementById(\"upload_block-\"+formfield),\r\n\t\t\t\ttemplate: 'qq-simple-thumbnails-template',\r\n\t\t\t\trequest: {\r\n\t\t\t\t\tendpoint: '/plugins/ae3/modules/customerservice/image-uploader.cfc?method=uploadSingleFile'\r\n\t\t\t\t},\r\n\t\t\t\tretry: {\r\n\t\t\t\t\tenableAuto: true\r\n\t\t\t\t},\r\n\t\t\t\tthumbnails: {\r\n\t\t\t\t\tplaceholders: {\r\n\t\t\t\t\t\t//waitingPath: fineUploaderFolder+'/placeholders/waiting-generic.png',\r\n\t\t\t\t\t\twaitingPath: fineUploaderFolder+'/processing.gif',\r\n\t\t\t\t\t\tnotAvailablePath: fineUploaderFolder+'/placeholders/not_available-generic.png'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tvalidation: {\r\n\t\t\t\t\titemLimit: 1,\r\n\t\t\t\t\tsizeLimit: AEdata.customerservice.maxSingleFileSize,\r\n\t\t\t\t\tallowedExtensions: AEdata.customerservice.allowedFileExtensions\r\n\t\t\t\t},\r\n\t\t\t\tmessages: {\r\n\t\t\t\t\ttypeError: AEdata.customerservice.errorMessageFileType,\r\n\t\t\t\t\tsizeError: AEdata.customerservice.errorMessageFileSize\r\n\t\t\t\t},\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\tonUpload: function(id, name) {\r\n\t\t\t\t\t\t$('#cs_form_submit').addClass('off');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonComplete: function(id, name, responseJSON) {\r\n\t\t\t\t\t\tif (responseJSON.success) {\r\n\t\t\t\t\t\t\t$('input#'+formfield).val(responseJSON.server_filename);\r\n\t\t\t\t\t\t\t$('#upload_block-'+formfield+' .qq-upload-button').hide();\r\n\t\t\t\t\t\t\t$('#upload_block-'+formfield+' .qq-upload-remove-button').show();\r\n\t\t\t\t\t\t\t$('#cs_form_submit').removeClass('off');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//onError: function(id, name, errorReason) {\r\n\t\t\t\t\t//},\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\t\r\n\treturn APP;\r\n})();\r\n\r\nAE.customerService.init();\r\n\n;\r\nvar AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\r\n\r\n/*\r\nThe AE.forms object will be the returned result of a self-invoked function. This allows us to expose methods\r\nfor use by other modules while protecting some variables in a closure. If the AE.legacy object is already\r\ndefined then it's not altered. This prevents us from running the entire function each time one of its\r\ninternal methods are called.\r\n*/\r\nAE.forms = AE.forms || (function () {\r\n /*\r\n DEPENDENCIES: AE\r\n */\r\n var APP = {\r\n init: function () {\r\n // Class identifies forms the need form validation // Whole container click event // age info icon on search form // Group of Checkboxes // Each of Group Checkboxes // Any Checkbox on a form to validate on click // Check if optional payment if CC is filled in require other CC fields // Check if payment is optional // Flag whether checkout form inputs passed AJAX validation\r\n APP.props = {\r\n $autoForms: $(\".trg__form--AutoPost\"),\r\n $validateForm: $(\"form.validate\"),\r\n $moreInfoBtn: $(\".info-icon\"),\r\n //cannot seem to find syntax for pulling this from search props in search.js\r\n $ageMin: 25, // The minimum age to rent without additional restrictions or fees\r\n $ageMax: 69, // The maximum age to rent without additional restrictions or fees\r\n $ageInfoBtn: $(\".age-info-icon\"),\r\n $ageInfoText: $(\".age-info-text\"),\r\n $modalCloseBtn: $(\".ui-icon-close-modal\").parent(\".ui-dialog-titlebar-close\"),\r\n $groupCheckboxes: $(\"form #carcategory\"),\r\n $groupCheckinputs: $('form #carcategory input[type=\"checkbox\"]'),\r\n $checkboxes: $('form input[type=\"checkbox\"]'),\r\n $paymentRequire: $(\"#ae-checkout #cardnumber\"),\r\n $debitRequire: $(\"#ae-checkout #ddaccount\"),\r\n $payOptional: $(\"#ae-checkout .payment_form\").attr(\"pay_optional\"),\r\n $formLabels: $(\"form label\"),\r\n checkoutPassedAjax: true,\r\n loginInputValid: true,\r\n $isInMemberAccount:window.location.pathname.split('/')[1] == 'member-accounts'\r\n };\r\n\r\n // Validate forms with validate class\r\n APP.applyGuardian(APP.props.$validateForm);\r\n\r\n AE.ui.addBodyClickTask({\r\n func: APP.onBodyClick\r\n });\r\n\r\n AE.ui.addBodyChangeTask({\r\n func: APP.onBodyChange\r\n });\r\n\r\n // Blanket Ban on labels in info tips focusing their associated input\r\n APP.props.$formLabels.on(\"click\", function (event) {\r\n if ($(this).hasClass(\"more-info-tip\")) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n // Initialize fineUploader JS on beatrate file input - WEBAE3-4369\r\n if($('input#file_compquote').length) {\r\n APP.formFineUploaderInstance('file_compquote', 'beatrate');\r\n }\r\n\r\n //validate TBI promo code if provided to be analyzed on submit - WEBAE3-4083\r\n $( \"#tbiPromo\" ).blur(function() {\r\n if ($( \"#tbiPromo\" ).length !=0) {\r\n if ($('input[name=\"tbiPromo\"]').val().length != 0) {\r\n jsonToCheck = {\r\n \"pcode\": $('input[name=\"tbiPromo\"]').val()\r\n };\r\n $(\"#submitForm\").attr(\"disabled\", true);\r\n //$(\"#submitForm\").css(\"opacity\", \"0.5\");\r\n $.ajax({\r\n url: \"/plugins/ae3/lib/BookingAjax.cfc?method=validateTBIPromo\",\r\n type: 'GET',\r\n dataType: \"json\",\r\n data: jsonToCheck\r\n })\r\n .done(function(data) {\r\n isValidTBIPromo = data;\r\n $(\"#submitForm\").attr(\"disabled\", false);\r\n //$(\"#submitForm\").css(\"opacity\", \"1.0\");\r\n if (data === false) {\r\n $('input[name=\"tbiPromo\"]')\r\n .parent()\r\n .removeClass(\"ui-state-valid\")\r\n .addClass(\"ui-state-invalid\"); \r\n $(\"#tbi_promo_error\").show();\r\n } else {\r\n $(\"#tbi_promo_error\").hide();\r\n };\r\n })\r\n .fail(function() {\r\n $(\"#submitForm\").attr(\"disabled\", false);\r\n //$(\"#submitForm\").css(\"opacity\", \"1.0\");\r\n });\r\n\r\n } else {\r\n $(\"#tbi_promo_error\").hide();\r\n }\r\n }\r\n });\r\n\r\n // Info Text Pop Window Placement & hide/show\r\n APP.props.$moreInfoBtn.on(\"click\", function (event) {\r\n event.preventDefault(); // So form labels with info buttons do not validate on click/blur of label\r\n\r\n var $targetElement = $(event.target).hasClass(\"fa\") ? $(event.target) : $(event.target).children(\"i\");\r\n AE.ui.dialog.launch({\r\n type: \"infoTip\",\r\n pos: {\r\n my: \"left bottom\",\r\n at: \"right top\",\r\n of: $targetElement\r\n },\r\n selector: $targetElement.parent().siblings(\".info-text\")\r\n });\r\n });\r\n\r\n // Optional Payment when users adds Credit Card Require other payment fields\r\n if (AEdata.hasOwnProperty('checkout') && AEdata.checkout.hasOwnProperty('rq') && AEdata.checkout.rq === false) {\r\n APP.props.$paymentRequire.on(\"change\", function (event) {\r\n if (APP.props.$paymentRequire.val() !== \"\") {\r\n $(\"#cardname,#cardnumber,#cvc,#address1,#zip,#cityb\")\r\n .prop(\"required\", \"required\")\r\n .parent()\r\n .addClass(\"required\")\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth,#expyear\")\r\n .prop(\"required\", \"required\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth\")\r\n .parent()\r\n .parent()\r\n .addClass(\"required\");\r\n $(\"#country,#state\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\")\r\n .parent()\r\n .addClass(\"required\");\r\n } else {\r\n $(\"#cardname,#cardnumber,#cvc,#address1,#zip,#cityb\")\r\n .prop(\"required\", \"\")\r\n .parent()\r\n .removeClass(\"required\")\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth,#expyear\")\r\n .prop(\"required\", \"\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth\")\r\n .parent()\r\n .parent()\r\n .removeClass(\"required\");\r\n $(\"#country,#state\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\")\r\n .parent()\r\n .removeClass(\"required\");\r\n }\r\n });\r\n\t\t\t\t\r\n APP.props.$debitRequire.on(\"change\", function (event) {\r\n if (APP.props.$debitRequire.val() !== \"\") {\r\n $(\"#ddaccount,#ddname,#ddbank,#address1,#zip,#cityb\")\r\n .prop(\"required\", \"required\")\r\n .parent()\r\n .addClass(\"required\")\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth,#expyear\")\r\n .prop(\"required\", \"required\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth\")\r\n .parent()\r\n .parent()\r\n .addClass(\"required\");\r\n $(\"#country,#state\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\")\r\n .parent()\r\n .addClass(\"required\");\r\n } else {\r\n $(\"#ddaccount,#ddname,#ddbank,#address1,#zip,#cityb\")\r\n .prop(\"required\", \"\")\r\n .parent()\r\n .removeClass(\"required\")\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth,#expyear\")\r\n .prop(\"required\", \"\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n $(\"#expmonth\")\r\n .parent()\r\n .parent()\r\n .removeClass(\"required\");\r\n $(\"#country,#state\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\")\r\n .parent()\r\n .removeClass(\"required\");\r\n }\r\n });\r\n \r\n }\r\n\r\n // checkboxes validate on selection, check correct form (may be multiple forms on page)\r\n APP.props.$checkboxes.on(\"click\", function (event) {\r\n var theForm = $(event.target).closest(\"form\")[0];\r\n // prevent guardian validation on the Search form\r\n if (theForm.id !== \"ae-search\") {\r\n $(theForm)\r\n .guardian()\r\n .validateCheckbox($(event.target));\r\n }\r\n });\r\n\r\n // Define Spinning Gear Markup for Submit Buttons\r\n if(AE.props.siteCode === 'FCR') {\r\n APP.props.$spinGear = $(document.createDocumentFragment()).append('<div class=\"ui--loading-results indeterminate-circle-sm\" aria-hidden=\"true\"><svg version=\"1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\"><path id=\"indeterminate\" d=\"M12 3.25A8.75 8.75 0 1 1 3.25 12\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"square\" stroke=\"#ffffff\"/></svg></div>');\r\n } else {\r\n APP.props.$spinGear = $(document.createDocumentFragment()).append($(document.createElement(\"i\"))\r\n .addClass(\"ui--loading-results fa fa-cog fa-spin fa-2x fa-fw\")\r\n .attr(\"aria-hidden\", true));\r\n }\r\n \r\n /* Car class \"other\" form field */\r\n $('#br_carclass').change(function () {\r\n if ($('#br_carclass').val() === \"Other\") {\r\n $(\"#carother\")\r\n .prop(\"required\", \"required\")\r\n .parent()\r\n .addClass(\"required\")\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n } else {\r\n $(\"#carother\")\r\n .prop(\"required\", \"\")\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\")\r\n .parent()\r\n .removeClass(\"required\");\r\n }\r\n });\r\n\r\n\t\t\t/*\r\n\t\t\t$('#dp_country').change(function() {\r\n\t\t\t\tAPP.props.$paymentRequire.on(\"change\", function(event) {\r\n\t\t\t\t\tif (APP.props.$paymentRequire.val() !== \"\") {\r\n\t\t\t\t\t\t$(\"#cardname,#cardnumber,#cvc,#address1,#zip,#cityb\")\r\n\t\t\t\t\t\t.prop(\"required\", \"required\")\r\n\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t.addClass(\"required\")\r\n\t\t\t\t\t\t.removeClass(\"ui-state-valid ui-state-invalid\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(\"#country,#state\")\r\n\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t.removeClass(\"ui-state-valid ui-state-invalid\")\r\n\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t.removeClass(\"required\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.grid.postalCode == hide\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t\r\n\t\t\t$(\"#gpsTNC--Y\").on(\"click\", function () {\r\n\t\t\t\t$(\"#gpsreqbtn\").removeClass(\"visuallyhidden\");\r\n\t\t\t\t$(\"#gpsTNCchk\")\r\n\t\t\t\t\t.removeClass(\"fa-square\")\r\n\t\t\t\t\t.addClass(\"fa-check-square\");\r\n\t\t\t\t$(\"#rental_termsDialog_Gps\").dialog(\"close\");\r\n\t\t\t});\r\n\t\t},\r\n\t\t// Apply client-side form field validation (datePicker validation can be found in AE.ui.js)\r\n\t\tapplyGuardian: function ($forms) {\r\n\t\t\t// Validation Plugin Function Call\r\n\t\t\t$forms.each(function () {\r\n\t\t\t\tvar form = this;\r\n\t\t\t\t$(form).guardian({\r\n\t\t\t\t\t// Extend the default Guardian data patterns\r\n\t\t\t\t\t// https://www.petefreitag.com/cheatsheets/regex/\r\n\t\t\t\t\textend: function () {\r\n // Alpha numeric\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\talnum: /^[a-zA-Z0-9]+$/\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// Alpha numeric with spaces and dashes\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\talnumsp: /^[a-zA-Z0-9\\-\\s]+$/\r\n\t\t\t\t\t\t});\r\n\r\n // Numeric with spaces - WEBAE3-6391 - Skylink: CC number field should accept spaces\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tnumsp: /^[0-9\\s]+$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Alpha numeric with spaces, dashes, and dots (periods)\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\talnumspdot: /^[a-zA-Z0-9\\.\\-\\s]+$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Alpha numeric with spaces and special characters\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\talnumspecial: /^[a-zA-Z0-9\\s\\_\\&()`.+,\\/'-]*$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Alpha with spaces and hyphens\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\talphasp: /^[a-z_'& \\-]+$/i\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Anything goes (BUT, there needs to be at least one charecter)\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tanything: /.+/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Anything goes (BUT, there needs to be at least one charecter that isn't < > = & \")\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tanythingcheckout: /^(?!.*[=\"<>&]).*$/\r\n\t\t\t\t\t\t});\r\n\r\n // email updated for WEBAE3-1204 - broader regex with case insensitivity\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\temail: /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Hex code for color picker\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\thexcolor: /#?[a-fA-F0-9]{3,6}/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// There needs to be a leading zero in front of the integer\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tlead0num: /^[0-9]+$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Anything but blank\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tnotblank: /^(?!\\s*$).+/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//WEBAE3-4934 added < > = & \" characters to notblank for checkout page only\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tnotblankcheckout: /^(?!\\s*$)([^=\"<>&]+)$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// European and US phone combinations\r\n\t\t\t\t\t\tthis.addPattern({\r\n wphone: /^(?!\\s)(?:\\+\\d{1,3}|0\\d{1,3}|00\\d{1,2})?(?:\\s?\\(\\d+\\))?(?:[-\\/\\s.]|\\d)+$/\r\n });\r\n \r\n // phone number with minimum 8 digits\r\n\t\t\t\t\t\tthis.addPattern({\r\n aunzphone: /(?:\\+?\\)?\\(?\\s?\\-?\\d){8,}/\r\n //aunzphone: /^(?!\\s)(?:\\+?)(?:\\d){8,}$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t/// URL\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\t// http://fubar.com, http://www.fubar.com, https://fubar.com, https://www.fubar.com, fubar.com, and www.fubar.com\r\n\t\t\t\t\t\t\turl: /^(http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+\\s*$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t/********************************/\r\n\t\t\t\t\t\t/* AUTOEUROPE SPECIFIC PATTERNS */\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE affiliate member's passwords can be anything as long as it's between 8 and 16 characters\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tae_affiliatepassword: /^.{8,16}/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE generic currency is a 2-decimal floating point number without a currency symbol\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tae_currency: /^(\\d+)+(,?\\d{3})*(\\.\\d{2})?$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE member's age\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tae_memberage: /^(1[89]|[2-9]{1}\\d{1})$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE member's name\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\t// a-z, A-Z, 0-9, underscore, must be between 3 and 15 characters, spaces are not allowed\r\n\t\t\t\t\t\t\tae_membername: /^[\\w]{3,15}$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE account passwords (both members and affiliates) need to adhere to the following criterea:\r\n\t\t\t\t\t\t// * between 8 characters and 16 characters long\r\n\t\t\t\t\t\t// * contain at least one lowercased letter\r\n\t\t\t\t\t\t// * contain at least one uppercased letter\r\n\t\t\t\t\t\t// * contain at least one number\r\n\t\t\t\t\t\t// * contain at least one special character\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tae_memberpassword: /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^0-9a-zA-Z]).{8,16}$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE numeric date pattern in forms\r\n\t\t\t\t\t\tvar sitesWithReverseDatePattern = [\"AUS\", \"NZL\"];\r\n\t\t\t\t\t\tif (sitesWithReverseDatePattern.indexOf(oSite.siteCode) != -1) {\r\n\t\t\t\t\t\t\t// date pattern = dd/mm/yyyy OR dd-mm-yyyy OR dd.mm.yyyy OR ddmmyyyy\r\n\t\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\t\tae_numericdate: /^(0?[1-9]{1}|(1|2)[0-9]|3(0|1))(-|\\s|\\/|\\.)?((0?[1-9]{1})|(10|11|12))(-|\\s|\\/|\\.|,\\s)?(19|20)?\\d\\d$/i\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// date pattern = mm/dd/yyyy OR mm-dd-yyyy OR mm.dd.yyyy OR mmddyyyy\r\n\t\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\t\tae_numericdate: /^((0?[1-9]{1})|(10|11|12))(-|\\s|\\/|\\.)?(0?[1-9]|(1|2)[0-9]|3(0|1))(-|\\s|\\/|\\.|,\\s)?(19|20)?\\d\\d$/i\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE postal code pattern\r\n\t\t\t\t\t\t// minimum of 4 numbers only (for all sites per WEBAE3-1156 : jOlivier 2018-04-04) & WEBAE3-1324\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tae_postalcode: /^[a-zA-Z0-9\\-\\s]{4,10}\\s*$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// AE voucher number\r\n\t\t\t\t\t\tthis.addPattern({\r\n\t\t\t\t\t\t\tae_voucher: /^([a-zA-Z]{2,3})?(\\d+)(\\-.*)?\\s*$/\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n before: function (el) {\r\n if (this.$groups.carcategory !== undefined) {\r\n var addGroup = {};\r\n addGroup[\"carcategory\"] = false;\r\n _.extend(this.$inputs, addGroup);\r\n }\r\n\r\n /* WEBAE3-4052 \r\n More than one checkout button option means the billing info\r\n may or may not be required. Determine if it is and adjust\r\n form billing inputs required status as needed\r\n */\r\n if(typeof checkoutSubmitBtn !== 'undefined' && checkoutSubmitBtn.hasOwnProperty('billingrequired')) {\r\n if(checkoutSubmitBtn.billingrequired !== 'default') {\r\n var aBillingInputs = ['zip','country','cityb','address1','state'];\r\n APP.setBillingInputRequiredStatus(aBillingInputs,checkoutSubmitBtn.billingrequired);\r\n }\r\n }\r\n },\r\n //Override Guardian's match validation\r\n validateMatch: function (el) {// oro?\r\n var name = el.attr('name'),\r\n val = el.val(),\r\n match = $('#' + el.data('match-input')),\r\n noCase = ($('#' + el.data('match-nocase')))? true : false;\r\n this.$inputs[name] = true; \r\n\r\n if (el.attr('required')) { \r\n var isMatch = (noCase)? val === match.val():val.toUpperCase() === match.val().toUpperCase();\r\n if (!isMatch || val == '') {\r\n this.$inputs[name] = false;\r\n } \r\n }\r\n this.validationHandler(el);\r\n\r\n return this.$inputs[name];\r\n },\r\n \r\n // Override Guardian's select validation\r\n validateSelect: function (el) {\r\n var selectValid = \"ui-state-valid\"; // Default set to valid\r\n var addInput = {}; // create object\r\n addInput[el[0].name] = true; // Default set to true passes validation\r\n // set check if select has a value set\r\n if ($(el).attr(\"required\")) {\r\n if ($(el).val() === \"\") {\r\n selectValid = \"ui-state-invalid\";\r\n addInput[el[0].name] = false;\r\n } else {\r\n selectValid = \"ui-state-valid\";\r\n }\r\n }\r\n // don't set valid on hidden state options lists or if state is blank\r\n var state = el[0];\r\n if ($(state).hasClass(\"state--select\")) {\r\n if ($(el).hasClass(\"state_dd_hide\")) {\r\n selectValid = \"\";\r\n if (this.$inputs.state !== undefined) {\r\n delete this.$inputs.state;\r\n }\r\n delete addInput[el[0].name];\r\n }\r\n if ($(el).val() === \"\" && !$(el).hasClass(\"state_dd_hide\")) {\r\n // Only move forward with state dropdown required if the container around the markup (hence parent().parent()) has the \"required\" class or the dropdown itself has the required HTML property\r\n if ($(el)\r\n .parent()\r\n .parent()\r\n .hasClass(\"required\") || $(el).prop(\"required\")) {\r\n //WEBAE3-4036, WEBAE3-4052 make sure ui-state-valid is removed in cases where 2 buttons come into play\r\n $(el)\r\n .parent()\r\n .removeClass('ui-state-valid');\r\n selectValid = \"ui-state-invalid\";\r\n addInput[el[0].name] = false;\r\n }\r\n }\r\n }\r\n\r\n $(el)\r\n .parent()\r\n .addClass(selectValid); // Set select validation status\r\n _.extend(this.$inputs, addInput); // push inputs valid status to guardian object\r\n },\r\n // Override Guardian's checkbox validation\r\n validateCheckbox: function (el) {\r\n // Check that terms has been checked\r\n if ($(el).hasClass(\"terms_conditions\")) {\r\n var addInput = {}; // create object\r\n addInput[el[0].name] = true; // Default set to true passes validation\r\n if ($(el).is(\":checked\")) {\r\n $(el)\r\n .parent()\r\n .removeClass(\"ui-state-invalid\");\r\n } else {\r\n $(el)\r\n .parent()\r\n .addClass(\"ui-state-invalid\");\r\n addInput[el[0].name] = false;\r\n }\r\n _.extend(this.$inputs, addInput); // push inputs valid status to guardian object\r\n }\r\n if ($(el).data(\"group\") === \"carcategory\" && $(el).data(\"group\") !== undefined) {\r\n $(APP.props.$groupCheckboxes)\r\n .removeClass(\"ui-state-invalid\")\r\n .removeClass(\"ui-state-valid\");\r\n\r\n var checkedCount = 0;\r\n APP.props.$groupCheckinputs.each(function () {\r\n if ($(this).is(\":checked\")) {\r\n checkedCount = checkedCount + 1;\r\n }\r\n });\r\n this.$groups.carcategory.count = checkedCount;\r\n\r\n if (this.$groups.carcategory.count > 0) {\r\n $(APP.props.$groupCheckboxes).addClass(\"ui-state-valid\");\r\n this.$inputs.carcategory = true;\r\n } else {\r\n $(APP.props.$groupCheckboxes).addClass(\"ui-state-invalid\");\r\n this.$inputs.carcategory = false;\r\n }\r\n }\r\n },\r\n validateFile: function (el) {\r\n // Checks that file upload is required\r\n var addInput = {}; // create object\r\n addInput[el[0].name] = true; // Default set to true passes validation\r\n if ($(el).prop(\"required\") === true) {\r\n if ($(el).val() === \"\") {\r\n $(el)\r\n .parent()\r\n .addClass(\"ui-state-invalid\");\r\n addInput[el[0].name] = false;\r\n } else {\r\n $(el)\r\n .parent()\r\n .removeClass(\"ui-state-invalid\");\r\n }\r\n } else {\r\n $(el)\r\n .parent()\r\n .removeClass(\"ui-state-invalid\");\r\n }\r\n _.extend(this.$inputs, addInput); // push inputs valid status to guardian object\r\n },\r\n validateCheckout: function (el, disableSubmit) {\r\n var $dfd = $.Deferred();\r\n var addInput = {};\r\n\r\n APP.props.checkoutPassedAjax = true;\r\n if($('#ta__block--details .ui-state-invalid').length){\r\n $('#ta__block--details .toggle_pm_header.toggler:not(.open)').click();\r\n $('#ta__block--details input').change();\r\n }\r\n //WEBAE3-3718 - only add spin gear to button clicked if more than one button was shown\r\n if(typeof checkoutSubmitBtn !== 'undefined') {\r\n $(checkoutSubmitBtn.clicked).prop(\"disabled\", disableSubmit || false);\r\n $(checkoutSubmitBtn.notclicked).prop(\"disabled\", disableSubmit || false);\r\n // replaced code: el.find('button[type=\"submit\"]').prop(\"disabled\", disableSubmit || false);\r\n APP.addSpinGear($(checkoutSubmitBtn.clicked));\r\n }\r\n\r\n \r\n //validate TBI promo code if provided - WEBAE3-4083\r\n if ($(el.find('input[name=\"tbiPromo\"]')).length !=0) {\r\n if ($(el.find('input[name=\"tbiPromo\"]')).val().length != 0) {\r\n if ( isValidTBIPromo === false) {\r\n\r\n $(el.find('input[name=\"tbiPromo\"]'))\r\n .parent()\r\n .removeClass(\"ui-state-valid\")\r\n .addClass(\"ui-state-invalid\"); \r\n el.guardian().$inputs.tbiPromo = false;\r\n $(\"#tbi_promo_error\").show();\r\n\r\n }\r\n }\r\n }\r\n\r\n $dfd.done(function () {\r\n //console.log(['Deferred object done: addInput = ',addInput]);\r\n _.extend(el.guardian().$inputs, addInput);\r\n //console.log(['Inputs checked',el.guardian().$inputs]);\r\n APP.props.checkoutPassedAjax = !_.contains(_.values(el.guardian().$inputs), false);\r\n //console.log(APP.props.checkoutPassedAjax);\r\n\r\n\r\n if (el.guardian().$inputs.email === false) {\r\n $(el.find('input[name=\"email\"]'))\r\n .parent()\r\n .removeClass(\"ui-state-valid\")\r\n .addClass(\"ui-state-invalid\");\r\n }\r\n if (el.guardian().$inputs.cardnumber === false) {\r\n $(el.find('input[name=\"cardnumber\"]'))\r\n .parent()\r\n .removeClass(\"ui-state-valid\")\r\n .addClass(\"ui-state-invalid\");\r\n } \r\n\r\n el.find('button[type=\"submit\"]').prop(\"disabled\", APP.props.checkoutPassedAjax);\r\n \r\n if (APP.props.checkoutPassedAjax) {\r\n\r\n //WEBAE3-4058 use device.js instead of CF\r\n if(device && device.type == 'tablet'){\r\n $('input#deviceGroup').val('WT');// Pass new voucher type to XBE through hidden field\r\n } else if(device && device.type == 'mobile'){\r\n $('input#deviceGroup').val('WP');// Pass new voucher type to XBE through hidden field\r\n }\r\n \r\n el.addClass(\"ae-checkout--bypassAjax\").submit();\r\n } else {\r\n $(\".ui-state-invalid\")\r\n .first()\r\n .find(\"input\")\r\n .focus();\r\n APP.removeSpinGear(el.find('button[type=\"submit\"]'));\r\n }\r\n\t\t\t\t\t\t});\r\n //validate cardnumber if provided\r\n if ($(el.find('input[name=\"cardnumber\"]')).length !=0) {\r\n if ($(el.find('input[name=\"cardnumber\"]')).val().length != 0) {\r\n addInput = {\r\n \"cardnumber\": APP.validateCreditCard($(el.find('input[name=\"cardnumber\"]')).val())\r\n };\r\n }\r\n }\r\n \r\n $dfd.resolve();\r\n\r\n \r\n /* ajax call deprecated - WEBAE3-1204\r\n $.ajax({\r\n url: \"/plugins/ae3/lib/BookingAjax.cfc\",\r\n type: 'POST',\r\n dataType: \"json\",\r\n data: el.serialize()\r\n })\r\n .done(function(data) {\r\n // console.log(data);\r\n // console.log(el);\r\n addInput = data;\r\n $dfd.resolve();\r\n })\r\n .fail(function() {\r\n console.log('Validate Checkout Fail');\r\n $dfd.resolve();\r\n });\r\n */\r\n },\r\n validateAccountLogin: function (el, disableSubmit) {\r\n APP.props.loginInputValid = true;\r\n el.find('button[type=\"submit\"]').prop(\"disabled\", disableSubmit || false);\r\n \t//but if username isn't an email or password is blank, send ajax call to get appropriate return message for display SL\r\n //Do not need password field validated on login by Guardian SL\r\n //but if username isn't an email or password is blank, don't send Ajax call\r\n // if (el.guardian().$inputs.member_username === false || el.guardian().$inputs.member_password === false) {\r\n // APP.props.loginInputValid = false;\r\n // }\r\n\r\n if (APP.props.loginInputValid) {\r\n //passed client side checks so fire login call\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/plugins/ae3/lib/Member3.cfc',\r\n data: {\r\n method: 'isValidLogin',\r\n email: $('#account_login_form').find('input[name=\"member_username\"]').val(),\r\n password: $('#account_login_form').find('input[name=\"member_password\"]').val()\r\n },\r\n dataType: 'json',\r\n success: function (result) {\r\n\r\n AE.account.setHTML('member-response-right', '');\r\n AE.account.hideGridDiv('account_login_form','member-response-right');\r\n\r\n if (result.RESULT) {\r\n AE.account.handleSalesforceLogin(); \r\n //WEBAE3-2170 - update search form age on log-in if user didn't change age on initial search\r\n if (result.AGE != '') {\r\n APP.handleLoginAge(result.AGE)\r\n }\r\n APP.props.loginInputValid = true;\r\n\r\n \r\n if(typeof result.showSubscribe != \"undefined\" && result.showSubscribe == true\r\n && (window.location.pathname !== '/checkout/' && window.location.pathname !== '/payment/')\r\n ){ //WEBAE3-6285 trigger New Modal to spawn when unsubscribed user logs in except the following pages\r\n localStorage.setItem(\"aeShowSubscribe\", true);//notsignedup \r\n }\r\n\r\n\r\n if (AEdata && AEdata.booking && AEdata.booking.state && AEdata.booking.state.step) {\r\n if (AEdata.booking.state.step == 'bookform') {\r\n var $oStored = JSON.parse(localStorage.getItem('aeSearch'));\r\n if($oStored && $oStored.searchAgeCheckbox && $oStored.searchAge == 40) {\r\n //WEBAE3-5069 update setItem to include updated search object\r\n $oStored['showFillAgeCheckout'] = false;\r\n localStorage.setItem('aeSearch',JSON.stringify($oStored));\r\n } \r\n }\r\n // Entering this requote block on /confirmation/ will send the user to a quote expired page\r\n if (\r\n window.location.pathname !== '/confirmation/' && \r\n AEdata.booking.quote && \r\n AEdata.booking.quote.oQuote && \r\n ( \r\n $('html').hasClass('ua-ios') || \r\n (AEdata.booking.quote.oQuote.oRules && AEdata.booking.quote.oQuote.oRules.applyMemberDU)\r\n )\r\n ){\r\n\t\t\t\t\t\t\t\t\t\t\t\t// WEBAE3-1669 - always generate a new quote to get member discount\r\n AE.ui.search.autocomplete.setFromQuote({\r\n loggedInAt:AEdata.booking.state.step,\r\n searchAge: result.AGE\r\n });\r\n AE.ui.search.formSubmit(true);\r\n } else if (AE.props.useWEBAE3_4453 && window.location.pathname === '/confirmation/') {\r\n // WEBAE3-4453 Logging in on /confirmation/ sends user to member dashboard\r\n window.location.href = '/member-accounts/';\r\n } else if (window.location.pathname === '/results/') {\r\n //WEBAE3-5167 need to resubmit search form to get fresh human sec signals\r\n //otherwise user gets blocked for re-using signals on a generic reload\r\n //WEBAE3-5607 - don't need to worry about human sec signals but this fixes age bug now, too\r\n //so it stays\r\n var $oStored = JSON.parse(localStorage.getItem('aeSearch'));\r\n var tmpAge = 40;\r\n if( $oStored && !$oStored.searchAgeCheckbox ) {\r\n tmpAge = $oStored.searchAge;\r\n }else{\r\n tmpAge = result.AGE;\r\n }\r\n AE.ui.search.autocomplete.setFromQuote({\r\n loggedInAt:AEdata.booking.state.step,\r\n searchAge: tmpAge\r\n });\r\n AE.ui.search.formSubmit(true); \r\n\r\n } else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Don't trigger login requote for sites that don't offer Member Discount WEBAE3-3230\r\n window.location.reload();//keep user on page they logged in on WEBAE3-1662\r\n }\r\n } else {\r\n if (AE.props.useWEBAE3_4453) {\r\n // WEBAE3-4453 Redirect to /member-accounts/ on login but only if:\r\n // 1. No password change is required\r\n // 2. No active quote in context except /confirmation/ (handled above)\r\n window.location.href = '/member-accounts/';\r\n } else {\r\n window.location.reload();//keep user on page they logged in on WEBAE3-1662 \r\n }\r\n }\r\n } else {\r\n if (result.CHANGEPASSWORD ) {\r\n APP.handleLoginChangePassword(result.MESS, result.UID);\r\n APP.removeSpinGear($('#account_login_button'));\r\n AE.ui.enableClicks();\r\n el.find('button[type=\"submit\"]').prop(\"disabled\",false);\r\n } else {\r\n \t\tAPP.props.loginInputValid = false;\r\n \tAE.account.showEle('forgotPasswordContainer');\r\n if ($(\"#member-response-left\").html() != result.MESS) { \r\n AE.account.setHTML('member-response-left', result.MESS);\r\n AE.account.showGridDiv('member-response-left', '');\r\n }\r\n }\r\n\r\n APP.removeSpinGear($('#account_login_form').find('button[type=\"submit\"]'));\r\n AE.ui.enableClicks();\r\n el.find('button[type=\"submit\"]').prop(\"disabled\",false);\r\n }\r\n },\r\n error: function(result) {\r\n console.log('Error Hit');\r\n APP.props.loginInputValid = false;\r\n handleAjaxLoginFail();\r\n }\r\n });\r\n } else {\r\n $(\".ui-state-invalid\")\r\n .first()\r\n .find(\"input\")\r\n .focus();\r\n $('#account_login_form')\r\n .find('button[type=\"submit\"]')\r\n .prop(\"disabled\", false);\r\n }\r\n function handleAjaxLoginFail() {\r\n //console.log('ajaxFails');\r\n $('#account_login_form')\r\n .find('input[name=\"member_username\"]')\r\n .parent()\r\n .removeClass(\"ui-state-valid\")\r\n .addClass(\"ui-state-invalid\");\r\n $('#account_login_form')\r\n .find('input[name=\"member_password\"]')\r\n .parent().removeClass(\"ui-state-valid\")\r\n .addClass(\"ui-state-invalid\");\r\n $(\".ui-state-invalid\")\r\n .first()\r\n .find(\"input\")\r\n .focus();\r\n $('#account_login_form')\r\n .find('button[type=\"submit\"]')\r\n .prop(\"disabled\", false);\r\n APP.removeSpinGear($('#account_login_form').find('button[type=\"submit\"]'));\r\n }\r\n },\r\n failure: function () {\r\n // Form Failed JS Validation\r\n $(\".ui-state-invalid\")\r\n .first()\r\n .find(\"input\")\r\n .focus();\r\n // alert(JSON.stringify(this.$inputs));\t// Used for IE8 testing\r\n if (this.$el[0].id === \"ae-checkout\") {\r\n this.validateCheckout($(this.$el[0]), false);\r\n }\r\n if (this.$el[0].id === \"frEmailMod\") {\r\n $(\"#btEmailModSubmit\").prop(\"disabled\", false);\r\n }\r\n if (this.$el[0].id === \"frSimpleMod\") {\r\n event.preventDefault();\r\n $(\"#btSimpleModSubmit\").prop(\"disabled\", false);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frConvert\") {\r\n event.preventDefault();\r\n $(\"#btConvertSubmit\").prop(\"disabled\", false);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frElecPayment\") {\r\n APP.removeSpinGear($('#btElecPaymentSubmit'));\r\n event.preventDefault();\r\n $(\"#btElecPaymentSubmit\").prop(\"disabled\", false);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frCancel\") {\r\n $(\"#btCancel\").prop(\"disabled\", false);\r\n }\r\n if (this.$el[0].id === \"account_login_form\") {\r\n this.validateAccountLogin($(this.$el[0]), true);// console.log(this.$el);\r\n\r\n //$(\"#account_login_button\").prop(\"disabled\", false);\r\n }\r\n return false;\r\n },\r\n success: function () {\r\n if (AE.props.siteCode === 'FCR' && this.$el.find(\"fcr--btn-anim\")) {\r\n AE.ui.disableClicks();\r\n APP.addSpinGear(this.$el.find(\"button.fcr--btn-anim\"));\r\n\r\n //WEBAE3-4362 make sure checkout doubleclicks don't fire two voucher requests\r\n if(this.$el[0].id === \"fcr-checkout\" && !$(this.$el[0]).hasClass(\"ae-checkout--bypassAjax\")){\r\n this.validateCheckout($(this.$el[0]), true);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n if (this.$el.hasClass(\"frmVoucherLookup\") || this.$el.is(\"#account_lookup_form\") || this.$el.is(\"#frSimpleMod\") || this.$el.is(\"#frConvert\") || this.$el.is(\"#frElecPayment\") || this.$el.is(\"#customerForm\")) {\r\n AE.ui.disableClicks();\r\n APP.addSpinGear(this.$el.find(\"button.btn--primary\"));\r\n return true;\r\n }\r\n if (this.$el[0].id === \"account_login_form\") {\r\n AE.ui.disableClicks();\r\n APP.addSpinGear($(this.$el[0]).find('button[type=\"submit\"]'));\r\n this.validateAccountLogin($(this.$el[0]), true);\r\n //AE.account.loginUser();\r\n return true;\r\n }\r\n if (this.$el[0].id === \"ae-checkout\" && !$(this.$el[0]).hasClass(\"ae-checkout--bypassAjax\")) {\r\n //WEBAE3-3718 - only add spin gear to button clicked if more than one\r\n if(typeof checkoutSubmitBtn !== 'undefined') {\r\n //APP.addSpinGear($(this.$el[0]).find('button[type=\"submit\"]'));\r\n APP.addSpinGear($(checkoutSubmitBtn.clicked));//WEBAE3-3718 checkoutSubmitBtn defined in AE.booking.js> BOOKFORM section\r\n }\r\n this.validateCheckout($(this.$el[0]), true);\r\n return false;\r\n }\r\n if (this.$el[0].id === \"frEmailMod\") {\r\n //console.log('frEmailMod submitted');\r\n $(\"#btEmailModSubmit\").prop(\"disabled\", true);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frSimpleMod\") {\r\n //console.log('frSimpleMod submitted');\r\n $(\"#btSimpleModSubmit\").prop(\"disabled\", true);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frConvert\") {\r\n //console.log('frSimpleMod submitted');\r\n $(\"#btConvertSubmit\").prop(\"disabled\", true);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frElecPayment\") {\r\n //console.log('frSimpleMod submitted');\r\n $(\"#btElecPaymentSubmit\").prop(\"disabled\", true);\r\n return true;\r\n }\r\n if (this.$el[0].id === \"frCancel\") {\r\n //console.log('frCancel submitted');\r\n $(\"#btCancel\").prop(\"disabled\", true);\r\n return true;\r\n }\r\n //NOTE this condition must be last because else statement will apply to all other requests except those above\r\n if (this.$el[0].id === \"autosurvey\") {\r\n var $button = $(\"#autosurvey button.btn--primary\").prop(\"disabled\", true);\r\n AE.ui.disableClicks();\r\n APP.addSpinGear($button);\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n }\r\n });\r\n });\r\n },\r\n // Luhn algorithm to match checksum on cardnumber\r\n validateCreditCard: function (value) {\r\n // accept only digits, dashes or spaces\r\n if (/[^0-9-\\s]+/.test(value)) return false;\r\n \r\n // Use Luhn Algorithm\r\n var nCheck = 0,\r\n nDigit = 0,\r\n bEven = false;\r\n value = value.replace(/\\D/g, \"\");\r\n\r\n for (var n = value.length - 1; n >= 0; n--) {\r\n var cDigit = value.charAt(n),\r\n nDigit = parseInt(cDigit, 10);\r\n\r\n if (bEven) {\r\n if ((nDigit *= 2) > 9) nDigit -= 9;\r\n }\r\n\r\n nCheck += nDigit;\r\n bEven = !bEven;\r\n }\r\n return (nCheck % 10) == 0;\r\n },\r\n // Handle Label and hide/show for State/Province dropdown\r\n stateMenus: function (selector) {\r\n // Handles hiding and showing State select menus based on Country selection for old markup generated by request.objCommon.PopulateStateDropdownDropkick() function\r\n //console.log('LEGACY State Menu Update calling call ' + selector);\r\n },\r\n // Voucher Lookup Toggle and display\r\n handleVoucherLookup: function ($target) {\r\n if ($target.hasClass(\"voucherLookupInputToggle\")) {\r\n var $vNumDiv = $(\"form.frmVoucherLookup div#voucherNumberInput\");\r\n var $vEmailDateDiv = $(\"form.frmVoucherLookup div#voucherEmailDateInput\");\r\n var $vInputToggleIcon = $(\"form.frmVoucherLookup label.voucherLookupInputToggle i.fa.voucherLookupInputToggle\");\r\n\r\n if ($vNumDiv.hasClass(\"trulyhidden\")) {\r\n $vInputToggleIcon\r\n .addClass(\"fa-check-circle\")\r\n .removeClass(\"fa-circle\");\r\n $vNumDiv\r\n .removeClass(\"trulyhidden\")\r\n .find(\"input\")\r\n .prop(\"required\", true);\r\n $vEmailDateDiv\r\n .addClass(\"trulyhidden\")\r\n .find(\"input\")\r\n .prop(\"required\", false)\r\n .val(\"\");\r\n } else if ($vEmailDateDiv.hasClass(\"trulyhidden\")) {\r\n $vInputToggleIcon\r\n .addClass(\"fa-circle\")\r\n .removeClass(\"fa-check-circle\");\r\n $vEmailDateDiv\r\n .removeClass(\"trulyhidden\")\r\n .find(\"input\")\r\n .prop(\"required\", true);\r\n $vNumDiv\r\n .addClass(\"trulyhidden\")\r\n .find(\"input\")\r\n .prop(\"required\", false)\r\n .val(\"\");\r\n }\r\n }\r\n },\r\n // Cleanup email of common errors\r\n emailClean: function (inputID) {\r\n // Correct a number of common typos that will always yeild an invalid email address\r\n var bDebug = false; // Controls whether or not to throw custom errors\r\n var cleanEmail = $.trim($(inputID).val()); // Start with trimmed raw input value\r\n if (bDebug) throw \"Email Cleanup Step 0: \" + $(inputID).val();\r\n if (bDebug) throw \"Email Cleanup Step 1: \" + cleanEmail;\r\n cleanEmail = cleanEmail.split(\"..\").join(\".\");\r\n if (bDebug) throw \"Email Cleanup Step 2: \" + cleanEmail;\r\n var atPos = cleanEmail.search(\"@\");\r\n while (cleanEmail.substring(atPos - 1, atPos) == \".\" || cleanEmail.substring(atPos + 1, atPos + 2) == \".\") {\r\n cleanEmail = cleanEmail.replace(/\\.@/g, \"@\"); // Remove period from position directly before @\r\n if (bDebug) throw \"Email Cleanup Step 3: \" + cleanEmail;\r\n cleanEmail = cleanEmail.replace(/@\\./g, \"@\"); // Remove period from position directly after @\r\n if (bDebug) throw \"Email Cleanup Step 4: \" + cleanEmail;\r\n atPos = cleanEmail.search(\"@\");\r\n }\r\n while (cleanEmail.substring(0, 1) == \".\") {\r\n // Remove periods from first position of string\r\n cleanEmail = cleanEmail.substring(1);\r\n if (bDebug) throw \"Email Cleanup Step 5: \" + cleanEmail;\r\n }\r\n while (cleanEmail.substring(cleanEmail.length - 1, cleanEmail.length) == \".\") {\r\n // Remove periods from last position of string\r\n cleanEmail = cleanEmail.substring(0, cleanEmail.length - 1);\r\n if (bDebug) throw \"Email Cleanup Step 6: \" + cleanEmail;\r\n }\r\n $(inputID).val(cleanEmail); // Replace input value with cleaned string\r\n },\r\n // Removes whitespace in voucher number\r\n cleanWhitespace: function (event, targetID) {\r\n /* Simari - 01/30/18 - https://autoeurope.jira.com/browse/WEBAE3-886 */\r\n // var input = document.getElementsByName(targetName)[0];\r\n var input = document.getElementById(targetID);\r\n var val = input.value.replace(/\\s+/g, \"\");\r\n input.value = val;\r\n },\r\n // Replace Double Quotes in an Input With Single Quotes to protect XML\r\n quoteSwap: function (inputID) {\r\n $(inputID).val($(inputID)\r\n .val()\r\n .replace(/\"/g, \"''\"));\r\n },\r\n // Apply Spinning Gear Markup to Submit Buttons\r\n addSpinGear: function ($button) {\r\n $button = $button || [];\r\n\r\n if ($button[0] && !$($button).hasClass('ui--btn-submit-wait')){\r\n $button\r\n .addClass(\"ui--btn-submit-wait\")\r\n .append(APP.props.$spinGear.clone().hide())\r\n .ready(function () {\r\n $button.find(\".ui--loading-results\").fadeIn();\r\n });\r\n }\r\n },\r\n removeSpinGear: function ($button) {\r\n $button = $button || [];\r\n if ($button[0]) {\r\n $button\r\n .removeClass(\"ui--btn-submit-wait\")\r\n .find(\"i.ui--loading-results\")\r\n .remove();\r\n }\r\n },\r\n // Body Click Watch Tasks\r\n onBodyClick: function (event, $target) {\r\n // Toggle Age Info dropdown (search form)\r\n if (_.contains(APP.props.$ageInfoBtn, $target[0])) {\r\n // (APP.props.$ageInfoText).show();\r\n return $target.siblings(APP.props.$ageInfoText).toggleClass(\"display-inline\");\r\n } else if (!APP.props.$ageInfoText.is($target[0]) && APP.props.$ageInfoText.hasClass(\"display-inline\")){\r\n // (APP.props.$ageInfoText).hide();\r\n return APP.props.$ageInfoText.removeClass(\"display-inline\");\r\n }\r\n\r\n // Modal/dropdown Close Buttons\r\n if (_.contains(APP.props.$modalCloseBtn, $target[0])) {\r\n if ($target.attr('data-modal-target') == '.age-info-text') {\r\n return APP.props.$ageInfoText.toggleClass(\"display-inline\");\r\n }\r\n return $($target.attr('data-modal-target')).toggleClass('visuallyhidden');\r\n }\r\n\r\n APP.handleVoucherLookup($target);\r\n\r\n if ($target.hasClass(\"btnGoodDates\")){\r\n _.each($('form.frmGoodDates input.datePickerInput'),function(thisInput){\r\n var ogDate = $(thisInput).datepicker('getDate');\r\n $(thisInput).val($.datepicker.formatDate(\"mm-dd-yy\", $(thisInput).datepicker('getDate')));\r\n $(thisInput).datepicker('setDate', ogDate);\r\n });\r\n return true;\r\n }\r\n\r\n if ($target.hasClass(\"btn--anim\")) {\r\n APP.addSpinGear($target);\r\n }\r\n\r\n if ($target.is(\"button#frChangeCar\") || $target.is(\"#frCancel #btCancel\")) {\r\n APP.addSpinGear($target);\r\n return true;\r\n }\r\n },\r\n // Body Change Watch Tasks\r\n onBodyChange: function (event, $target) {\r\n targetID = event.target.id;\r\n targetTag = event.target.tagName.toUpperCase();\r\n targetType = event.target.type.toUpperCase();\r\n targetName = event.target.name;\r\n\r\n switch (targetTag) {\r\n case \"INPUT\":\r\n targetID = targetID === \"\" ? \"input[name='\" + event.target.name + \"']\" : \"#\" + targetID;\r\n\r\n // if (targetID === \"#member_age\" || (typeof $target.data(\"pattern\") === \"ae_memberage\" && $target\r\n // Added regex for age validation in guardian (our reqs) Cgoodwin requested to make this a drop-down - WEBAE3-989- 02/21/18 - SIMARI\r\n // .data(\"pattern\")\r\n // .toUpperCase() === \"NUMBER\")) {\r\n // APP.validateAge(event, targetName);\r\n // }\r\n\r\n // targetID = (targetID === \"#vouchnum-lookup\") ? event.target.name : targetID;\r\n if ((targetName === \"vouchnum\" || targetName === \"vouchernum\") || (typeof $target.data(\"pattern\") === \"ae_voucher\" && $target.data(\"pattern\").toUpperCase() === \"TEXT\")) {\r\n APP.cleanWhitespace(event, targetID.replace('#', ''));\r\n }\r\n\r\n if (targetType === \"EMAIL\" || (typeof $target.data(\"pattern\") === \"string\" && $target\r\n .data(\"pattern\")\r\n .toUpperCase() === \"EMAIL\")) {\r\n APP.emailClean(targetID);\r\n }\r\n if ($target.hasClass(\"trg__quoteSwap\")) {\r\n APP.quoteSwap(targetID);\r\n }\r\n break;\r\n case \"SELECT\":\r\n if (targetID.toUpperCase() === \"COUNTRY\" && $(\"form .state-select .stateList\").length) {\r\n APP.stateMenus();\r\n } // Legacy\r\n if ($target.closest(\"form\").hasClass(\"validate\")) {\r\n $target\r\n .parent()\r\n .removeClass(\"ui-state-invalid\")\r\n .removeClass(\"ui-state-valid\");\r\n }\r\n break;\r\n case \"TEXTAREA\":\r\n if ($target.hasClass(\"trg__quoteSwap\")) {\r\n targetID = targetID === \"\" ? \"textarea[name='\" + event.target.name + \"']\" : \"#\" + targetID;\r\n\r\n APP.quoteSwap(targetID);\r\n }\r\n break;\r\n }\r\n },\r\n postAutoForm: function () {\r\n if (APP.props.$autoForms[0]) setTimeout(function () {\r\n if (APP.props.$autoForms.first().attr('id') == 'loadQuote') {\r\n /*WEBAE3-5291 change URL for search wait page in history\r\n so if user goes back to search wait via back button, the\r\n URL in the address bar will be for the home page. This was to \r\n prevent user from reposting Human Security signals and\r\n getting flagged as a bot if they hit refresh on search wait\r\n \r\n WEBAE3-5607 - leaving this in place even though we're no\r\n longer using original HumanSecurity */\r\n var histUrl = (document.referrer) ? document.referrer : oSite.sslDomain;\r\n APP.props.$autoForms.first().submit();\r\n //replace state after submit works properly, before submit not so much\r\n window.history.replaceState({}, document.title, histUrl);\r\n } else {\r\n APP.props.$autoForms.first().submit();\r\n }\r\n }, 1000);\r\n },\r\n handleLoginChangePassword:function(resultMess, uuid) {\r\n APP.props.loginInputValid = false;\r\n var resetForm = $('[data-formType=\"resetPasswordFormForce\"]'); \r\n\r\n if (APP.props.$isInMemberAccount) {\r\n\t\t\t\tAPP.removeSpinGear($('#account_login_form').find('button[type=\"submit\"]'));\r\n\t\t\t\t$(\"input.uid_reset\").val(uuid);\r\n\r\n\t\t\t\tAE.account.showGridDivByClass('member_reset_password','member_email');\r\n\t\t\t\tAE.account.showGridDivByClass('member_reset_password','current_password');\r\n\t\t\t\tAE.account.hideGridDivByClass('member_reset_password','memberPasswordChecklist');\r\n\t\t\t\tAE.account.hideEle('forgotPasswordContainer');\r\n\t\t\t\tAE.account.showEle('resetPasswordContainer');\r\n\t\r\n\t\t\t\tif (!AE.account.isTwoCol()) {\r\n\t\t\t\t\tAE.account.setHTML('member-response-right', resultMess);\r\n\t\t\t\t\tAE.account.showGridDiv('member-response-right', '');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tAE.account.setHTML('member-response-left', resultMess);\r\n\t\t\t\t\tAE.account.showGridDiv('member-response-left', ''); \r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t$('form#member_reset_password').find('input[name=\"resetType\"]').val('force');\r\n } else {\r\n $(\"div#memberPasswordResetNav\").removeClass('visuallyhidden');\r\n $(\"div#memberloginNav\").addClass('visuallyhidden');\r\n AE.account.setHTML('resetMessNav', resultMess);\r\n AE.account.showGridDiv('resetMessNav', ''); \r\n APP.removeSpinGear($('#account_login_form').find('button[type=\"submit\"]'));\r\n $(\"input.uid_reset\").val(uuid);\r\n }\r\n \r\n $(\"div.login_container\").addClass('visuallyhidden--palm visuallyhidden--lap');\r\n },\r\n handleLoginAge:function(age) {\r\n\t\t\t/* Per WEBAE3-2170 and WEBAE3-1686, we want to update search age to member age \r\n\t\t\tin search form and local storage but only if they haven't manually entered an age\r\n\t\t\tprior to logging in\r\n\t\t\t*/\r\n\t\t\tvar updateSearchFormAge = false;\r\n\t\t\tvar inModifyProcess = false;\r\n\t\t\t// Don't run any checks if we're in modify process\r\n\t\t\tif (\r\n typeof (AEdata.booking) !== 'undefined' && \r\n\t\t\t\ttypeof (AEdata.booking.props) !== 'undefined' &&\r\n\t\t\t\ttypeof (AEdata.booking.props.ismodify) !== 'undefined'\r\n ){\r\n \t\t\t\tinModifyProcess = AEdata.booking.props.ismodify;\r\n\t\t\t}\r\n\r\n\t\t\tif (!inModifyProcess) {\r\n\t\t\t\t// set update flag based on AEdata info\r\n\t\t\t\tif (\r\n typeof (AEdata.booking) !== 'undefined' && \r\n typeof (AEdata.booking.quote) !== 'undefined' && \r\n typeof (AEdata.booking.oQuote) !== 'undefined' && \r\n typeof (AEdata.booking.oQuote.searchAgeCheckbox) !== 'undefined'\r\n ){\r\n if (AEdata.booking.quote.oQuote.searchAgeCheckbox) {\r\n updateSearchFormAge = true;\r\n }\r\n }\r\n \t\t\t}\r\n\r\n\t\t\t// check for local storage and update/set flag if needed\r\n // === Added for WEBAE3-4756 === //\r\n if (AE.props.siteCode != 'PEU') {\r\n if (\r\n AE.ui.search.useStoredSearch() && \r\n localStorage.getItem('aeSearch') && \r\n _.isString(localStorage.getItem('aeSearch')) && \r\n localStorage.getItem('aeSearch') != ''\r\n ) {\r\n var oStoredSearch = JSON.parse(localStorage.getItem('aeSearch'));\r\n //local storage exists so check whether to update it\r\n if (oStoredSearch.searchAgeCheckbox && oStoredSearch.searchAge) {\r\n if (oStoredSearch.searchAge != age){\r\n\r\n }else{\r\n oStoredSearch.searchAge = age;\r\n updateSearchFormAge = true;\r\n //updating local storage, so update form\r\n var _obj = JSON.stringify(oStoredSearch);\r\n localStorage.setItem('aeSearch', _obj);\r\n }\r\n \r\n }\r\n }\r\n\r\n if (updateSearchFormAge) {\r\n AE.ui.search.setAge(age);//only run this once \r\n AE.ui.search.setDefaultAgeOverride(age); \r\n AE.ui.search.init();\r\n }\r\n }\r\n\t\t},\r\n setBillingInputRequiredStatus:function(inputs,status) {\r\n //WEBAE3-4052: on status turns on required, off status turns off required\r\n for(i=0; i < inputs.length; ++i) {\r\n if(status == 'on') {\r\n $('#'+inputs[i]).attr('required','required');\r\n if(inputs[i] == 'state'){\r\n //state parent/parent needs required class added too\r\n $('#'+inputs[i])\r\n .parent()\r\n .parent()\r\n .addClass(\"required\");\r\n $('#'+inputs[i])\r\n .parent()\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n } else {\r\n // only parent for others\r\n $('#'+inputs[i])\r\n .parent()\r\n .addClass(\"required\");\r\n $('#'+inputs[i])\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n }\r\n } else if(status == 'off') {\r\n $('#'+inputs[i]).removeAttr('required');\r\n if(inputs[i] == 'state'){\r\n //state parent/parent needs required class removed too\r\n $('#'+inputs[i])\r\n .parent()\r\n .parent()\r\n .removeClass(\"required\");\r\n $('#'+inputs[i])\r\n .parent()\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n } else {\r\n // only parent for others\r\n $('#'+inputs[i])\r\n .parent()\r\n .removeClass(\"required\");\r\n $('#'+inputs[i])\r\n .parent()\r\n .removeClass(\"ui-state-valid ui-state-invalid\");\r\n }\r\n }\r\n }\r\n\r\n },\r\n formFineUploaderInstance: function(formfield, moduleFolder, itemlimit) {\r\n // Initialize fineUploader JS on file input - WEBAE3-4369\r\n\t\t\tvar fineUploaderFolder = \"/plugins/ae3/modules/\"+moduleFolder+\"/fine_uploader\";\r\n var $form_submit_btn = $('input#'+formfield).closest('form').find('#form_submit');\r\n \r\n uploadlimit = itemlimit ? itemlimit : 1;\r\n \r\n\t\t\tvar galleryUploader = new qq.FineUploader({\r\n\t\t\t\t//debug: true,\r\n\t\t\t\tmultiple: false,\r\n\t\t\t\telement: document.getElementById(\"upload_block-\"+formfield),\r\n\t\t\t\ttemplate: 'qq-simple-thumbnails-template',\r\n\t\t\t\trequest: {\r\n\t\t\t\t\tendpoint: '/plugins/ae3/modules/'+moduleFolder+'/image-uploader.cfc?method=uploadSingleFile'\r\n\t\t\t\t},\r\n\t\t\t\tretry: {\r\n\t\t\t\t\tenableAuto: true\r\n\t\t\t\t},\r\n\t\t\t\tthumbnails: {\r\n\t\t\t\t\tplaceholders: {\r\n\t\t\t\t\t\t//waitingPath: fineUploaderFolder+'/placeholders/waiting-generic.png',\r\n\t\t\t\t\t\twaitingPath: fineUploaderFolder+'/processing.gif',\r\n\t\t\t\t\t\tnotAvailablePath: fineUploaderFolder+'/placeholders/not_available-generic.png'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tvalidation: {\r\n\t\t\t\t\titemLimit: uploadlimit\r\n\t\t\t\t},\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\tonUpload: function(id, name) {\r\n\t\t\t\t\t\t$form_submit_btn.addClass('off');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonComplete: function(id, name, responseJSON) {\r\n\t\t\t\t\t\tif (responseJSON.success) {\r\n\t\t\t\t\t\t\t$('input#'+formfield).val(responseJSON.server_filename);\r\n\t\t\t\t\t\t\t$('#upload_block-'+formfield+' .qq-upload-button').hide();\r\n\t\t\t\t\t\t\t$('#upload_block-'+formfield+' .qq-upload-remove-button').show();\r\n\t\t\t\t\t\t\t$form_submit_btn.removeClass('off');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//onError: function(id, name, errorReason) {\r\n\t\t\t\t\t//},\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n };\r\n\r\n return APP;\r\n})();\n;\nvar AE = AE || {};\n/*Currently only targetting IE and augmenting Array.prototype functions as necessary.*/\nAE.legacy = AE.legacy || ( function () {\n\t/*DEPENDENCIES: Calls AE.legacy.polyfill */\n\t'use strict';\n\tvar POS = {\n\t\tinit: function () {\n\t\t\tPOS.grief = {\n\t\t\t\tisIE: $( 'html' ).is( '.ua-ie' ),\n\t\t\t\twhichIE: {\n\t\t\t\t\tisIE7: $( 'html' ).is( '.ua-ie-7, .ua-ie-7-0' ),\n\t\t\t\t\tisIE8: $( 'html' ).is( '.ua-ie-8, .ua-ie-8-0' ),\n\t\t\t\t\tisIE9: $( 'html' ).is( '.ua-ie-9, .ua-ie-9-0' ),\n\t\t\t\t\tisIE10: $( 'html' ).is( '.ua-ie-10, .ua-ie-10-0' ),\n\t\t\t\t\tisIE11: $( 'html' ).is( '.ua-ie-11, .ua-ie-11-0' )\n\t\t\t\t},\n\t\t\t\tisLegacy: POS._isLegacyBrowser,\n\t\t\t\tversionOfBrowser: POS._getLegacyBrowserVersion\n\t\t\t};\n\t\t\t/* POS.getLegacyBrowserVersion() references the grief object, so this can't just be tossed into grief. */\n\t\t\t/* Checks if browser is on our list of [POS.grief.whichIE] - will return true if any condition (property) is met.*/\n\t\t\t// var legacyBrowser = POS.grief.isLegacy();\n\t\t\t/* Returns a string from the getter [POS.getLegacyBrowserVersion]*/\n\t\t\t// var browserVersion = POS.grief.versionOfBrowser();\n\t\t},\n\t\t_isLegacyBrowser: function () {\n\t\t\tvar i = 0,\n\t\t\t\t_ops = POS.grief.whichIE;\n\n\t\t\tfor ( i in _ops ) {\n\t\t\t\tvar _isLegacy = _isLegacy = _ops[ i ];\n\t\t\t\tif ( _isLegacy ) {\n\t\t\t\t\treturn _isLegacy;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t_getLegacyBrowserVersion: function () {\n\t\t\tvar _legacyBrowser = {\n\t\t\t\t\tIE7: 'isIE7',\n\t\t\t\t\tIE8: 'isIE8',\n\t\t\t\t\tIE9: 'isIE9',\n\t\t\t\t\tIE10: 'isIE10',\n\t\t\t\t\tIE11: 'isIE11'\n\t\t\t\t},\n\t\t\t\t_browserIsIE = POS.grief.isIE,\n\t\t\t\t_isLegacy = POS._isLegacyBrowser(),\n\t\t\t\t_ops = POS.grief.whichIE,\n\t\t\t\t_currentVersion;\n\n\t\t\tif ( _isLegacy ) {\n\t\t\t\tfor ( var i in _legacyBrowser ) {\n\t\t\t\t\tvar _browser = _legacyBrowser[ i ];\n\t\t\t\t\tif ( _ops[ _browser ] ) {\n\t\t\t\t\t\t_currentVersion = _browser;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn _currentVersion;\n\t\t}\n };\n\treturn POS;\n} )();\n\n;\nvar AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n/* A series of shims for IE*/\n\nAE.legacy.polyfill = AE.legacy.polyfill || ( function () {\n\t/*DEPENDENCIES: AE.legacy*/\n\t'use strict';\n\tvar POS = {\n\t\tinit: function () {\n\t\t\tPOS.grief = {\n\t\t\t\tarrayEvery: POS.polyfill._augmentArrayPrototypeEvery,\n\t\t\t\tarrayFilter: POS.polyfill._augmentArrayPrototypeFilter,\n\t\t\t\tarrayForEach: POS.polyfill._augmentArrayPrototypeForEach,\n\t\t\t\tarrayIndexOf: POS.polyfill._augmentArrayPrototypeIndexOf,\n\t\t\t\tarrayMap: POS.polyfill._augmentArrayPrototypeMap,\n\t\t\t\tobjectKeys: POS.polyfill._augmentObjectKeys,\n\t\t\t\tobjectCreate: POS.polyfill._augmentObjectCreate,\n\t\t\t\tstringTrim: POS.polyfill._augmentStringTrim,\n\t\t\t\ttextContent: POS.polyfill._augmentTextContent\n\t\t\t};\n\t\t\t/* Do various things that happen once upon init. */\n\t\t\tPOS.polyfill.init();\n\t\t},\n\t\tpolyfill: {\n\t\t\tinit: function () {\n\t\t\t\tvar _augmentBrowserFunction = POS.grief;\n\t\t\t\tvar _availablePolyfills = {\n\t\t\t\t\tarrayEvery: !Array.prototype.every,\n\t\t\t\t\tarrayFilter: !Array.prototype.filter,\n\t\t\t\t\tarrayForEach: !Array.prototype.forEach,\n\t\t\t\t\tarrayIndexOf: !Array.prototype.indexOf,\n\t\t\t\t\tarrayMap: !Array.prototype.map,\n\t\t\t\t\tobjectKeys: !Object.keys,\n\t\t\t\t\tobjectCreate: ( typeof Object.create != 'function' ),\n\t\t\t\t\tstringTrim: !String.prototype.trim,\n\t\t\t\t\ttextContent: ( Object.defineProperty && Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor( Element.prototype, \"textContent\" ) && !Object.getOwnPropertyDescriptor( Element.prototype, \"textContent\" ).get )\n\t\t\t\t};\n\n\t\t\t\tfor ( var i in _augmentBrowserFunction ) {\n\t\t\t\t\tvar _polyfillBroswerCapabilities = _availablePolyfills[ i ] ? _augmentBrowserFunction[ i ]() : void( 0 );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\n\t\t\t_augmentArrayPrototypeEvery: function () {\n\t\t\t\t/*https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every*/\n\t\t\t\treturn Array.prototype.every = function ( callbackfn, thisArg ) {\n\t\t\t\t\tvar T, k;\n\t\t\t\t\tif ( this == null ) {\n\t\t\t\t\t\tthrow new TypeError( 'this is null or not defined' );\n\t\t\t\t\t}\n\t\t\t\t\tvar O = Object( this );\n\t\t\t\t\tvar len = O.length >>> 0;\n\t\t\t\t\tif ( typeof callbackfn !== 'function' ) {\n\t\t\t\t\t\tthrow new TypeError();\n\t\t\t\t\t}\n\t\t\t\t\tif ( arguments.length > 1 ) {\n\t\t\t\t\t\tT = thisArg;\n\t\t\t\t\t}\n\t\t\t\t\tk = 0;\n\t\t\t\t\twhile ( k < len ) {\n\t\t\t\t\t\tvar kValue;\n\t\t\t\t\t\tif ( k in O ) {\n\t\t\t\t\t\t\tkValue = O[ k ];\n\t\t\t\t\t\t\tvar testResult = callbackfn.call( T, kValue, k, O );\n\t\t\t\t\t\t\tif ( !testResult ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tk++;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t_augmentArrayPrototypeFilter: function () {\n\t\t\t\t//https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter\n\t\t\t\treturn Array.prototype.filter = function ( fun ) {\n\t\t\t\t\tif ( this === void 0 || this === null ) {\n\t\t\t\t\t\tthrow new TypeError();\n\t\t\t\t\t}\n\t\t\t\t\tvar t = Object( this );\n\t\t\t\t\tvar len = t.length >>> 0;\n\t\t\t\t\tif ( typeof fun !== 'function' ) {\n\t\t\t\t\t\tthrow new TypeError();\n\t\t\t\t\t}\n\t\t\t\t\tvar res = [];\n\t\t\t\t\tvar thisArg = arguments.length >= 2 ? arguments[ 1 ] : void 0;\n\t\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\t\tif ( i in t ) {\n\t\t\t\t\t\t\tvar val = t[ i ];\n\t\t\t\t\t\t\tif ( fun.call( thisArg, val, i, t ) ) {\n\t\t\t\t\t\t\t\tres.push( val );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn res;\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t_augmentArrayPrototypeForEach: function () {\n\t\t\t\t/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach */\n\t\t\t\treturn Array.prototype.forEach = function ( callback, thisArg ) {\n\t\t\t\t\tvar T, k;\n\t\t\t\t\tvar O = Object( this );\n\t\t\t\t\tvar len = O.length >>> 0;\n\n\t\t\t\t\tif ( this === null ) throw new TypeError( ' this is null or not defined' );\n\t\t\t\t\tif ( typeof callback !== \"function\" ) throw new TypeError( callback + ' is not a function' );\n\t\t\t\t\tif ( arguments.length > 1 ) T = thisArg;\n\n\t\t\t\t\tk = 0;\n\t\t\t\t\twhile ( k < len ) {\n\t\t\t\t\t\tvar kValue;\n\t\t\t\t\t\tif ( k in O ) {\n\t\t\t\t\t\t\tkValue = O[ k ];\n\t\t\t\t\t\t\tcallback.call( T, kValue, k, O );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tk++;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t_augmentArrayPrototypeIndexOf: function () {\n\t\t\t\t/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Compatibility*/\n\t\t\t\treturn Array.prototype.indexOf = function ( searchElement, fromIndex ) {\n\t\t\t\t\tvar k;\n\t\t\t\t\tif ( this == null ) {\n\t\t\t\t\t\tthrow new TypeError( '\"this\" is null or not defined' );\n\t\t\t\t\t}\n\t\t\t\t\tvar o = Object( this );\n\t\t\t\t\tvar len = o.length >>> 0;\n\t\t\t\t\tif ( len === 0 ) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\t\t\t\t\tvar n = +fromIndex || 0;\n\t\t\t\t\tif ( Math.abs( n ) === Infinity ) {\n\t\t\t\t\t\tn = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif ( n >= len ) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\t\t\t\t\tk = Math.max( n >= 0 ? n : len - Math.abs( n ), 0 );\n\t\t\t\t\twhile ( k < len ) {\n\t\t\t\t\t\tif ( k in o && o[ k ] === searchElement ) {\n\t\t\t\t\t\t\treturn k;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tk++;\n\t\t\t\t\t}\n\t\t\t\t\treturn -1;\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t_augmentArrayPrototypeMap: function () {\n\t\t\t\t/*https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map*/\n\t\t\t\treturn Array.prototype.map = function ( callback, thisArg ) {\n\t\t\t\t\tvar T, A, k;\n\t\t\t\t\tvar O = Object( this );\n\t\t\t\t\tvar len = O.length >>> 0;\n\n\t\t\t\t\tif ( this == null ) throw new TypeError( ' this is null or not defined' );\n\t\t\t\t\tif ( typeof callback !== 'function' ) throw new TypeError( callback + ' is not a function' );\n\t\t\t\t\tif ( arguments.length > 1 ) T = thisArg;\n\n\t\t\t\t\tA = new Array( len );\n\t\t\t\t\tk = 0;\n\t\t\t\t\twhile ( k < len ) {\n\t\t\t\t\t\tvar kValue, mappedValue;\n\t\t\t\t\t\tif ( k in O ) {\n\t\t\t\t\t\t\tkValue = O[ k ];\n\t\t\t\t\t\t\tmappedValue = callback.call( T, kValue, k, O );\n\t\t\t\t\t\t\tA[ k ] = mappedValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tk++;\n\t\t\t\t\t}\n\t\t\t\t\treturn A;\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t_augmentObjectCreate: function () {\n\t\t\t\t/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create */\n\t\t\t\treturn Object.create = ( function ( undefined ) {\n\t\t\t\t\tvar Temp = function () {};\n\t\t\t\t\treturn function ( prototype, propertiesObject ) {\n\t\t\t\t\t\tif ( prototype !== Object( prototype ) && prototype !== null ) {\n\t\t\t\t\t\t\tthrow TypeError( 'Argument must be an object, or null' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tTemp.prototype = prototype || {};\n\t\t\t\t\t\tvar result = new Temp();\n\t\t\t\t\t\tTemp.prototype = null;\n\t\t\t\t\t\tif ( propertiesObject !== undefined ) {\n\t\t\t\t\t\t\tObject.defineProperties( result, propertiesObject );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( prototype === null ) {\n\t\t\t\t\t\t\tresult.__proto__ = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t};\n\t\t\t\t} )();\n\t\t\t},\n\n\t\t\t_augmentObjectKeys: function () {\n\t\t\t\t/* From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys*/\n\t\t\t\treturn Object.keys = ( function () {\n\t\t\t\t\tvar hasOwnProperty = Object.prototype.hasOwnProperty,\n\t\t\t\t\t\thasDontEnumBug = !( {\n\t\t\t\t\t\t\ttoString: null\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.propertyIsEnumerable( 'toString' ),\n\t\t\t\t\t\tdontEnums = [\n\t\t\t\t\t\t\t\t'toString',\n\t\t\t\t\t\t\t\t'toLocaleString',\n\t\t\t\t\t\t\t\t'valueOf',\n\t\t\t\t\t\t\t\t'hasOwnProperty',\n\t\t\t\t\t\t\t\t'isPrototypeOf',\n\t\t\t\t\t\t\t\t'propertyIsEnumerable',\n\t\t\t\t\t\t\t\t'constructor'\n\t\t\t\t\t\t\t ],\n\t\t\t\t\t\tdontEnumsLength = dontEnums.length;\n\t\t\t\t\treturn function ( obj ) {\n\t\t\t\t\t\tif ( typeof obj !== 'object' && ( typeof obj !== 'function' || obj === null ) ) {\n\t\t\t\t\t\t\tthrow new TypeError( 'Object.keys called on non-object' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar result = [],\n\t\t\t\t\t\t\tprop, i;\n\t\t\t\t\t\tfor ( prop in obj ) {\n\t\t\t\t\t\t\tif ( hasOwnProperty.call( obj, prop ) ) {\n\t\t\t\t\t\t\t\tresult.push( prop );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( hasDontEnumBug ) {\n\t\t\t\t\t\t\tfor ( i = 0; i < dontEnumsLength; i++ ) {\n\t\t\t\t\t\t\t\tif ( hasOwnProperty.call( obj, dontEnums[ i ] ) ) {\n\t\t\t\t\t\t\t\t\tresult.push( dontEnums[ i ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t};\n\t\t\t\t}() );\n\t\t\t},\n\t\t\t_augmentStringTrim: function () {\n\t\t\t\t/*https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim*/\n\t\t\t\treturn String.prototype.trim = function () {\n\t\t\t\t\treturn this.replace( /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '' );\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t_augmentTextContent: function () {\n\t\t\t\t/*https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent*/\n\t\t\t\t( function () {\n\t\t\t\t\tvar innerText = Object.getOwnPropertyDescriptor( Element.prototype, \"innerText\" );\n\t\t\t\t\tObject.defineProperty( Element.prototype, \"textContent\", {\n\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\treturn innerText.get.call( this );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tset: function ( s ) {\n\t\t\t\t\t\t\treturn innerText.set.call( this, s );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} )();\n\t\t\t}\n\t\t}\n };\n\treturn POS.init();\n} )();\n\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\n/*\nThe AE.mura object will be the returned result of a self-invoked function. This allows us to expose methods\nfor use by other modules while protecting some variables in a closure. If the AE.mura object is already\ndefined then it's not altered. This prevents us from running the entire function each time one of its\ninternal methods are called.\n*/\nAE.mura = AE.mura || (function(){\n\t/*\n\tDEPENDENCIES: AE\n\t*/\n\tvar APP = {\n\t\tinit:function() {\n\t\t\t// MURA Form Post-Processing Hook\n\t\t\tmura.DisplayObject.Form.reopen({\n\t\t\t\tonAfterRender:function(){ APP.asyncFormsRendered(); }//,\n\t\t\t\t//onSubmit:function(){ return APP.validateAll(); }\n\t\t\t});\n\t\t},\n\t\tasyncFormsRendered:function(){\n\t\t\tvar frm_selector = 'form.mura-form';\n\t\t\tvar $forms = $(frm_selector);\n\t\t\tvar $inputs = $(frm_selector+' input,'+frm_selector+' textarea');\n\t\t\tvar $requiredInputs = $(frm_selector+' div.mura-control-group.req input,'+frm_selector+' div.mura-control-group.req textarea');\n\t\t\tvar $checksAndRadios = $inputs.filter('input[type=\"radio\"],input[type=\"checkbox\"]');\n\t\t\tvar $requiredCheckboxes = $(frm_selector+' div.mura-control-group.requiredCheckbox input[type=\"checkbox\"]');\n\t\t\tvar $submits = $(frm_selector+' button.form-submit');\n\t\t\tvar $stateDropdowns = $(frm_selector+' select.state--select');\n\t\t\tvar $countryDropdowns = $(frm_selector+' select.country--select');\n\t\t\tvar $motorHomeCountryDropdowns = $(frm_selector+' select.motorhome__select--country');\n\t\t\tvar $motorHomeCityDropdowns = $(frm_selector+' select.motorhome__select--city');\n\t\t\tvar $chauffeurCountryDropdowns = $(frm_selector+' select.chauffeur__select--country');\n\t\t\tvar $chauffeurCityDropdowns = $(frm_selector+' select.chauffeur__select--city');\n\t\t\t$(frm_selector+' select').wrap('<div class=\"styled--select\"></div>');\n\n\t\t\t// Process Input Data Attributes\n\t\t\t$.each($inputs,function(j) {\n\t\t\t\tif (typeof this['title'] == 'string') {\n\t\t\t\t\t// Collect the data attribute string from MURA input title\n\t\t\t\t\tvar rawDataAttr = this['title'].match(/--.*--/);\n\t\t\t\t\tif (rawDataAttr !== null) {\n\t\t\t\t\t\t// If true, rawDataAttr[0] WILL exist and be a string per match() docs\n\t\t\t\t\t\tvar theseDataAttr = rawDataAttr[0].replace(/--/g,'').split(';');\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Remove data attribute string from MURA input title\n\t\t\t\t\t\tthis['title'] = $.trim(this['title'].replace(rawDataAttr[0],''));\n\t\t\t\t\t\tfor (var dtat=0;dtat<theseDataAttr.length;dtat++) {\n\t\t\t\t\t\t\tvar thisAttr = theseDataAttr[dtat].split('=');\n\t\t\t\t\t\t\tif (thisAttr.length > 1) {\n\t\t\t\t\t\t\t\t$(this).attr('data-'+thisAttr[0],thisAttr[1]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Switch type of inputs with class passwordInput to password\n\t\t\t$($inputs.filter('.passwordInput')).attr('type','password');\n\n\t\t\t// Actually add the required Attribute to MURA required fields\n\t\t\t$requiredInputs.prop('required',true);\n\n\t\t\t// Give Required Checkboxes the terms_conditions class to trigger AE checkbox validation\n\t\t\t$requiredCheckboxes.addClass('terms_conditions').prop('required',true);\n\t\t\t\n\t\t\t// Fix Radio and Checkbox Markup\n\t\t\t$.each($checksAndRadios,function(i) {\n\t\t\t\tvar this_selector = '#'+this['id'];\n\t\t\t\tvar this_label = this.closest('label');\n\t\t\t\t\n\t\t\t\t// Move Input elements to correct position relative to labels in DOM\n\t\t\t\t$(this_selector).insertBefore(this_label);\n\t\t\t\t\n\t\t\t\t// Make jQueryUI before elements on radio/checkbox labels clickable\n\t\t\t\tif (this['type'] == 'radio') {\n\t\t\t\t\t$(this_label).on('click', function() {\n\t\t\t\t\t\tif (!$(this_selector).prop('checked')) {\n\t\t\t\t\t\t\t$($(this).siblings('input[type=\"radio\"]')).prop('checked',false);\n\t\t\t\t\t\t\t$(this_selector).prop('checked',true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(this_label).on('click', function() {\n\t\t\t\t\t\t$(this_selector).prop('checked',!$(this_selector).prop('checked'));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// Initialize Radio Groups - First Button Selected By Default\n\t\t\t$.each($('.mura-radio-group'),function(k) {\n\t\t\t\t$($(this).children('input[type=\"radio\"]')[0]).prop('checked',true);\n\t\t\t});\n\n\t\t\t// Country/State Dropdown Special Handling\n\t\t\tif ($stateDropdowns.length) {\n\t\t\t\t$.each($stateDropdowns.children('option'),function(l) {\n\t\t\t\t\t// replace entities like & with ASCII characters\n\t\t\t\t\t$(this).html($.parseHTML($(this).text())[0]);\n\n\t\t\t\t\tvar rawCountryClass = $(this).val().match(/.*__/);\n\t\t\t\t\tif (rawCountryClass !== null) {\n\t\t\t\t\t\t// Remove Country Codes from Dropdown values, make them classes\n\t\t\t\t\t\t$(this).addClass(rawCountryClass[0]+'state').val($.trim($(this).val().replace(rawCountryClass[0],'')));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$stateDropdowns.addClass('state_dd_hide');\n\t\t\t\t$($stateDropdowns.parents('div.mura-control-group')).addClass('state_dd_hide');\n\t\t\t\t$($countryDropdowns.children('option[value='+AE.props.countryCode+']')).prop('selected',true);// Default country DD to current site\n\t\t\t\tAE.forms.handleStateMenus($stateDropdowns.closest('form.mura-form'));\n\t\t\t}\n\t\t\t\n\t\t\t// Motorhome City Dropdown Special Handling\n\t\t\tif ($motorHomeCityDropdowns.length) {\n\t\t\t\t$.each($motorHomeCityDropdowns.children('option'),function(l) {\n\t\t\t\t\t// replace entities like & with ASCII characters\n\t\t\t\t\t$(this).html($.parseHTML($(this).text())[0]);\n\n\t\t\t\t\tvar rawCountryClass = $(this).val().match(/.*__/);\n\t\t\t\t\tif (rawCountryClass !== null) {\n\t\t\t\t\t\t// Remove Country Codes from Dropdown values, make them classes\n\t\t\t\t\t\t$(this).addClass(rawCountryClass[0]+'city').val($.trim($(this).val().replace(rawCountryClass[0],'')));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Default country DD to current site\n\t\t\t\t$($motorHomeCountryDropdowns.children('option[value='+AE.props.countryCode+']')).prop('selected',true);\n\t\t\t\t\n\t\t\t\tAE.forms.handleMotorHomeCityMenus($motorHomeCityDropdowns.closest('form.mura-form'));\n\t\t\t}\n\t\t\t\n\t\t\t// Chauffeur City Dropdown Special Handling\n\t\t\tif ($chauffeurCityDropdowns.length) {\n\t\t\t\t$.each($chauffeurCityDropdowns.children('option'),function(l) {\n\t\t\t\t\t// replace entities like & with ASCII characters\n\t\t\t\t\t$(this).html($.parseHTML($(this).text())[0]);\n\n\t\t\t\t\tvar rawCountryClass = $(this).val().match(/.*__/);\n\t\t\t\t\tif (rawCountryClass !== null) {\n\t\t\t\t\t\t// Remove Country Codes from Dropdown values, make them classes\n\t\t\t\t\t\t$(this).addClass(rawCountryClass[0]+'city').val($.trim($(this).val().replace(rawCountryClass[0],'')));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Default country DD to current site\n\t\t\t\t$($chauffeurCountryDropdowns.children('option[value='+AE.props.countryCode+']')).prop('selected',true);\n\n\t\t\t\tAE.forms.handleChauffeurCityMenus($chauffeurCityDropdowns.closest('form.mura-form'));\n\t\t\t}\n\t\t\t\n\t\t\t// Apply Button Styles\n\t\t\tvar arrBtns = ['primary', 'secondary', 'tertiary', 'modify'];\n\t\t\t$.each(arrBtns,function(){\n\t\t\t\t$(frm_selector+'btn--'+this+' button.form-submit').addClass('btn--'+this);\n\t\t\t\t$(frm_selector+'bk--'+this+' button.form-nav:first-of-type').addClass('btn--'+this);\n\t\t\t\t$(frm_selector+'nxt--'+this+' button.form-nav:last-of-type').addClass('btn--'+this);\n\t\t\t\t$(frm_selector+'nxt--'+this+' button.form-nav:only-of-type').addClass('btn--'+this);\n\t\t\t});\n\n\t\t\t/*$(frm_selector+' button.form-nav:not(:only-of-type):first-of-type').css('padding': '0.7em');\n\t\t\t$(frm_selector+' button.form-nav:not(:only-of-type):first-of-type:before').css(\n\t\t\t\t{'float':'left','margin-right':'0.7em','right':'0px','content':'\\f053'}\n\t\t\t);*///Need Proper selector syntax for that NOT clause\n\t\t\t\n\t\t\t/* WEBAE3-3578 : 2020-04-20 : remove AE form validation styling from all Mura-built forms */\n\t\t\t// Finishing Touches\n\t\t\t//AE.ui.applyJQUI(frm_selector);\n\t\t\t//$forms.addClass('validate');\n\t\t\t//if (AE.forms) { AE.forms.applyGuardian($forms); }\n\t\t},\n\t\tvalidateAll:function(){\n\t\t\tvar validInputs = false;\n\t\t\t\n\t\t\t// Run Validation\n\t\t\tif (false) {\n\t\t\t\t// All Inputs Pass Validation\n\t\t\t\tvalidInputs = true;\n\t\t\t}\n\n\t\t\treturn validInputs;\n\t\t}\n\t}\n\treturn APP;\n})();\n\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\n\n/*\nThe AE.mainnav object will be the returned result of a self-invoked function. This allows us to expose methods\nfor use by other modules while protecting some variables in a closure. If the AE.mainnav object is already\ndefined then it's not altered. This prevents us from running the entire function each time one of its\ninternal methods are called.\n*/\nAE.nav = AE.nav || (function(){\n\t/*\n\tDEPENDENCIES: AE, AE.ui\n\t*/\n\tvar APP = {\n\t\tinit:function() {\n\t\t\t// Check for the existance of the variable jsloginStatus since it doesn't always exist\n\t\t\tif (typeof jsloginStatus != 'undefined') {\n\t\t\t\tvar temp_loginStatus = jsloginStatus || window.jsloginStatus;\n\t\t\t} else {\n\t\t\t\tvar temp_loginStatus = false;\n\t\t\t}\n\t\t\t\n\t\t\tAPP.props = {\n\t\t\t\t$primnav \t\t: $('.primnav'),\n\t\t\t\t$primnavList\t: $('#primnav--list'),\n\t\t\t\t$primnavTop \t: $('#primnav--list > li'),\n\t\t\t\t$primDropLinks\t: $('#primnav--list > li > a'),\n\t\t\t\t$primDropDowns\t: $('#primnav--list').find('.has-dropdown'),\n\t\t\t\t$primnavAcct \t: $('#primnav--acct'),\n\t\t\t\t$primnavMember \t: $('#primnav--acct .member_account'),\n\t\t\t\t$primnavModify \t: $('#primnav--acct .modify'),\n\t\t\t\t$primnavManage\t: $('#navManageBooking'),\n\t\t\t\t\n\t\t\t\t$secnav \t\t: $('.secnav'),\n\t\t\t\t$altnavToggler \t: $('.altnav__toggler'),\n\t\t\t\t$altnavAcct \t: $('.altnav__account'),\n\t\t\t\t$altnavContact \t: $('.altnav__contact'),\n\t\t\t\t\n\t\t\t\t$altnav\t\t\t: $('#altnav'),\n\t\t\t\t$altnavList\t\t: $('.altnav__list'),\n\t\t\t\t$altDropDowns\t: $('#altnav').find('.has-dropdown'),\n\t\t\t\t\n\t\t\t\t$selCountry\t\t: $('#secnav__country .sel-country'),\n\t\t\t\t$countryDD\t\t: $('.sitepicker'),\n\t\t\t\t$countryDDclose\t: $('.sitepicker-close'),\n\t\t\t\t$selLanguage\t: $('#secnav__country .sel-language'),\n\t\t\t\t$languageDD\t\t: $('.langpicker'),\n\t\t\t\t$selCtryMobile\t: $('#altnav .sitepicker-mobile'),\n\t\t\t\t$spContMobile\t: $('#sitepicker-mobile'),\n\t\t\t\t$acctContDesk\t: $('.account-signinform'),\n\t\t\t\t$acctContMobile\t: $('#account-signinform-mobile'),\n\t\t\t\t$modContDesk\t: $('.modify-signinform'),\n\t\t\t\t$modContMobile\t: $('#modify-signinform-mobile'),\n\t\t\t\t$contactMobile\t: $('.contact-mobile'),\n\t\t\t\t$memberLoginStatus: temp_loginStatus\n\t\t\t};\n\n\t\t\tAPP.props.$memberLoginStatus = APP.props.$memberLoginStatus == 'true';\n\n\t\t\tvar currentSize = AE.getSiteViewType();\n\t\t\tAPP.props.$allDropDowns = APP.props.$primDropDowns.add( APP.props.$altDropDowns );\n\t\t\tAPP.props.$allSubmenus = APP.props.$allDropDowns.find('.submenu-dropdown');\n\t\t\t\n\t\t\t/*\n\t\t\t\tUntil we find a way to add this through Mura's nav display function (or some other method) we'll\n\t\t\t\tjust add the chevrons and their containers to the dropdown items in our primary and alternate navs.\n\t\t\t*/\n\t\t\tAPP.props.$primDropDowns.children('a').append('<div class=\"drop-toggler-container\"><span class=\"drop-toggler\"><i class=\"fa fa-chevron-down\"></i></span></div>');\n\t\t\tAPP.props.$altDropDowns.children('a').append('<div class=\"drop-toggler-container\"><span class=\"drop-toggler\"><i class=\"fa fa-chevron-circle-down fa-lg\"></i></span></div>');\n\t\t\t\n\t\t\tAE.ui.addBodyClickTask({func: APP.onBodyClick});\n\t\t\t\n\t\t\tAPP.props.$primDropDowns.on({\n\t\t\t\t'touchstart touchmove': function(event) {\n\t\t\t\t\t// Handle click...\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t},\n\t\t\t\t'touchend': function(event) {\n\t\t\t\t\t// Handle click...\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( $('html').hasClass('ua-mobile') ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\tif ( $(this).closest('li').hasClass('open') ) {\n\t\t\t\t\t\t\twindow.location.href = $(this).attr('href');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tAPP.closeAllMenus();\n\t\t\t\t\t\t\t$(this).closest('li').addClass('open');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, \"a.parent-link\");\n\t\t\t\n\t\t\tAPP.props.$altnavList.on({\n\t\t\t\t'click': function(event) {\n\t\t\t\t\tvar $target = $(this).closest('li');\n\t\t\t\t\t// Handle click event\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tAPP.toggleSubMenus($target);\n\t\t\t\t}\n\t\t\t}, \".drop-toggler\");\n\t\t\t\n\t\t\t/* ALTNAV - Mobile and lap version of navigation */\n\t\t\tAPP.props.$secnav.on('click', function(event){\n\t\t\t\tvar $target = $(event.target);\n\t\t\t\t\n\t\t\t\tif ( $target.hasClass('altnav__toggler') ) { // NAVIGATION WINDOW - Mobile\n\t\t\t\t\t// Toggle View state of alt nav\n\t\t\t\t\tAE.ui.handleToggle( $target ); //, APP.props.$altnav\n\t\t\t\t\t\n\t\t\t\t\t// Close member form AND Close Contact info\n\t\t\t\t\t//if (APP.props.$acctContMobile.hasClass('open')) { APP.mobileAccountForm(); APP.props.$altnavAcct.removeClass('open'); }\n\t\t\t\t\t//if (!APP.props.$contactMobile.hasClass('visuallyhidden--palm')) { APP.props.$contactMobile.addClass('visuallyhidden--palm'); APP.props.$altnavContact.removeClass('open'); }\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tvar toggleClickEvent = function(event){\n\t\t\t\t//VM\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t//event.preventDefault();\n\n\t\t\t\treturn $(this).click();\n\t\t\t}\n\n\t\t\tvar toggleClassSwap = function(event){\n\t\t\t\t//VM\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t//event.preventDefault();\n\t\t\t\treturn $(this).addClass('visuallyhidden');\n\t\t\t}\n\n\t\t\tif (APP.props.$memberLoginStatus) {\n\t\t\t\tAPP.props.$primnavMember.find('.dropdown-toggle').on('mouseenter', toggleClickEvent);\n\t\t\t\t\n\t\t\t\tAPP.props.$primnavMember.find('.menu-dropdown').on('mouseleave', toggleClassSwap);\n\t\t\t} else {\n\t\t\t\tAPP.props.$primnavMember.find('.dropdown-toggle').off('mouseenter');\n\t\t\t\t\n\t\t\t\tAPP.props.$primnavMember.find('.menu-dropdown').off('mouseleave');\n\n\t\t\t\tif (AE.props.useWEBAE3_4453) {\n\t\t\t\t\t// WEBAE3-4453 Remove drop down from manage MY booking\n\t\t\t\t\tAPP.props.$primnavModify.find('.dropdown-toggle').removeClass('dropdown-toggle');\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t/* RESERVATION LOOKUP WINDOW - Non Mobile\n\t\t\t\tmouse up as click seems to be to fast on the first hit and does not place the window correctly */\n\t\t\tAPP.props.$primnavModify.find('.dropdown-toggle').on('click', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\t\n\t\t\t\tAPP.props.$primnavList.find('.has-dropdown').addClass('closed');\n\t\t\t\tAPP.props.$acctContDesk.addClass('visuallyhidden');\n\t\t\t\tAPP.props.$modContDesk.position({\n\t\t\t\t\tmy: \"right-12 top+2\",\n\t\t\t\t\tat: \"right bottom\",\n\t\t\t\t\tof: $(event.target)\n\t\t\t\t}).toggleClass('visuallyhidden');\n\t\t\t});\n\t\t\t\n\t\t\t/* FLEX NAV HEIGHT ADJUST */\n\t\t\tif($('.flexNav')[0]){\n\t\t\t\tvar flexNavHeight = $('img.site-logo').height();\n\t\t\t\t$('.flexNav').css('minHeight',(flexNavHeight+12)+'px');\n\t\t\t}\n\n\t\t\t/* SITE PICKER - Non Mobile */\n\t\t\tAPP.props.$selCountry.on('click', function(event){\n\t\t\t\tvar offsetLeft = 0, offsetTop = 0;\n\t\t\t\tAPP.props.$altnav.slideUp();\n\t\t\t\tif ( AE.getSiteViewType() !== 'palm' ) {\n\t\t\t\t\toffsetLeft = $(event.target).closest('.sel-country').offset().left;\n\t\t\t\t\toffsetTop = $(event.target).closest('.sel-country').offset().top + 20;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$('.sitepicker').css({ left: offsetLeft, top: offsetTop });\n\t\t\t\t\n\t\t\t\tAPP.props.$countryDD.toggle();\n\t\t\t\tif ( APP.props.$languageDD.is(':visible') ) {\n\t\t\t\t\tAPP.props.$languageDD.hide();\n\t\t\t\t}\n\n\t\t\t\tsetTimeout( function(){\n\t\t\t\t\t APP.props.$altnav.addClass('visuallyhidden'); \n\t\t\t\t}, 300);\n\t\t\t\t\n\t\t\t});\n\t\t\t\n\t\t\t/* SITE PICKER - Mobile */\n\t\t\tAPP.props.$selCtryMobile.on('click', function(event){\n\t\t\t\tvar $contentDesk = $('#sitepicker .sitepicker-container');\n\t\t\t\tvar $contentMobile = $('#sitepicker-mobile .sitepicker-container');\n\t\t\t\t\n\t\t\t\tif ( !APP.props.$spContMobile.parent('has-dropdown').hasClass('open') ) {\n\t\t\t\t\tAPP.props.$spContMobile.parent('has-dropdown').addClass('open');\n\t\t\t\t\tAPP.props.$spContMobile.append($contentDesk);\n\t\t\t\t} else {\n\t\t\t\t\tAPP.props.$spContMobile.parent('has-dropdown').removeClass('open');\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t/*\tSITE PICKER - Close */\n\t\t\tAPP.props.$countryDDclose.on('click', function(event){\n\t\t\t\tAPP.props.$countryDD.hide();\n\t\t\t});\n\t\t\t\n\t\t\t/* LANGUAGE PICKER */\n\t\t\tAPP.props.$selLanguage.on('click', function(event){\n\t\t\t\tvar $offset = $(event.target).closest('.sel-language').offset();\n\t\t\t\tvar leftPos = $offset.left;\n\t\t\t\t//WEBAE3-3116 lang picker selector caret is on right for TP sites so position menu to right edge\n\t\t\t\tif (AE.props.bIsTpDomain) {\n\t\t\t\t\tvar pickerNavWidth = $(event.target).closest('.sel-language').innerWidth();\n\t\t\t\t\tvar pickerMenuWidth = $('#langpicker').innerWidth();\n\t\t\t\t\tvar leftPos = $offset.left + (pickerNavWidth - pickerMenuWidth - 10);\n\t\t\t\t}\n\t\t\t\t$('.langpicker').css( { left: leftPos, top: ($offset.top + 30) } );\n\t\t\t\tAPP.props.$languageDD.toggle();\n\t\t\t\tAE.ui.hide( APP.props.$allSubmenus );\n\t\t\t\tif ( APP.props.$countryDD.is(':visible') ) {\n\t\t\t\t\tAPP.props.$countryDD.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tAE.addResizeTask({\n\t\t\t\tfunc:function() {\n\t\t\t\t\tAPP.manageResize();\n\t\t\t\t},\n\t\t\t\targs:[]\n\t\t\t});\n\t\t\tAE.addTransitionTask({\n\t\t\t\tfunc:function() {\n\t\t\t\t\t/* HANDLES CONTENT MOVED BY APPEND:\n\t\t\t\t\t\tARGUMENTS: 'Palm View', 'Desk Container', 'Mobile Container', 'Content Appended' */\n\t\t\t\t\tAPP.palmTransition(arguments[0], '.account-signinform', '#account-signinform-mobile', '.login-form'); // Member account login\n\t\t\t\t\tAPP.palmTransition(arguments[0], '#sitepicker', '#sitepicker-mobile', '.sitepicker-container'); // Sitepicker list\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tpalmTransition : function() {\n\t\t\tvar palmContent = $('' + arguments[2] + ' ' + arguments[3] + '')[0];\n\n\t\t\t// Moves content back to original container if not in mobile view\n\t\t\tif ( !arguments[0] ) {\n\t\t\t\t$(''+ arguments[1] + '').append(palmContent);\n\t\t\t}\n\n\t\t\t// remove open states when switching to non mobile view\n\t\t\tif ( APP.currentSize !== 'palm' ) {\n\t\t\t\tAPP.props.$acctContMobile.addClass('closed');\n\t\t\t\tAPP.props.$spContMobile.parent().addClass('closed');\n\t\t\t\tAPP.props.$altnavContact.addClass('closed');\n\t\t\t\tAPP.props.$altnavAcct.addClass('closed');\n\t\t\t\tAPP.props.$altnavToggler.addClass('closed');\n\t\t\t}\n\t\t},\n\t\tmanageResize : function() {\n\t\t\t// Anything that this module may need to do upon resize.\n\t\t\tif ( APP.currentSize !== 'palm' && APP.currentSize !== 'lap' ) {\n\t\t\t\tAE.ui.hide( APP.props.$altnav );\n\t\t\t\t//AE.ui.hide( APP.props.$allSubmenus );\n\t\t\t\tAPP.props.$altDropDowns.find('.submenu-dropdown').hide();\n\t\t\t}\n\t\t\tAPP.props.$countryDD.hide();\n\t\t\tAPP.props.$languageDD.hide();\n\t\t\tAPP.props.$acctContDesk.add(APP.props.$modContDesk).addClass('visuallyhidden');\n\n\t\t\t//APP.props.$primnavTop.addClass('closed');\n\t\t},\n\t\tonBodyClick:function(event, $target){\n\n\t\t\t// WEBAE3-5460 on TP logout, clear aeSearch from local storage\n\t\t\tif($target.hasClass('tpLogout') || $($target.parent()).hasClass('tpLogout')){\t\t\t\t\t\n\t\t\t\tlocalStorage.removeItem('aeSearch');\t\t\n\t\t\t}\n\n\t\t\tif ($target.hasClass('my-account-dropdown')) {\n\t\t\t\tif (!APP.props.$memberLoginStatus) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\n\t\t\t\tAPP.props.$primnavTop.find('.has-dropdown').hide('closed');\n\t\t\t\tAPP.props.$modContDesk.addClass('visuallyhidden');\n\t\t\t\tAPP.props.$acctContDesk.position({\n\t\t\t\t\tmy: \"right-12 top+2\",\n\t\t\t\t\tat: \"right bottom\",\n\t\t\t\t\tof: $(event.target)\n\t\t\t\t}).toggleClass('visuallyhidden');\n\t\t\t}\n\n\t\t\tif ( !$target.closest('ul').hasClass('primnav--list' ) ) {\n\t\t\t\tAPP.props.$primnavList.find('li.open').removeClass('open');\n\t\t\t}\n\n\t\t\t// Close the \"My Account\" sign-in form modal when the user clicks on the x\n\t\t\tif($($target).data('modal-target') == '.account-signinform'){\n\t\t\t\tAPP.props.$acctContDesk.removeClass('open').addClass('closed');\n\t\t\t}\n\n\t\t\tif($($target).data('modal-target') == '.modify-signinform'){\n\t\t\t\tAPP.props.$modContDesk.removeClass('open').addClass('closed');\n\t\t\t}\t\t\n\t\t\t\n\t\t\t// Close the \"My Account\" sign-in form modal when the user clicks anywhere on the page (outside of the modal)\n\t\t\tif ( ($(APP.props.$primnavMember[0]).has($target).length == 0) && (!$(APP.props.$acctContDesk[0]).hasClass('visuallyhidden')) ) {\n\t\t\t\tAPP.props.$acctContDesk.addClass('visuallyhidden');\n\t\t\t}\n\t\t\t\n\t\t\t// Close the \"Manage My Booking\" modal when the user clicks anywhere on the page (outside of the modal)\n\t\t\tif ( ($(APP.props.$primnavModify[0]).has($target).length == 0) && (!$(APP.props.$modContDesk[0]).hasClass('visuallyhidden')) ) {\n\t\t\t\t// Only close the modal if the datepicker calendar is not open\n\t\t\t\tif ($('#ui-datepicker-div').is(':hidden')) {\n\t\t\t\t\tAPP.props.$modContDesk.addClass('visuallyhidden');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif($target.hasClass('trg__drop-toggler')) $target.find('.drop-toggler').click();\n\t\t\t\n\t\t\tif(!$target.closest(\"#sitepicker\").length && !$target.closest(APP.props.$selCountry).length) {\n\t\t\t\tif($(\"#sitepicker\").is(\":visible\")){\n\t\t\t\t\t$(\"#sitepicker\").hide();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tmobileAccountForm: function () {\n\t\t\tvar $contentDesk = $('.account-signinform .login-form');\n\t\t\tvar $contentMobile = $('#account-signinform-mobile .login-form');\n\n\t\t\tif (!APP.props.$acctContMobile.hasClass('open') ) {\n\t\t\t\tAPP.props.$acctContMobile.addClass('open');\n\t\t\t\tAPP.props.$acctContMobile.append($contentDesk);\n\t\t\t} else {\n\t\t\t\tAPP.props.$acctContMobile.removeClass('open');\n\t\t\t\t$('#primnav--acct .account-signinform').append($contentMobile);\n\t\t\t}\n\t\t},\n\t\thandleNavDropdown: function(event) {\n\t\t\t/* \tTargets a link in the primary nav, which is inside an element with the \"has-dropdown\" class.\n\t\t\t\tAdds and removes the \"visuallyhidden\" class to avoid using display:none, thereby maintaining\n\t\t\t\taccessibility for screen readers.\n\t\t\t\t\n\t\t\t\tThis will toggle the dropdown menu for the primary bar and the account menu on the right. */\n\t\t\tvar $dropdown = $(event.target).closest('.has-dropdown');\n\t\t\tvar $submenu = $dropdown.find('.menu-dropdown');\n\t\t\t\n\t\t\tif ( $submenu.hasClass('visuallyhidden') ) {\n\t\t\t\tAE.ui.hide( APP.props.$allSubmenus );\n\t\t\t\tAE.ui.show( $submenu );\n\t\t\t\t//$submenu.removeClass('visuallyhidden');\n\t\t\t} else {\n\t\t\t\t//AE.ui.hide( $submenu );\n\t\t\t\t$submenu.addClass('visuallyhidden');\n\t\t\t}\n\t\t\tAPP.props.$countryDD.hide();\n\t\t\tAPP.props.$languageDD.hide();\n\t\t},\n\t\tcloseAllMenus: function(event) {\n\t\t\tAPP.props.$primDropDowns.removeClass('open').addClass('closed');\n\t\t\tAPP.props.$altDropDowns.removeClass('open').addClass('closed');\n\t\t\t//APP.props.$countryDD.hide();\n\t\t\t//APP.props.$languageDD.hide();\n\t\t},\n\t\ttoggleSubMenus: function (target) {\n\t\t\tvar $submenu = target.find('.submenu-dropdown');\n\t\t\tif ( $submenu.is(':visible') ) {\n\t\t\t\ttarget.find('.drop-toggler > i').removeClass('fa-chevron-circle-up').addClass('fa-chevron-circle-down');\n\t\t\t\t$submenu.slideUp();\n\t\t\t} else {\n\t\t\t\ttarget.find('.drop-toggler > i').removeClass('fa-chevron-circle-down').addClass('fa-chevron-circle-up');\n\t\t\t\t$submenu.slideDown();\n\t\t\t}\n\t\t}\n\n\t}\n\treturn APP;\n})();\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\n/*\nThis object will be the returned result of a self-invoked function. This allows us to expose methods \nfor use by other modules while protecting some variables in a closure. If the object is already \ndefined then it's not altered. This prevents us from running the entire function each time one of its \ninternal methods are called.\n*/\nAE.newsletter = AE.newsletter || (function(){\n\t/*\n\tDEPENDENCIES: AE\n\t*/\n\n\tvar APP = {\n\t\tinit:function() {\n\t\t\tAPP.props = {};\n\t\t\tAE.ui.addBodyClickTask({func: APP.onBodyClick});\n\t\t},\n\t\tfooterSubscribe:function($target) {\n\t\t\tvar fromPromo = ($target.hasClass('promo'))? true : false;\n\t\t\tvar $input = (fromPromo)? $('#newsletter__footer--input--promo') : $('#newsletter__footer--input');\n\t\t\tvar inputContainerSelector = (fromPromo)? '#newsletter__footer--container--promo' : '#newsletter__footer--container';\n\t\t\t$(inputContainerSelector).removeClass('ui-state-invalid');\n\t\t\tif(AE.forms){ AE.forms.emailClean($input); }\n\t\t\t$input.addClass('trulyhidden');\n\t\t\t$target.addClass('trulyhidden');\n\t\t\tAE.ui.addSpinner(inputContainerSelector,{size:'2x',color:'black'});\n\n\t\t\tAPP.genericSubscribe($target,$input,inputContainerSelector);\n\t\t},\n\t\tdiagSubscribe:function($target) {\n\t\t\tvar $input = $('#newsletter__diag--input');\n\t\t\tvar inputContainerSelector = '#newsletter__diag--container';\n\t\t\t$(inputContainerSelector).removeClass('ui-state-invalid');\n\t\t\tif(AE.forms){ AE.forms.emailClean($input); }\n\t\t\t$input.addClass('trulyhidden');\n\t\t\t$target.addClass('trulyhidden');\n\t\t\tAE.ui.addSpinner(inputContainerSelector,{size:'2x',color:'black'});\n\n\t\t\tAPP.genericSubscribe($target,$input,inputContainerSelector);\n\t\t},\n\t\tgenericSubscribe:function($target,$input,inputContainerSelector){\n\t\t\t$.ajax({\n\t\t\t\turl:'/plugins/ae3/lib/BookingAjax.cfc',\n\t\t\t\tdataType:'json',\n\t\t\t\tdata:{\n\t\t\t\t\tmethod \t\t\t: 'emailQuoteNewsletterSignup',\n\t\t\t\t\temail \t\t\t: $input.val(),\n\t\t\t\t\tsubsource \t\t: 'FTR'\n\t\t\t\t}\n\t\t\t}).done(function(data){\n\t\t\t\tAE.ui.removeSpinner(inputContainerSelector);\n\t\t\t\tif(!data.SUCCESS){\n\t\t\t\t\t$(inputContainerSelector).addClass('ui-state-invalid');\n\t\t\t\t\t$target.removeClass('trulyhidden');\n\t\t\t\t\t$input.removeClass('trulyhidden').val('').attr('placeholder',data.MSG);\n\t\t\t\t} else {\n\t\t\t\t\t$input.prop('disabled',true).removeClass('trulyhidden').val(data.MSG);\n\t\t\t\t}\n\t\t\t}).fail(function(){\n\t\t\t\tAE.ui.removeSpinner(inputContainerSelector);\n\t\t\t\t$(inputContainerSelector).addClass('ui-state-invalid');\n\t\t\t\t$target.removeClass('trulyhidden');\n\t\t\t\t$input.removeClass('trulyhidden').val('').attr('placeholder', AE.props.oLang.TXT_TRY_AGAIN);\n\t\t\t});\n\t\t},\n\t\tshowSubscribePopup:function(){\n\t\t\tvar aeSubTrg = 'aeShowSubscribe';\n\t\t\tvar aeNLPopupID = 'newsletterPopupDiag';\n\t\t\tvar aeShowSubscription = localStorage.getItem(aeSubTrg);\n\t\t\tif(aeShowSubscription) {\n\t\t\t\t//console.log('showSubscription', localStorage.getItem(aeSubTrg));\n\t\t\t\t$.ajax({\n\t\t\t\t\ttype: \"GET\",\n\t\t\t\t\turl: '/plugins/ae3/lib/newsletterpopup.cfc',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmethod: 'getModalContent'\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function (result) {\n\t\t\t\t\t\treturned = JSON.parse(result);\n\t\t\t\t\t\tAE.ui.dialog.launch({\n\t\t\t\t\t\t\tid: aeNLPopupID,\n\t\t\t\t\t\t\ttitle: returned.title,\n\t\t\t\t\t\t\tcontent: returned.content,\n\t\t\t\t\t\t\twidth: ( $( window ).width() > 400 ) ? 350 : '80%'\n\t\t\t\t\t\t\t,inline: true\n\t\t\t\t\t\t});\n\t\t\t\t\t\tAE.ui.dialog.update(true);\n\t\t\t\t\t\tlocalStorage.removeItem(aeSubTrg);\n\t\t\t\t\t},\n\t\t\t\t\terror: function(result) {\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}else{\n\t\t\t\t// console.log(localStorage.getItem(aeSubTrg));\n\t\t\t\t// console.log('nothing showSubscription');\n\t\t\t}\n\t\t},\n\t\tonBodyClick:function(event,$target){\n\t\t\tif($target.hasClass('newsletter__footer--button')) {\n\t\t\t\tAPP.footerSubscribe($target);\n\t\t\t}\n\t\t\tif($target.hasClass('newsletter__diag--button')) {\n\t\t\t\tAPP.diagSubscribe($target);\n\t\t\t}\n\t\t}\n\t}\n\treturn APP;\n})();\n\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n/* GOOGLE CUSTOM DIMENSIONS */\n\n/*\nThis object will be the returned result of a self-invoked function. This allows us to expose methods \nfor use by other modules while protecting some variables in a closure. If the object is already \ndefined then it's not altered. This prevents us from running the entire function each time one of its \ninternal methods are called.\n*/\nAE.cd = AE.cd || (function(){\n\t/*\n\tDEPENDENCIES: \n\t\n\tESTABLISHED DIMENSIONS IN GOOGLE ANALYTICS\n\t\tdimension1\t\t// Optimizely active? (Currently not used)\n\t\tdimension2\t\t// Form Path Tracking\n\t\tdimension3\t\t// User ID\n\t\tdimension4\t\t// Number of Visits at Checkout\n\t\tdimension5\t\t// Round Trip of One Way\n\t\tdimension6\t\t// Pickup Location\n\t\tdimension7\t\t// Drop off Location\n\t\tdimension8\t\t// Search Locations\n\t\tdimension9\t\t// Credit Card Used?\n\t\tdimension10\t\t// Number of Matrix Interactions\n\t\tdimension11\t\t// Affilate Name (Removed for lack of reliability)\n\t\tdimension12\t\t// Dynamic Remarketing Item ID\n\t\tdimension13\t\t// Dynamic Remarketing Item ID2\n\t\tdimension14\t\t// Dynamic Remarketing Page Type\n\t*/\n\n\tvar APP = {\n\t\tinit:function() {\n\t\t\tAPP.props = {\n\t\t\t\t$page_type \t\t: AECustomDimension.props.$page_type\t\t\t\t\t\t\t\t// Set the funnel value as property\n\t\t\t};\n\n\t\t\tvar Session_Cookie_Value = AECustomDimension.getCookieValue('SessionStarted');\n\t\t\tif (!Session_Cookie_Value){\n\t\t\t\tAECustomDimension.setCookieValue('SessionStarted', 'true', 0);\n\n\t\t\t\tvar user_id = AECustomDimension.makeid();\n\t\t\t\tAECustomDimension.updateSingleValueCookie(AECustomDimension.props.$cn_user_id, AECustomDimension.props.$user_id, 365*10);\n\t\t\t\t// Start of Session\n\t\t\t\tAECustomDimension.incrementNumberOfVisits();\n\t\t\t\tif (AECustomDimension.props.$visitsIncreased) {\n\t\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'NumberOfVisits', GAACTION: 'New Session', GALABEL: 'Increment Number Of Visits - '+AECustomDimension.props.$numVisits }]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// SET SEARCH CUSTOM DIMENSIONS\n\t\t\t// ============================\n\t\t\t\n\t\t\t// ROUND TRIP OR ONE WAY RENTAL\n\t\t\tif (typeof AECustomDimension.props.$direction !== 'undefined') {\n\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'carSearch', GAACTION: 'direction', GALABEL: AECustomDimension.props.$direction }]);\n\t\t\t}\n\n\t\t\t// PICKUP COUNTRY CODE\n\t\t\tif (typeof AECustomDimension.props.$pickup !== 'undefined') {\n\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'carSearch', GAACTION: 'pickup', GALABEL: AECustomDimension.props.$pickup }]);\n\t\t\t}\n\n\t\t\t// DROP OFF COUNTRY CODE\n\t\t\tif (typeof AECustomDimension.props.$dropoff !== 'undefined') {\n\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'carSearch', GAACTION: 'dropoff', GALABEL: AECustomDimension.props.$dropoff }]);\n\t\t\t}\n\n\t\t\t// LOCATION TYPE\n\t\t\tif (typeof AECustomDimension.props.$loctype !== 'undefined') {\n\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'carSearchLocType', GAACTION: 'locationType', GALABEL: AECustomDimension.props.$loctype }]);\n\t\t\t}\n\n\n\t\t\t// SET CUSTOM DIMENSIONS BY PAGE - NOT ALL STEPS HAVE TRACKING\n\t\t\t// ===========================================================\n\t\t\t\n\t\t\t// ROOT OR HOME\n\t\t\tif (APP.props.$page_type === \"/\"){ } \n\t\t\t\n\t\t\t// SEARCH WAIT SCREEN\n\t\t\telse if ( APP.props.$page_type === \"/search/\" ) { } \n\t\t\t\n\t\t\t// GET RATES MATRIX RESULTS\n\t\t\telse if ( APP.props.$page_type === \"/results/\" ) {\n\n\t\t\t\tvar i = 0;\n\t\t\t\ti = AECustomDimension.zeroPad(i, 2);\n\t\t\t\tvar getrates_Cookie_Value = AECustomDimension.getCurrentCookieValue('getrates_count');\n\n\t\t\t\t//Set get rates view count\n\t\t\t\tif(Session_Cookie_Value !== \"\") {\n\t\t\t\t\tgetrates_Cookie_Value++;\n\t\t\t\t\tAECustomDimension.setCookieValue('getrates_count', getrates_Cookie_Value, 0);\n\t\t\t\t}\n\n\t\t\t\t//Add preceding zero to low value numbers\n\t\t\t\tgetrates_Cookie_Value = AECustomDimension.zeroPad(getrates_Cookie_Value, 2);\n\t\t\t\tAECustomDimension.setDimension('dimension10',i+' Matrix Clicks');\n\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'matrixClicksCount', GAACTION: 'Get Rates View - ' + getrates_Cookie_Value, GALABEL: i+' Matrix Clicks' }]);\n\n\t\t\t\t$('#matrix__wrapper').on('click', function(event){\n\n\t\t\t\t\tvar $target = $(event.target),\n\t\t\t\t\t\t$targetLI = $target.closest('li');\n\n\t\t\t\t\t// Make sure that there's a list item, becaus the user could have clicked on empty space or something with no list item parent.\n\t\t\t\t\tvar rate = ( $targetLI[0] && !$targetLI.hasClass('no-rate') ) ? true : false;\n\n\t\t\t\t\tif (rate) {\n\t\t\t\t\t\tvar tempData = $targetLI.data() || {},cat = _.has(tempData,'category'),sup = _.has(tempData,'supplier');\n\n\t\t\t\t\t\t//Add preceding zero to low value numbers\n\t\t\t\t\t\ti++; i = AECustomDimension.zeroPad(i, 2);\n\t\t\t\t\t\tAECustomDimension.setDimension('dimension10',i+' Matrix Clicks');\n\t\t\t\t\t\t\n\t\t\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'matrixClicksCount', GAACTION: 'Get Rates View - ' + getrates_Cookie_Value, GALABEL: i+' Matrix Clicks' }]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} \n\t\t\t\n\t\t\t// INSURANCE UPGRADE AND OPTIONAL EQUIPTMENT\n\t\t\telse if ( APP.props.$page_type === \"/options/\" ) { } \n\t\t\t\n\t\t\t// CAR CLASS UPGRADE\n\t\t\telse if ( APP.props.$page_type === \"/upgrade/\" ) { } \n\t\t\t\n\t\t\t// CHECKOUT OR BOOKFORM\n\t\t\telse if ( APP.props.$page_type === \"/checkout/\" ) {\n\n\t\t\t\t//Build Credit Card Used Cookie\n\t\t\t\tAECustomDimension.updateSingleValueCookie(AECustomDimension.props.$cn_cc_used, 'no', 365);\n\n\t\t\t\t//If the credit card field is used, update a cookie\n\t\t\t\t$('#cardnumber').on('change', function(event){\n\t\t\t\t\tvar value = $(this).val();\n\t\t\t\t\tif (value !== \"\") {\n\t\t\t\t\t\tAECustomDimension.updateSingleValueCookie(AECustomDimension.props.$cn_cc_used, 'yes', 365);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tAECustomDimension.updateSingleValueCookie(AECustomDimension.props.$cn_cc_used, 'no', 365);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: 'bookform field tracking', GAACTION: 'form load', GALABEL: '00 - Form Load', GAVALUE: 1}]);\n\t\t\t} \n\t\t\t\n\t\t\t// CONFIRMATION OR MAKEBOOKING\n\t\t\telse if ( APP.props.$page_type === \"/confirmation/\" ) { \n\t\t\t\tif (AECustomDimension.props.$ccUsed) {\n\t\t\t\t\tAE.ga.gaArrayProcess([{GACATEGORY: AECustomDimension.props.$cn_cc_used, GAACTION: AECustomDimension.props.$cn_cc_used, GALABEL: AECustomDimension.props.$ccValue }]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn APP;\n})();\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\n/* GOOGLE ANALYTICS SCRIPTING */\n\n/*\nThis object will be the returned result of a self-invoked function. This allows us to expose methods\nfor use by other modules while protecting some variables in a closure. If the object is already\ndefined then it's not altered. This prevents us from running the entire function each time one of its\ninternal methods are called.\n*/\nAE.ga = AE.ga || (function(){\n\t/*\n\tDEPENDENCIES: AE\n\n\n\n\tGOOGLE ANALYTICS to define ga - The following is expected in the head:\n\t(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n\t\t(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n\t\tm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n\t\t})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\t\tga('create', '#variables.GoogleAccount#', 'auto');\n\t\tga('create', 'UA-66348978-1', 'auto', {'name': 'master', 'allowLinker': true}); // master analytics account\n\n\tThe data-gaarray attribute this code operatres on is expected to be a valid JSON array of structs, thus:\n\t\t[\n\t\t\t{'GACATEGORY':'required','GAACTION':'required','GALABEL':'optional','GAVALUE':[INTEGER ONLY (optional)],},\n\t\t\t{'GACATEGORY':'required','GAACTION':'required'},...\n\t\t]\n\tIn ColdFusion, build an array of structs. The structs MUST include the Keys GACATEGORY AND GAACTION, at least,\n\tAND all key names must match the spec above. Then, prepare the CF array for extraction as JSON:\n\t\tgaArray = urlencodedFormat(serializeJSON(CFArray),'utf-8')\n\t*/\n\tvar APP = {\n\t\tinit:function() {\n\t\t\t/*\tThis is where we set variables and things that will only live inside the closure. */\n\t\t\tAPP.props = {\n\t\t\t\t/* jQuery Collections of Objects with Our Google Analytics trigger classes\t*/\n\t\t\t\t$gaClick \t: $('.trg__ga--Click'),/* Objects we want to report to Google Analytics when they are clicked\n\t\t\t\tExample: <button class=\"any others trg__ga--Click\" data-gaarray=\"#gaArray#\">...</button> */\n\t\t\t\t$gaAuto\t\t: $('.trg__ga--Auto'),/* Objects we want to report to Google Analytics as soon as the page loads\n\t\t\t\tExample: <div class=\"any others trg__ga--Auto\" data-gaarray=\"#gaArray#\">...</div> */\n\t\t\t\t$gaChange \t: $('.trg__ga--Change'),\t\t// change event used for selects\n\t\t\t\t$gaChild\t: $('.trg__ga--Child'),\t\t\t// child element where array is stored on parent usually multiple childs\n\t\t\t\t$gaCheck\t: $('.trg__ga--Checkbox'),\t\t// checkbox clicks used when need to know checked state\n\t\t\t\t$gaTime\t\t: $('.trg__ga--Time')\t\t\t// measure time on page but only on initial visit\n\t\t\t};\n\n\t\t\t// Adjusted Bounce for AUS and NZL sites\n\t\t\tif (AE.props.isAUNZ) {\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\tAPP.gaArrayProcess([{GACATEGORY: '15_seconds', GAACTION: 'read'}]);\n\t\t\t\t},15000);\n\t\t\t}\n\n\t\t\t// Page load auto events\n\t\t\t$.each(APP.props.$gaAuto,function(i){// Send data to Google Analytics from each object with trg-gaAuto class\n\t\t\t\tvar gaArray = [];\n\t\t\t\tif(APP.props.$gaAuto[i].attributes['data-gaarray']){\n\t\t\t\t\tgaArray = JSON.parse(decodeURIComponent(APP.props.$gaAuto[i].attributes['data-gaarray'].value));\n\t\t\t\t\tAPP.gaArrayProcess(gaArray);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// Timer event\n\t\t\t$.each(APP.props.$gaTime,function(i){// Send data to Google Analytics from each object with trg--Time class\n\t\t\t\tAPP.timeOnPage();\n\t\t\t});\n\t\t\tAE.ui.addBodyClickTask({func: APP.onBodyClick});\n\t\t\tAE.ui.addBodyChangeTask({func: APP.onBodyChange});\n\t\t},\n\t\tgaArrayProcess:function(gaArray){// Loop Through gaArray JSON object, tracking as you go\n\t\t\tif(gaArray !== null){\n\t\t\t\t$.each(gaArray,function(j){\n\t\t\t\t\tAPP.gaLogEvent(gaArray[j].GACATEGORY, gaArray[j].GAACTION, gaArray[j].GALABEL, gaArray[j].GAVALUE);\n\t\t\t\t\t// if(typeof ga !== 'undefined') checks that the Google Analytics dependency has loaded\n\t\t\t\t\tif(typeof ga !== 'undefined') APP.gaTrackEvent(gaArray[j].GACATEGORY, gaArray[j].GAACTION, gaArray[j].GALABEL, gaArray[j].GAVALUE);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgaLogEvent:function(gaCategory, gaAction, gaLabel, gaValue) {// Write the Event Fields to the console for debugging\n\t\t\t// ga('send', 'event', {'eventCategory': '\" + gaCategory + \"','eventAction': '\" + gaAction+ \"','eventLabel': '\" + gaLabel + \"','eventValue': \" + gaValue + \"});\n\t\t},\n\t\tgaTrackEvent:function(gaCategory, gaAction, gaLabel, gaValue) {// Sends Data to Google Analytics\n\t\t\t//\tNEW Tag Manager setup push variables to predefined GTM object\n\t\t\t//\tSite Account: ga('send', 'event', Category, Action, Label, Value);\n\t\t\taeDataLayer.push({\n\t\t\t 'event' : 'gaEvent',\t\t\t\t// gaEvent is the custom trigger in GTM for an event Tag\n\t\t\t 'eventCategory' : gaCategory,\t\t// Required - category\n\t\t\t 'eventAction' : gaAction,\t\t\t// Required - action\n\t\t\t 'eventLabel' : gaLabel,\t\t\t// Not Required - label\n\t\t\t 'eventValue' : gaValue\t\t\t// Not Required - value NUMERIC\n\t\t\t});\n\t\t\t//\tMaster account handled in GTM\n\t\t},\n\t\tonBodyClick:function(event,$target){\n\n\t\t\t/*SITEPICKER TRACKING*/\n\t\t\t// if ( $target.hasClass('trg__ga--Click-inner') && typeof $target.parent().data('gaarray') !== 'undefined' ) {\n\t\t\t// \tvar item = ( $target.hasClass('matrix__cell') && $target.closest('li').hasClass('no-rate') ) ? false : true;\n\t\t\t// \tif (item) { APP.gaArrayProcess(JSON.parse(decodeURIComponent($target.parent().data('gaarray')))); }\n\t\t\t// }else\n\t\t\tif ( $target.hasClass('trg__ga--Click') && typeof $target.data('gaarray') !== 'undefined' ) {\n\t\t\t\tvar item = ( $target.hasClass('matrix__cell') && $target.closest('li').hasClass('no-rate') ) ? false : true;\n\t\t\t\tif (item) { APP.gaArrayProcess(JSON.parse(decodeURIComponent($target.data('gaarray')))); }\n\t\t\t}\n\n\t\t\tif ( $target.hasClass('trg__ga--Child') && typeof $target.parent().data('gaarray') !== 'undefined' ) {\n\t\t\t\tvar gaObject = JSON.parse(decodeURIComponent($target.parent().data('gaarray')));\n\n\t\t\t\tif ($target.hasClass('dropdown-toggle')) {\n\t\t\t\t\tif ($target.parent().hasClass('open')) { APP.gaArrayProcess(gaObject); }\n\t\t\t\t} else {\n\t\t\t\t\tAPP.gaArrayProcess(gaObject);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( $target.hasClass('trg__ga--Nav') && typeof $target.data('gaarray') !== 'undefined' ) {\n\t\t\t\tvar gaObject = JSON.parse(decodeURIComponent($target.data('gaarray')));\n\n\t\t\t\tif ($target.parent().hasClass('has-dropdown')) {\n\t\t\t\t\tif ($target.parent().hasClass('open')) { APP.gaArrayProcess(gaObject); }\n\t\t\t\t} else {\n\t\t\t\t\tAPP.gaArrayProcess(gaObject);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( $target.hasClass('trg__ga--Checkbox') && typeof $target.data('gaarray') !== 'undefined' ) {\n\t\t\t\tvar gaObject = JSON.parse(decodeURIComponent($target.data('gaarray')));\n\t\t\t\tvar cbStatus = ($target.is(':checked')) ? 'checked' : 'unchecked';\t\t// set action\n\t\t\t\t// Limit injecting check status on case by case basis as placement can vary\n\t\t\t\tif( $target.hasClass('matrix_filter') || $target.hasClass('map_filter') ) {\n\t\t\t\t\tvar addStatus = {'GAACTION' : cbStatus};\t\t\t\t\t\t\t\t// extend and add to gaObject\n\t\t\t\t\t_.extend(gaObject[0], addStatus);\n\t\t\t\t}\n\t\t\t\tif( $target.hasClass('saveQuote-newsletter') ) {\n\t\t\t\t\tvar addStatus = {'GALABEL' : cbStatus};\t\t\t\t\t\t\t\t\t// extend and add to gaObject\n\t\t\t\t\t_.extend(gaObject[0], addStatus);\n\t\t\t\t}\n\t\t\t\tAPP.gaArrayProcess(gaObject);\n\t\t\t}\n\t\t},\n\t\tonBodyChange:function(event,$target){\n\n\t\t\tif ( $target.hasClass('trg__ga--Change') && typeof $target.data('gaarray') !== 'undefined' ) {\n\t\t\t\tvar gaObject = JSON.parse(decodeURIComponent($target.data('gaarray')));\n\t\t\t\tvar selectVal = $target.val();\n\t\t\t\tif ( $target.hasClass('optionalEquip') ) {\n gaObject[0].GALABEL += ' ' + selectVal;\n\t\t\t\t}\n\t\t\t\tAPP.gaArrayProcess(gaObject);\n\t\t\t}\n\t\t},\n\t\ttimeOnPage:function(){\n\t\t\t// Used in affiliate header to track visitors initial time on page\n\t\t\tif (document.referrer.split('/')[2] != document.location.hostname) { // Initial page visit only\n\t\t\t\tsetTimeout(function() { // One second.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"1 sec\"}]);\n\t\t\t\t}, 1000);\n\t\t\t\tsetTimeout(function() { // Two seconds.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"2 sec\"}]);\n\t\t\t\t}, 2000);\n\t\t\t\tsetTimeout(function() { // Five seconds.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"5 sec\"}]);\n\t\t\t\t}, 5000);\n\t\t\t\tsetTimeout(function() { // Ten seconds.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"10 sec\"}]);\n\t\t\t\t}, 10000);\n\t\t\t\tsetTimeout(function() { // Twenty seconds.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"20 sec\"}]);\n\t\t\t\t}, 20000);\n\t\t\t\tsetTimeout(function() { // Thirty seconds.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"30 sec\"}]);\n\t\t\t\t}, 30000);\n\t\t\t\tsetTimeout(function() { // Sixty seconds.\n\t\t\t\t\tAPP.gaArrayProcess([{\"GACATEGORY\":\"TimeOnPage\",\"GAACTION\":\"60 sec\"}]);\n\t\t\t\t}, 60000);\n\t\t\t}\n\t\t}\n\t}\n\treturn APP;\n})();\n\n;var AE = AE || {};\n\nAE.utils = AE.utils || ( function () {\n\t/*\n\tDEPENDENCIES: Any other modules that this one will call.\n\t*/\n\t'use strict';\n\tvar UI = {\n\t\tinit: function () {\n\t\t\t// UI.props = {\n\t\t\t// $myProp : $('#someID'),\n\t\t\t// $myOtherProp : $('.someClass'),\n\t\t\t// };\n\t\t},\n\t\t_groupItemsByPropsInArray: function ( _array, f ) {\n\t\t\t/***\n\t\t\t * Will document use later - simari\n\t\t\t ***/\n\t\t\tvar groups = {};\n\t\t\t_array.forEach( function ( o ) {\n\t\t\t\tvar group = JSON.stringify( f( o ) );\n\t\t\t\tgroups[ group ] = groups[ group ] || [];\n\t\t\t\tgroups[ group ].push( o );\n\t\t\t} );\n\t\t\treturn Object.keys( groups ).map( function ( group ) {\n\t\t\t\treturn groups[ group ];\n\t\t\t} );\n\t\t},\n\t\t_findMatchingPropsInArray: function ( _array, checkProp ) {\n\t\t\t/***\n\t\t\t * Will document use later - simari\n\t\t\t ***/\n\t\t\treturn _array.filter( function ( entry ) {\n\t\t\t\treturn Object.keys( checkProp ).every( function ( key ) {\n\t\t\t\t\treturn entry[ key ] === checkProp[ key ];\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\t\t_deleteEmptyObjsByValFromArray: function ( _array, deleteValue ) {\n\t\t\t/***\n\t\t\t * Will document use later - simari\n\t\t\t ***/\n\t\t\tfor ( var i = 0; i < _array.length; i++ ) {\n\t\t\t\tif ( _array[ i ] == deleteValue ) {\n\t\t\t\t\t_array.splice( i, 1 );\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn _array;\n\t\t},\n\t\t_sortPropByAlphaInArray: function ( _array, sortProp ) {\n\t\t\t/***\n\t\t\t * Will document use later - simari\n\t\t\t ***/\n\t\t\treturn _array.sort( function ( a, b ) {\n\t\t\t\tif ( a[ sortProp ] < b[ sortProp ] ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif ( a[ sortProp ] > b[ sortProp ] ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t} );\n\t\t},\n\t\t_removeDuplicateObjectsFromArray: function ( _array, filterProp ) {\n\t\t\t/***\n\t\t\t * Will document use later - simari\n\t\t\t ***/\n\t\t\tvar _tempArr = new Array();\n\t\t\tvar _matchLocTitle = {};\n\t\t\tfor ( var i in _array ) {\n\t\t\t\t( typeof _array[ i ] != 'function' ) ? _matchLocTitle[ _array[ i ][ filterProp ] ] = _array[ i ] : void(0);\n\t\t\t}\n\t\t\tfor ( var i in _matchLocTitle ) {\n\t\t\t\t_tempArr.push( ( typeof _array[ i ] != 'function' ) ? _matchLocTitle[ i ] : void(0));\n\t\t\t}\n\t\t\treturn _tempArr;\n\t\t},\n\t\t_checkValueAlreadyExistsInArray: function ( _array, value ) {\n\t\t\t/***\n\t\t\t * Will document use later - simari\n\t\t\t ***/\n\t\t\treturn _array.indexOf( value ) > -1;\n\t\t\t}\n\t\t\t// ,\n\t\t\t// manageResize : function() {\n\t\t\t// /* Anything that this module may need to do upon resize. */\n\t\t\t// }\n\t\t};\n\t\treturn UI;\n\t} )();\n\n;\nvar AE = AE || {};\n/*Specifically for Safari Private Browsing mode.*/\nAE.privateBrowsing = AE.privateBrowsing || (function () {\n /*DEPENDENCIES: AE.js*/\n 'use strict';\n\n\n\n\n var UI = {\n init: function () {\n\n var cookieCheck = AECookie.props.cookiesEnabled();\n\n UI.props = {\n _localStorage: '',\n _sessionStorage: '',\n checkCookies: cookieCheck,\n privateSessionPolyfill: UI._checkLocalStorageAvailability,\n usePolyfill: UI._localStoragePolyfill,\n requireCookieNotification: true,\n cookieNotificationShown: (cookieCheck && (AECookie != undefined && AECookie.read('cookieNotificationShown'))) ? true : false,\n userEngagedNotification: (cookieCheck && (AECookie != undefined && AECookie.read('userEngagedNotification'))) ? true : false,\n cookieExpires: 60,\n activeNotification: '',\n messaging: {\n // defaultCookieMessage: AE.props.cookie_support.DEFAULT_COOKIE_USE,\n defaultCookieMessage: AE.props.cookie_support.DEFAULT_FROM_AE2,\n defaultCloseButton: AE.props.cookie_support.CLOSE_BUTTON,\n noCookieSupportTitle: AE.props.cookie_support.WARNING_TITLE,\n noCookieSupportMessage: AE.props.cookie_support.WARNING_TEXT,\n moreInfoMessage: AE.props.cookie_support.INFO_LINK, // privacy text\n moreInfoLink: location.origin + '/' + AE.props.cookie_support.INFO_LINK_URL, // link to privacy\n confirmCookieSupportMessage: AE.props.cookie_support.DEFAULT_COOKIE_USE\n }\n };\n if ($('.whitelabel-if')[0]) {// WEBAE3-4006 Suppress cookie alert for iframes\n UI.props.cookieNotificationShown = true;\n }\n AE.ui.addBodyClickTask({\n func: UI.onBodyClick\n });\n\n /*\n * Pass: var $obj = {'title':…,'message':…}; into UI._tryLaunch();\n */\n UI.mainSearch();\n },\n mainSearch: function () {\n /* Check for cookie support before augmenting localStorage polyfill. */\n if (UI.props.checkCookies) {\n if (AE.props.bWhiteLabel || AE.props.bIsTpDomain) {//WEBAE3-2442 - no cookie notice on TP sites\n UI.props.cookieNotificationShown = true;\n } else {\n UI._cookiesEnabled();\n }\n } else {\n UI._cookiesDisabled();\n }\n },\n _cookiesEnabled: function () {\n UI._tryLaunch({\n 'title': '',\n 'message': UI.props.messaging.defaultCookieMessage\n });\n /* Cookies are enabled, check for localStorage support. Augment as necessary.*/\n return UI.props.privateSessionPolyfill() ? UI.props.usePolyfill() : false;\n },\n\n _cookiesDisabled: function () {\n UI._tryLaunch({\n 'title': UI.props.messaging.noCookieSupportTitle,\n 'message': UI.props.messaging.noCookieSupportMessage\n }, false);\n\n return false;\n },\n\n _tryLaunch: function (obj, cookieSupport) {\n var _title = obj.title || false;\n var _message = obj.message || false;\n var hasCookieSupport = cookieSupport || true;\n\n\n // WEBAE3-4907 - Remove the setting of \"cookieNotificationShown\" & \"userEngagedNotification\" cookies\n /*\n if (!UI.props.cookieNotificationShown) { // || !UI.props.userEngagedNotification\n\n if (!UI.props.cookieNotificationShown) {\n UI.props.cookieNotificationShown = true;\n AECookie.new({\n name: 'cookieNotificationShown',\n value: 'true',\n encodeValue: 'true',\n daysToLive: 0,\n minutesToLive: UI.props.cookieExpires\n });\n }\n\n // WEBAE3-4868 Remove existing cookie consent bar\n UI._showCookieNotification({\n 'title': _title,\n 'message': _message\n }, hasCookieSupport);\n \n }\n */\n\n },\n _showCookieNotification: function (obj, cookieSupport) {\n \n var _title = obj.title || false;\n var _message = obj.message || false;\n\n\n var hasCookieSupport = cookieSupport || true;\n var $warningTitleHolder = '';\n var $warningTitle = '';\n var notificationHtml='';\n var $warningMessage = $('<p/>', {\n 'html': _message\n });\n\n if (_title) {\n /*\n * This is a default cookie notification with a title…\n */\n $warningTitleHolder = $('<div/>', {\n class: 'ui-cookie-support-wrap--inner ui-cookie-support-title'\n });\n $warningTitle = $('<h2/>', {\n 'html': _title\n });\n }else{\n $warningMessage.addClass('valign--middle');\n }\n\n var $cookieSupportNotificationWindow = $('<div/>', {\n id: 'ui-cookie-support-notification',\n role: 'alertdialog'\n });\n var $warningMsgWrapper = $('<div/>', {\n class: 'ui-cookie-support-message-wrap'\n });\n var $warningTitleHolder = $('<div/>', {\n class: 'ui-cookie-support-wrap--inner ui-cookie-support-title'\n });\n var $warningMessageHolder = $('<div/>', {\n class: 'ui-cookie-support-wrap--inner ui-cookie-support-message message-flex-start'\n });\n var _notificationRef = $cookieSupportNotificationWindow.attr('id');\n\n UI.props.activeNotification = _notificationRef;\n\n /*WEBAE3-4470\n 1- Replace \"ok\" button in current Cookie Notification with \"Accept\", \"Decline\" & \"Customize \n 2- Settings\" buttons\n 3- When \"customize Settings\" button is clicked, launch new “Cookie Preference†modal\n */\n// change to say accept \n var $dismissNotificationBtn = $('<button/>', {\n class: 'ui-cookie-support-dismiss-button ui-cookie-support-dismiss-link ui-warn-flag-close-btn ui-top-notification-close-btn',\n html: UI.props.messaging.defaultCloseButton,\n for: UI.props.activeNotification\n });\n//add decline btn need to fix border so it fits \n var $dismissNotificationBtnDecline = $('<button/>', {\n class: 'ui-cookie-support-dismiss-button ui-cookie-support-dismiss-link ui-warn-flag-close-btn ui-top-notification-close-btn declineBtn',\n html: \"decline\"\n //for: UI.props.activeNotification\n });\n //customize btn\n var $dismissNotificationBtnCustSet = $('<button/>', {\n class: 'ui-cookie-support-dismiss-button ui-cookie-support-dismiss-link ui-warn-flag-close-btn ui-top-notification-close-btn custSetBtn',\n html: \"customize Settings \"\n //for: UI.props.activeNotification\n });\n\n\n\n\n\n\n if(_message == UI.props.messaging.defaultCookieMessage){\n notificationHtml = '';\n }else{\n notificationHtml = '<small><a class=\"ui-cookie-support-dismiss-link\" for=\"' + UI.props.activeNotification + '\" href=\"' + UI.props.messaging.moreInfoLink + '\"> ' + UI.props.messaging.moreInfoMessage + '</a></small>';\n }\n\n var $moreInfoLink = $('<span/>', {\n 'html': notificationHtml\n });\n\n var $btnWrap = $('<div/>', {\n 'class': 'message-flex-end'\n });\n\n var $moreInfoWrapper = $('<div/>', {\n 'class': 'more-info-wrapper'\n });\n\n $warningTitleHolder.append($warningTitle);\n $btnWrap.append($dismissNotificationBtn);\n//4470 add new btn to container \n $btnWrap.append($dismissNotificationBtnDecline);\n $btnWrap.append($dismissNotificationBtnCustSet);\n// \n\n $warningMsgWrapper.append($warningTitleHolder, $moreInfoWrapper\n .append($warningMessageHolder\n .append($warningMessage, $moreInfoLink), $btnWrap));\n\n if (!_title) {\n \n $warningTitleHolder.remove();\n }\n $cookieSupportNotificationWindow.prepend($warningMsgWrapper);\n\n return (AE.props.$scrollContent.has('#' + UI.props.activeNotification).length == 0) ? UI._fn_launchNotification($dismissNotificationBtn, $cookieSupportNotificationWindow, hasCookieSupport) : false;\n },\n\n _hideCookieNotification: function (trigger, dialog) {\n\n var $trigger = trigger;\n var $notification = dialog;\n $trigger.addClass('ui-warn--out').removeClass('ui-warn--in');\n\n return $notification.slideUp('slow');\n },\n\n _fn_launchNotification: function (trigger, dialog, hasCookieSupport) {\n\n if (!hasCookieSupport) {\n AE.ga.gaArrayProcess([{\n GACATEGORY: 'cookieSupport',\n GAACTION: 'noCookieSupport',\n GALABEL: 'noCookieSupportMessage'\n }]);\n }\n\n AE.props.$scrollContent.prepend(dialog.hide());\n\n return dialog.slideDown('slow');\n },\n\n _checkLocalStorageAvailability: function () {\n var _reqPolyfill;\n try {\n if (!window.localStorage || !window.sessionStorage) throw \"exception\";\n localStorage.setItem('storage_test', 1);\n localStorage.removeItem('storage_test');\n _reqPolyfill = false;\n } catch (e) {\n _reqPolyfill = true;\n }\n return _reqPolyfill;\n },\n\n _localStoragePolyfill: function () {\n /*HAD TO MOVE FUNCTION INTO AE.JS AS I'M CURRENTLY UNABLE TO OVERWRITE WINDOW.LOCALSTORAGE FROM THIS MODULE, WILL INVESTIGATE FURTHER*/\n return AE._augmentPrivateBrowsingLocalStorage();\n },\n onBodyClick: function (event, target) {\n\n var $target = $(target);\n var shouldCloseNotification = $target.hasClass('ui-cookie-support-dismiss-link');\n var $notification = $('#' + $target.attr('for'));\n var isCloseBtn = $target.hasClass('ui-cookie-support-dismiss-button');\n var $getCloseBtn = isCloseBtn ? $target : $notification.find('.ui-cookie-support-dismiss-button');\n\n\n//WEBAE-4470\n//var testcontent = AEdata.booking.quote.oLang.CANCELINS_MODAL; \n//this is for local testing puposes for demo and placement \nvar ModalTextTest =\"<h4>Privacy Preference Center</h4><p>In order for websites to provide relevant information to its visitors, and cater their experience, websites may store and retrieve data from your web browser. This action is done in the form of cookies. Cookies are generally installed on your browser to be used by the same website at a later date to enhance your overall experience. Cookies may contain information about you, your device, your technical hardware, your preferences, and any other relevant information that will help in providing visitors with a more personalized visit. <br/><br/>The use of cookies is optional, and as Auto Europe takes privacy seriously, we provide you with an option not to use these during your visit. You can pick and choose what cookie types to accept and reject – however, by restricting some cookies, we may not be able to provide you with the full website experience, offer certain services and can even stop the website from working properly. Following is a more in-depth explanation of the cookies we use on our site.</p> <a href='/privacy#agb8'>[More Information]</a><p></p>\";\n// mocked up here \n/*var accordion =\"<div class='AccContainer'> <div class='openShut'> <div class='plus-minus'></div><h4>Header 1 </h4> </div><div class='Acontent'> <div> this is content 1 </div></div></div><div class='AccContainer'> <div class='openShut'> <div class='plus-minus'></div><h4>Header 2 </h4> </div><div class='Acontent'> <div class='inline-block pos-l'> this is content 3 </div><div class='inline-block pos-r'> <label class='switch'> <input type='checkbox'> <span class='slider round'></span> </label> </div></div></div><div class='AccContainer'> <div class='openShut'> <div class='plus-minus'></div><h4>Header 3 </h4> </div><div class='Acontent'> <div class='inline-block pos-l'> this is content 3 </div><div class='inline-block pos-r'> <label class='switch'> <input type='checkbox'> <span class='slider round'></span> </label> </div></div></div><div class='AccContainer'> <div class='openShut'> <div class='plus-minus'></div><h4>Header 4 </h4> </div><div class='Acontent'> <div class='inline-block pos-l'> this is content 4 </div><div class='inline-block pos-r'> <label class='switch'> <input type='checkbox'> <span class='slider round'></span> </label> </div></div></div>\" ;\n\n*/\n\nvar accordion=\"<div class='AccContainer'><div class='openShut'><div class='pos-l'><div class='plus-minus'></div><h4>Functional cookies </h4></div><div class='pos-r allways_txt'>Always Active</div></div><div class='Acontent'><div>this is content 1 </div></div></div><div class='AccContainer'><div class='openShut'><div class='pos-l'><div class='plus-minus'></div><h4>Analytical cookies </h4></div><div class='pos-r w_switch'><label class='switch'> <input type='checkbox'> <span class='slider round'></span></label></div></div><div class='Acontent'><div>this is content 1 </div></div></div><div class='AccContainer'><div class='openShut'><div class='pos-l'><div class='plus-minus'></div><h4>Marketing cookies </h4></div><div class='pos-r w_switch'><label class='switch'> <input type='checkbox'> <span class='slider round'></span></label></div></div><div class='Acontent'><div>this is content 1 </div></div></div>\"\n//\n\n //this is behaving wonky\n\n//var openFirst =false;\n //$(\".Acontent\").hide();\n /*if(openFirst){\n $(\".Acontent\").first().show();\n $(\".plus-minus\").first().addClass(\"minus\");\n }*/\n \n $('.openShut').click(function(){\n // $(this).children('.plus-minus').toggleClass('minus');\n \n if($(this).next().is(':visible')){\n $(this).next().hide();\n $(this).parent().removeClass('AccContainerActive');\n\n }else{\n $(this).next().show();\n $(this).parent().addClass('AccContainerActive');\n }\n });\n\n//to do: see if all UI elements shown in description exist or I need to create them \n//does decline have any functionality \n//display these button in line with eachother not stacked \n if($target.hasClass('custSetBtn')){\n \n AE.ui.dialog.launch(\"#save-quote\", { content:\"\" } );\n AE.ui.dialog.addContent( ModalTextTest + accordion );\n }\n//\n\n//// function for ok/accept btn-------\n if (shouldCloseNotification) {\n//console.log(\"shouldCloseNotification\");\n // WEBAE3-4907 - Remove the setting of \"cookieNotificationShown\" & \"userEngagedNotification\" cookies\n /*\n if (!UI.props.userEngagedNotification) {\n UI.props.userEngagedNotification = true;\n AECookie.new({\n name: 'userEngagedNotification',\n value: 'true',\n encodeValue: 'true',\n daysToLive: 0,\n minutesToLive: UI.props.cookieExpires\n });\n }\n */\n\n if (isCloseBtn) {\n event.preventDefault ? event.preventDefault() : (event.returnValue = false);\n }\n\n return UI._hideCookieNotification($getCloseBtn, $notification);\n }///end function for ok/accept btn-----\n }\n };\n return UI;\n\n\n})();\nfunction initMap() {\r\n //console.log('Here')\r\n };\r\n\r\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\r\n\r\n/*\r\n*/\r\nAE.maps = AE.maps || (function(){\r\n\t/*\r\n\tDEPENDENCIES: AE, AE.ui\r\n\t*/\r\n\tvar APP = {\r\n\t\tinit:function() {\r\n\t\t\tAPP.props = {\r\n\t\t\t\t$mapAPILoaded\t\t: false,\t\t// is Map API currently loaded\r\n\t\t\t\t$dfd_api\t\t\t: $.Deferred(),\t// Deferred API script\r\n\t\t\t\t$dfd_markers\t\t: $.Deferred()\t// Deferred Markers with labels script\r\n\t\t\t};\r\n\r\n\t\t\t// Map pins image locations should be moved to a global folder\r\n\t\t\t// probably need to refresh look after it's all working.\r\n\t\t\tAPP.pin_image = {\r\n\t\t\t\tD: {//city\r\n\t\t\t\t\ticon: AE.props.muraThemePath+'/images/map/city_green.png',\r\n\t\t\t\t\tnone: AE.props.muraThemePath+'/images/map/city_red.png',\r\n\t\t\t\t\tpickup: AE.props.muraThemePath+'/images/map/city_blue.png',\r\n\t\t\t\t\tchosen: AE.props.muraThemePath+'/images/map/chosen.png'\r\n\t\t\t\t},\r\n\t\t\t\tO: {//other (given city icon)\r\n\t\t\t\t\ticon: AE.props.muraThemePath+'/images/map/city_green.png',\r\n\t\t\t\t\tnone: AE.props.muraThemePath+'/images/map/city_red.png',\r\n\t\t\t\t\tpickup: AE.props.muraThemePath+'/images/map/city_blue.png',\r\n\t\t\t\t\tchosen: AE.props.muraThemePath+'/images/map/chosen.png'\r\n\t\t\t\t},\r\n\t\t\t\tR: {//rail\r\n\t\t\t\t\ticon: AE.props.muraThemePath+'/images/map/rail_green.png',\r\n\t\t\t\t\tselected: AE.props.muraThemePath+'/images/map/rail_green.png',\r\n\t\t\t\t\tnone: AE.props.muraThemePath+'/images/map/rail_red.png',\r\n\t\t\t\t\tpickup: AE.props.muraThemePath+'/images/map/rail_blue.png',\r\n\t\t\t\t\tchosen: AE.props.muraThemePath+'/images/map/chosen.png'\r\n\t\t\t\t},\r\n\t\t\t\tA: {//air\r\n\t\t\t\t\ticon: AE.props.muraThemePath+'/images/map/air_green.png',\r\n\t\t\t\t\tnone: AE.props.muraThemePath+'/images/map/air_red.png',\r\n\t\t\t\t\tpickup: AE.props.muraThemePath+'/images/map/air_blue.png',\r\n\t\t\t\t\tchosen: AE.props.muraThemePath+'/images/map/chosen.png'\r\n\t\t\t\t},\r\n\t\t\t\tchosen: AE.props.muraThemePath+'/images/map/chosen.png'\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t/* SHARED & GENERAL MAP FUNCTIONS */\r\n\t/* ================================== */\r\n\r\n\t\t// FUNCTION: Prevent map from loading until ui slide down is complete\r\n\t\trunDrawMap : function($target, dfd_myDeferred) {\r\n\t\t\t// toggle has finished opening run map functions\r\n\t\t\tif ( $target.hasClass('open') ) {\r\n\t\t\t\tdfd_myDeferred.resolve();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// FUNCTION: Load Google Maps API and Marker label script\r\n\t\tloadGoogleMapsAPI : function() {\r\n\t\t\t// OPTIONAL API KEY\r\n\t\t\t// - if global variable has a key add it to API string call otherwise use free blank version\r\n\t\t\t// - also if a key is present it must be an allowed URL set in map admin account\r\n\t\t\tvar stringAPI = (AE.props.googleMapsAPIKey != '') ? '?key=' + AE.props.googleMapsAPIKey + '' : '';\r\n\t\t\t//stringAPI += '&v=3.57';//WEBAEW3-6668 opt out of new version til we can handle it\r\n\t\t\t// CALL GOOGLE MAPS API\r\n\t\t\t$.getScript(\"https://maps.google.com/maps/api/js\"+stringAPI+\"&callback=initMap\", function( data, textStatus, jqxhr ) {\r\n\t\t\t\tAPP.props.$dfd_api.resolve(); // resolve api function\r\n\t\t\t\t\r\n\t\t\t\t// AJAX call to load marker label script after the api is finished loading\r\n\t\t\t\tif (textStatus === 'success') {\r\n\t\t\t\t\t$.ajax({\r\n\t\t\t\t\t\ttype: \"GET\",\r\n\t\t\t\t\t\turl: ''+AE.props.muraThemePath+'/assets/markerwithlabel/markerwithlabel.min.js',\r\n\t\t\t\t\t\tcache: true,\r\n\t\t\t\t\t\tsuccess: function () {\r\n\t\t\t\t\t\t\tAPP.props.$mapAPILoaded = true; // set flag that API and Labels have been loaded\r\n\t\t\t\t\t\t\tAPP.props.$dfd_markers.resolve(); // resolve markers function\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\r\n\t/* DISPLAY OBJECT MAP FUNCTIONS */\r\n\t/* ================================== */\r\n\r\n\t\t// FUNCTION: Call Search Controller to load locations based on City and Country Code parameters\r\n\t\tloadDisplayObjectMap : function (cityName, cntryCode, container, suppName) {\r\n\t\t\tsuppName = suppName || '';\r\n\t\t\t// Call location data from New location build data\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: '/plugins/ae3/lib/searchController.cfc',\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tmethod: 'getCityLocations',\r\n\t\t\t\t\tccc: cntryCode,\r\n\t\t\t\t\tccn: cityName,\r\n\t\t\t\t\tcsn: suppName\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: function( data ) {\r\n\t\t\t\t\t// Search controller retured valid location data\r\n\t\t\t\t\t//if (!window.google && typeof !window.google === 'object' && typeof window.google.maps === 'object')\r\n\t\t\t\t\tif (!window.google || window.google !== 'object') {\r\n\t\t\t\t\t\tAPP.buildRichSnippetJSON(data, cityName, cntryCode);\t// Build Rich Snippets JSON file\r\n\r\n\t\t\t\t\t\tAPP.loadGoogleMapsAPI();\t// Call the function to load maps API\r\n\r\n\t\t\t\t\t\t// When both API and custom markers are done loading draw the map\r\n\t\t\t\t\t\t$.when( APP.props.$dfd_api, APP.props.$dfd_markers ).then(function() {\r\n\t\t\t\t\t\t\tAE.maps.drawLandingLocationMap( data, container, cityName, cntryCode );\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// This is for editing purposes when adjusting the map size and position\r\n\t\t\t\t\t\t// resizing the map does not work and only applies when editing display object\r\n\t\t\t\t\t\tAE.maps.drawLandingLocationMap( data, container, cityName, cntryCode );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t// FUNCTION: draw maps on landing pages, this is a display object include\r\n\t\tdrawLandingLocationMap : function (json, container, city, country) {\r\n\t\t\tif(typeof(muraInlineEditor) !== 'undefined'){\r\n\t\t\t\t$(container).append('Mura Admin Note: Map content will be provided by Google Maps API on live page.');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar mapOptions = {\r\n\t\t\t\tmapTypeControl: false,\r\n\t\t\t\tstreetViewControl: false,\r\n\t\t\t\tscrollwheel: false,\r\n\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t\t\t};\r\n\t\t\tvar map = new google.maps.Map( $(container)[0], mapOptions);\r\n\t\t\tvar bounds = new google.maps.LatLngBounds();\r\n\t\t\tvar markers = [];\r\n\t\t\tvar infowindow = '';\r\n\t\t\tvar locationPoints = [];\r\n\r\n\t\t\t$.each(json, function(index, item) {\r\n\r\n\t\t\t\tvar thisLatLng = new google.maps.LatLng(item.latitude, item.longitude);\t// Add geo coordinates for each location\r\n\t\t\t\tvar pin = setMarkerType(item.hubtype_id);\r\n\t\t\t\tlocationPoints.push({ geo: {lat: item.latitude, lng: item.longitude}, item: item, marker: pin });\t// push coordinates to array\r\n\t\t\t\tbounds.extend(thisLatLng);\t// add marker to larger bounds object\r\n\t\t\t});\r\n\t\t\tmap.fitBounds(bounds);\t// set bounds to encompass all map markers\r\n\t\t\tdrop();\t// drop markers function\r\n\r\n\t\t\t/* Add function if change map object to be a size that is not a fixed width\r\n\t\t\t// Reset map pins to be contained by bounding box on resize\r\n\t\t\tAE.addResizeTask({\r\n\t\t\t\tfunc:function() {\r\n\t\t\t\t\tmap.fitBounds(bounds);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t*/\r\n\r\n\t\t\t// Set hubtype to correct marker image\r\n\t\t\tfunction setMarkerType(hub) {\r\n\t\t\t\tvar pin = 'D';\r\n\t\t\t\tswitch(hub){\r\n\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\tpin = 'A';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\tpin = 'R';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 3,4,5:\r\n\t\t\t\t\t\tpin = 'D';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\treturn pin\r\n\t\t\t}\r\n\r\n\t\t\tfunction drop() {\r\n\t\t\t\t// loop through each location from location array\r\n\t\t\t\tfor (var i = 0; i < locationPoints.length; i++) {\r\n\t\t\t\t\t// drop all markers in two sets\r\n\t\t\t\t\taddMarkerWithTimeout(locationPoints[i], (i % 2) ? 1000 : 2000);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Drop Marker based on time out\r\n\t\t\tfunction addMarkerWithTimeout(items, timeout) {\r\n\t\t\t\twindow.setTimeout(function() {\r\n\t\t\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\t\t\ticon: APP.pin_image[items.marker].icon,\r\n\t\t\t\t\t\tposition: items.geo,\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\tanimation: google.maps.Animation.BOUNCE,\r\n\t\t\t\t\t\toptimized: false\r\n\t\t\t\t\t});\r\n\t\t\t\t\tmarkers.push(marker);\r\n\r\n\t\t\t\t\t// Bounce once then stop animation\r\n\t\t\t\t\tsetTimeout(function(){ marker.setAnimation(null); }, 750);\r\n\r\n\t\t\t\t\tvar addressa = (items.item.locationlabela !== '') ? items.item.locationlabela+'<br/>' : '';\r\n\t\t\t\t\tvar addressb = (items.item.locationlabelb !== '') ? items.item.locationlabelb+'<br/>' : '';\r\n\t\t\t\t\tvar addressc = (items.item.locationlabelc !== '') ? items.item.locationlabelc+'<br/>' : '';\r\n\r\n\t\t\t\t\t// LISENTER EVENT: Marker Click\r\n\t\t\t\t\tgoogle.maps.event.addListener(marker, 'click', function() {\r\n\t\t\t\t\t\tif (infowindow) {\r\n\t\t\t\t\t\t\tinfowindow.close(); // Close all infowindows before opening a new one\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Create infowindow for current marker\r\n\t\t\t\t\t\tinfowindow = new google.maps.InfoWindow();\r\n\t\t\t\t\t\tvar infowindow_markup =\r\n\t\t\t\t\t\t\t'<h6 class=\"push-half--bottom\">'+addressa+addressb+addressc+city+', '+country+'</h6>'+\r\n\t\t\t\t\t\t\t'<div><b>lat: </b>'+items.geo.lat+'°, <b>long: </b>'+items.geo.lng+'°</div>';\r\n\r\n\t\t\t\t\t\tinfowindow.setContent(infowindow_markup);\r\n\t\t\t\t\t\tinfowindow.open(map, marker);\r\n\r\n\t\t\t\t\t\t// sets marker and brings it to front\r\n\t\t\t\t\t\tthis.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);\r\n\t\t\t\t\t});\r\n\t\t\t\t}, timeout);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// FUNCTION: Build Rich Snippet markup JSON file so all map markers show up as a place\r\n\t\tbuildRichSnippetJSON : function (json, city, country) {\r\n\t\t\tvar jsonLD = [];\t// create object\r\n\t\t\t// loop through each item build up in rich snippet format\r\n\t\t\t$.each(json, function(index, item) {\r\n\t\t\t\t// if third address is not blank add it to the address string\r\n\t\t\t\tvar address = (item.locationlabelc !== '') ? item.locationlabelb+' '+item.locationlabelc : item.locationlabelb;\r\n\t\t\t\t// build JSON item with specific rich snippet markup\r\n\t\t\t\tvar json_item = {\r\n\t\t\t\t\t\"@context\" : \"http://schema.org\",\r\n\t\t\t\t\t\"@type\"\t: \"Place\",\r\n\t\t\t\t\t\"name\" : item.locationlabelb,\r\n\t\t\t\t\t\"address\":\r\n\t\t\t\t\t\t[{\r\n\t\t\t\t\t\t\t\"@type\" : \"PostalAddress\",\r\n\t\t\t\t\t\t\t\"addressLocality\" : city,\r\n\t\t\t\t\t\t\t\"addressRegion\" : country,\r\n\t\t\t\t\t\t\t\"streetAddress\" : address,\r\n\t\t\t\t\t\t}],\r\n\t\t\t\t\t\"geo\" :\r\n\t\t\t\t\t\t[{\r\n\t\t\t\t\t\t\t\"@type\" :\"GeoCoordinates\",\r\n\t\t\t\t\t\t\t\"latitude\" : item.latitude,\r\n\t\t\t\t\t\t\t\"longitude\" : item.longitude\r\n\t\t\t\t\t\t}]\r\n\t\t\t\t};\r\n\t\t\t\tjsonLD.push(json_item); // push each item to one array\r\n\t\t\t});\r\n\t\t\t// append json+ld file to head of document so rich snippets are loaded\r\n\t\t\t// $('head').append('<script type=\"application/ld+json\">'+JSON.stringify(jsonLD)+'<\\/script>');\r\n\r\n\t\t\t// WEBAE3-1427\r\n\t\t\t// Now appending to body so that Google's Structured Data Tool may pick it up\r\n\t\t\t// Vanilla JS seems to fail here, jQuery method is working?\r\n\r\n\t\t\tvar code = JSON.stringify(jsonLD);\r\n\t\t\tvar script = document.createElement('script');\r\n\t\t\tscript.setAttribute('type', 'application/ld+json');\r\n\r\n\t\t\tscript.appendChild(document.createTextNode(code));\r\n\t\t\tdocument.body.appendChild(script);\r\n\r\n\t\t\t// $('body').append('<script type=\"application/ld+json\">'+JSON.stringify(jsonLD)+'<\\/script>');\r\n\t\t}\r\n\t}\r\n\treturn APP;\r\n})();\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n/*\nThis object will be the returned result of a self-invoked function. This allows us to expose methods \nfor use by other modules while protecting some variables in a closure. If the object is already \ndefined then it's not altered. This prevents us from running the entire function each time one of its \ninternal methods are called.\n*/\nAE.affiliate = AE.affiliate || (function(){\n\t/*\n\tDEPENDENCIES: AE.ui, AE.ui.dialog\n\t*/\n\tvar APP = {\n\t\tinit:function() {\n\t\t\tAPP.props = {\n\t\t\t\t$checkBox\t\t: \t\t$('#afftools__signup #terms'),\n\t\t\t\t$termsLink\t\t: \t\t$('#afftools__signup label[for=\"terms\"] a'),\n\t\t\t\ttermsAccepted\t:\t\tfalse\n\t\t\t};\n\t\t\t\n\t\t\t// Affiliate navigation tabs\n\t\t\tAE.ui.contentGroup( $('.aff__nav-link'), $('.aff__content'), {visual:true, willSlide:false} );\n\n\t\t\tAE.ui.addBodyClickTask({func: APP.onBodyClick});\n\t\t\tAE.ui.addBodyChangeTask({func:function(event){APP.onBodyChange(event);}});\n\n\t\t\t// Affiliate Terms and Conditions Checkbox\n\t\t\tAPP.props.$checkBox.on('click',function(event){\n\t\t\t\tif(!APP.props.termsAccepted) {\n\t\t\t\t\tAPP.props.$termsLink.click();\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// Affiliate Terms and Conditions Terms Link\n\t\t\tAPP.props.$termsLink.on('click',function(event){\n\t\t\t\tAPP.affTerms(event);\n\t\t\t});\n\n\t\t\tif(AEdata.affiliate && AEdata.affiliate.props){\n\t\t\t\tif(AEdata.affiliate.selectedTab && AEdata.affiliate.selectedTab !== ''){\n\t\t\t\t\t$('.aff__nav-link[data-content=\"'+AEdata.affiliate.selectedTab+'\"]').click();\n\t\t\t\t} else {\n\t\t\t\t\t// Travel Partner accounts default to account view\n\t\t\t\t\tif(AEdata.affiliate.props.isTP && AEdata.affiliate.props.isTP == true) {\n\t\t\t\t\t\t$('#acct').removeClass('visuallyhidden');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('#settings').removeClass('visuallyhidden');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(AEdata.affiliate.props.loadColors){\n\t\t\t\t\t// Color Changer Utility Docs: https://github.com/nathanielwiley/conpigurator\n\t\t\t\t\t/*new Conpigurator('color1',true).addTarget('color1','backgroundColor').update();\n\t\t\t\t\tnew Conpigurator('color2',true).addTarget('color2','backgroundColor').update();\n\t\t\t\t\tnew Conpigurator('color3',true).addTarget('color3','backgroundColor').update();\n\t\t\t\t\tnew Conpigurator('color4',true).addTarget('color4','backgroundColor').update();*/\n\t\t\t\t\t// Color Changer Utility Docs: https://bgrins.github.io/spectrum/\n\t\t\t\t\t$('input.input--spectrum').spectrum({\n\t\t\t\t\t\tpreferredFormat:'hex',\n\t\t\t\t\t\tshowInput:true,\n\t\t\t\t\t\tshowButtons:true,\n\t\t\t\t\t\tchooseText:AEdata.affiliate.oLang.colors.choose,\n\t\t\t\t\t\tcancelText:AEdata.affiliate.oLang.colors.cancel\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\n\t\taffTerms:function(event){\t\n\t\t\tvar haveTerms = (APP.props.$termsLink.data('aff-terms') && APP.props.$termsLink.data('aff-terms').length) ? true : false;\n\t\t\tvar showBtns = true;\n\n\t\t\t// Prevent link for bubbling and also register as a checkbox click\n\t\t\tevent.preventDefault();\n\t\t\t\n\t\t\t// Don't show accept and decline if terms have been checked\n\t\t\tif(APP.props.termsAccepted) { showBtns = false;\t}\n\t\t\t\n\t\t\tif (haveTerms) {\n\t\t\t\tvar termsData = JSON.parse(decodeURIComponent(APP.props.$termsLink.data('aff-terms')));\n\t\t\t\tvar buttonOptions = {};\n\t\t\t\t\n\t\t\t\t// If terms checkbox is not checked show accept and decline buttons\n\t\t\t\tif(showBtns) {\n\t\t\t\t\tvar oButtons = {};// Preparing the Object ahead of the dialog operation allows for Dynamic Button name/text\n\t\t\t\t\toButtons[termsData.ACCEPT] = function() {// Accept Button\n\t\t\t\t\t\tAPP.props.$checkBox.prop('checked',true);\n\t\t\t\t\t\tAPP.props.termsAccepted = true;\n\t\t\t\t\t\tAPP.props.$checkBox.parent().removeClass('ui-state-invalid');\n\t\t\t\t\t\tAE.ui.dialog.close();\n\t\t\t\t\t}\n\t\t\t\t\toButtons[termsData.DECLINE] = function() {// Decline Button\n\t\t\t\t\t\tAPP.props.$checkBox.prop('checked',false);\n\t\t\t\t\t\tAPP.props.$checkBox.parent().addClass('ui-state-invalid');\n\t\t\t\t\t\tAE.ui.dialog.close();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Accept and Decline Terms\n\t\t\t\t\tAE.ui.dialog.launch({\n\t\t\t\t\t\tid:'aff-terms',\n\t\t\t\t\t\tdialogClass: 'top-dialog',\n\t\t\t\t\t\ttitle: termsData.HEAD,\n\t\t\t\t\t\ttype:'standard',\n\t\t\t\t\t\tcontent: termsData.BODY,\n\t\t\t\t\t\tbuttons: oButtons,\n\t\t\t\t\t\tbuttonOpts: {\n\t\t\t\t\t\t\tsetClass: 'align-center',\n\t\t\t\t\t\t\tlastButtonClass: 'btn--base',\n\t\t\t\t\t\t\tfirstButtonClass: 'btn--primary',\n\t\t\t\t\t\t\texclusiveClose: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\twidth: ($(window).width() > 900) ? 850 : '80%'\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// No Buttons as terms already accepted\n\t\t\t\t\tAE.ui.dialog.launch({\n\t\t\t\t\t\tid:'aff-terms',\n\t\t\t\t\t\tdialogClass: 'top-dialog',\n\t\t\t\t\t\ttitle: termsData.HEAD,\n\t\t\t\t\t\ttype:'standard',\n\t\t\t\t\t\tcontent: termsData.BODY,\n\t\t\t\t\t\twidth: ($(window).width() > 900) ? 850 : '80%'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonBodyChange: function(event,$target){\n\t\t\tif(event.target.id === 'affLogo' && event.target.type === 'file'){\n\t\t\t\tif(event.target.value !== ''){\n\t\t\t\t\t$('button.trg--affSiteLogo').attr('type','submit')\n\t\t\t\t\t\t.addClass('btn--primary btn--affOp')\n\t\t\t\t\t\t.removeClass('btn--cancel btn--disabled');\n\t\t\t\t} else {\n\t\t\t\t\t$('button.trg--affSiteLogo').attr('type','button')\n\t\t\t\t\t\t.removeClass('btn--primary btn--affOp')\n\t\t\t\t\t\t.addClass('btn--cancel btn--disabled');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonBodyClick: function(event,$target){\n\t\t\tif($target.hasClass('btn--affOp')){\n\t\t\t\tAE.ui.disableClicks();\n\t\t\t\tAE.forms.addSpinGear( $target );\n\t\t\t\tif($target.hasClass('trg--affSiteColors')){\n\t\t\t\t\t$('input.sp-input').change();\n\t\t\t\t}\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\tif($('.ui-state-invalid').length > 0){\n\t\t\t\t\t\tAE.ui.enableClicks();\n\t\t\t\t\t\tAE.forms.removeSpinGear( $target );\n\t\t\t\t\t\t$('.ui-state-invalid').first().focus();\n\t\t\t\t\t}\n\t\t\t\t},250);\n\t\t\t}\n\t\t}\n\t}\n\treturn APP;\n})();\n;var AE = AE || {}; /* Add to Base object or create it if it doesn't exist. */\n\nAE.feeds = AE.feeds || (function() {\n\t/*\n\tDEPENDENCIES: AE\n\t*/\n\tvar APP = {\n\t\tinit:function() {\n\t\t\tAPP.props = {\n\t\t\t\t$keywords: $('.feedkeywordSearch:visible'),\n\t\t\t\t$bttnfeedSearch: $('.btnFeedSearch:visible'),\n\t\t\t\tstorageAvailable: true\n\t\t\t},\n\n\t\t\tAE.ui.addBodyClickTask({\n\t\t\t\tfunc: APP.onBodyClick\n\t\t\t});\n\n\t\t\t\t\t\ttry { sessionStorage; }\n\t\t\tcatch (err) { APP.props.storageAvailable = false; }\n\n\t\t\tif (!$('div#blog_posts').length) {\n\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\tsessionStorage.removeItem(\"keywords\");\n\t\t\t\t\tsessionStorage.removeItem(\"isSearch\");\n\t\t\t\t\tsessionStorage.removeItem(\"feedListing\");\n\t\t\t\t\tsessionStorage.removeItem(\"isFromPost\");\n\t\t\t\t\tsessionStorage.removeItem(\"pageNo\");\n\t\t\t\t\tsessionStorage.removeItem(\"remoteID\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\tif (!sessionStorage.getItem(\"pageNo\")) { sessionStorage.setItem(\"pageNo\", '1'); }\n\n\t\t\t\t\tif (!sessionStorage.getItem(\"keywords\")) {\n\t\t\t\t\t\tsessionStorage.setItem(\"isSearch\", false);\n\t\t\t\t\t\tsessionStorage.setItem(\"keywords\", '');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (APP.props.$bttnfeedSearch.hasClass('blog_post')) {\n\t\t\t\t\t\tsessionStorage.setItem(\"isFromPost\",false);\n\t\t\t\t\t\tsessionStorage.setItem(\"feedListing\",false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsessionStorage.setItem(\"feedListing\",true);\n\t\t\t\t\t\tsessionStorage.setItem(\"remoteID\",$(\"#feedRemoteID\").val());\n\t\t\t\t\t}\n\n\t\t\t\t\tif (sessionStorage.getItem(\"keywords\")) {\n\t\t\t\t\t\t$(\"input#keywords\").val(decodeURI(sessionStorage.getItem(\"keywords\")));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t$(\"#feedResultsBykeyword\").html('');\n\t\t\t\t$(\"#feedResults\").addClass('visuallyhidden');\n\t\t\t\t$(\"#feedResultsBykeyword\").addClass('visuallyhidden');\n\n\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\tif (sessionStorage.getItem(\"feedListing\") && sessionStorage.getItem(\"feedListing\")=='true' && sessionStorage.getItem(\"isSearch\") == 'true') {\n\t\t\t\t\t\tAPP.loadCustomFeed(false,APP.props.$bttnfeedSearch);\n\t\t\t\t\t\t$(\"div#feedResults\").addClass('visuallyhidden');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"div#feedResults\").removeClass('visuallyhidden');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t$('#keywords,.btnFeedSearch').keydown(function(e) {\n\t\t\t\t\tvar key = e.which;\n\t\t\t\t\tif (key == 13) {\n\t\t\t\t\t\tif (e.which == 13) {\n\t\t\t\t\t\t\tjQuery(this).blur();\n\t\t\t\t\t\t\tjQuery('.btnFeedSearch').focus().click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonBodyClick: function (event, $target) {\n\t\t\tif (event.which !== 13) {\n\t\t\t\tif ($target.attr('id') == 'category_select' && $target.val() != '') {\n\t\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\t\tsessionStorage.removeItem(\"keywords\");\n\t\t\t\t\t\tsessionStorage.removeItem(\"isSearch\");\n\t\t\t\t\t\tsessionStorage.setItem(\"feedListing\", false);\n\t\t\t\t\t\tsessionStorage.setItem(\"isFromPost\", false);\n\t\t\t\t\t\tsessionStorage.setItem(\"pageNo\", 1);\n\t\t\t\t\t}\n\t\t\t\t\tvar pathname = window.location.pathname;\n\t\t\t\t\tif\t(pathname != $target.val())\t{\n\t\t\t\t\t\tAPP.changeCategories($target.val());\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\tif ($target.parent().hasClass('readmore')) {\n\t\t\t\t\t\tsessionStorage.setItem(\"feedListing\", false);\n\t\t\t\t\t\tsessionStorage.setItem(\"keywords\", '');\n\t\t\t\t\t\tsessionStorage.setItem(\"isSearch\", false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsessionStorage.setItem(\"feedListing\", true);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ($target.hasClass(\"btnFeedSearch\")) {\n\t\t\t\t\tevent.preventDefault() ;\n\t\t\t\t\tif (APP.props.storageAvailable) { sessionStorage.setItem(\"feedListing\",true); }\n\t\t\t\t\tvar currentSearch = sessionStorage.getItem(\"keywords\");\n\n\t\t\t\t\tvar keywords = encodeURIComponent($(\".feedkeywordSearch:visible\").val());\n\t\t\t\t\tvar baseURL = $($target).data(\"url\");\n\n\t\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\t\tif ($($target).hasClass(\"blog_post\")) {\n\t\t\t\t\t\t\tsessionStorage.setItem(\"isFromPost\", true);\n\t\t\t\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsessionStorage.setItem(\"isFromPost\", false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (keywords.length != 0) {\n\t\t\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\t\t\tsessionStorage.setItem(\"keywords\", keywords);\n\t\t\t\t\t\t\tsessionStorage.setItem(\"isSearch\", true);\n\t\t\t\t\t\t\tif (sessionStorage.getItem(\"keywords\") != currentSearch) {\n\t\t\t\t\t\t\t\tsessionStorage.setItem(\"pageNo\", 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (sessionStorage.getItem(\"isFromPost\") == 'true') {\n\t\t\t\t\t\t\t\twindow.location.href = baseURL;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tAPP.loadCustomFeed(false,$target);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#currentSearch\").val('');\n\t\t\t\t\t\t$(\"#currentPage\").val('');\n\t\t\t\t\t\tif (APP.props.storageAvailable) {\n\t\t\t\t\t\t\tsessionStorage.setItem(\"keywords\", '');\n\t\t\t\t\t\t\tsessionStorage.setItem(\"pageNo\", '1');\n\t\t\t\t\t\t\tsessionStorage.setItem(\"isSearch\", false);\n\t\t\t\t\t\t\tif (sessionStorage.getItem(\"isFromPost\") == 'true') {\n\t\t\t\t\t\t\t\twindow.location.href = baseURL;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"#feedResultsBykeyword\").addClass('visuallyhidden');\n\t\t\t\t\t\t\t\t$(\"#feedResults\").removeClass('visuallyhidden');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ($target.is(\"#blog-page-number\")) {\n\t\t\t\t\tevent.preventDefault() ;\n\t\t\t\t\tif (APP.props.storageAvailable) { sessionStorage.setItem(\"pageNo\", $(event.target).attr('data-page')); }\n\t\t\t\t\tvar str = $target.attr(\"href\");\n\t\t\t\t\tAPP.loadCustomFeed(true,'');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tloadCustomFeed:function(scrollTop,$target) {\n\t\t\tvar cfc = '/plugins/ae3/lib/customFeeds.cfc?method=searchFeed';\n\t\t\tvar remoteID = (APP.props.storageAvailable) ? sessionStorage.getItem('remoteID') : \"\";\n\t\t\tvar keywords = (APP.props.storageAvailable) ? sessionStorage.getItem('keywords') : \"\";\n\t\t\tvar pageNo = (APP.props.storageAvailable) ? sessionStorage.getItem('pageNo') : \"\";\n\n\t\t\t/*WEBAE3-3504: hide so that the searching blog shows up in content_blog.cfm $(\"#search_wait_mess\").html('');\t*/\n\t\t\t$(\"div#search_wait_mess\").removeClass('visuallyhidden');\n\n\t\t\tif ($target && $target.hasClass(\"btnFeedSearch\")) {\n\t\t\t\tAE.forms.addSpinGear($target);\n\t\t\t\t/*WEBAE3-3504: set empty $(\"#feedResultsBykeyword\").html('<h4>Searching Blogs.....</h4>');*/\n\t\t\t\t$(\"#feedResultsBykeyword\").html('');\n\t\t\t}\n\t\t\t\n\t\t\t$.ajax({\n\t\t\t\ttype: \"POST\",\n\t\t\t\turl: cfc,\n\t\t\t\tdataType: 'json',\n\t\t\t\tdata: { remoteID:remoteID, keywords:keywords, pageNo:pageNo },\n\t\t\t\tsuccess: function(result) {\n\t\t\t\t\t$(\"div#search_wait_mess\").addClass('visuallyhidden');\n\t\t\t\t\t$(\"#feedResultsBykeyword\").html('');\n\t\t\t\t\t$(\"#feedResultsBykeyword\").html(result);\n\t\t\t\t\tAPP.showHide('feedResultsBykeyword','feedResults');\n\t\t\t\t\tAE.forms.removeSpinGear($target);\n\t\t\t\t\tif (scrollTop) {\n\t\t\t\t\t\t$('#blog-scroll')[0].scrollIntoView({behavior:'smooth',block: 'start'});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function (xhr, ajaxOptions, thrownError) {\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tshowHide:function(show,hide) {\n\t\t\t$(\"#\" + hide).addClass('visuallyhidden');\n\t\t\t$(\"#\" + show).removeClass('visuallyhidden');\n\t\t},\n\t\tgetUrlParameter:function(name,str) {\n\t\t\tname = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n\t\t\tvar regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\n\t\t\tvar results = regex.exec(str);\n\n\t\t\treturn (results === null) ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n\t\t},\n\t\tchangeCategories:function(url) {\n\t\t\tdocument.location.href = url;\n\t\t}\n\t};\n\n\treturn APP;\n})();\n\n/*\nAE.init.general: Resolves the deferred object for the general list of modules.\n*/\nobjDFD.general.resolve();"],"names":["AE","APP","resizeTasks","scrollTasks","transitionTasks","displayObjects","components","init","props","$bodyElement","$","$scrollContainer","$scrollContent","$stickyWrapper","$siteContainer","$mainFooter","$mainFooterContent","$mainNav","$masthead","$mainNavLink","$mainNavFull","add","isLegacy","hasClass","isIE","googleMapsAPIKey","isAUNZ","oSite","_","isObject","extend","chaosSystem","buildURLObject","transEnd","t","el","document","createElement","transitions","transition","OTransition","MozTransition","WebkitTransition","undefined","style","windowSize","getSiteViewType","aeDataLayer","push","criteoSiteType","getCriteoTagSiteViewType","width","privateBrowsing","nav","legacy","grief","utils","ui","ga","AECookie","read","cd","window","addEventListener","checkAEcd","removeEventListener","forms","maps","account","modal","mura","checkMura","newsletter","feeds","booking","checkWlIframeResizer","wlIframePagesNotToScrollToTheTop","indexOf","path_info","parentIFrame","getPageInfo","parentPageInfo","distanceFromParentTopToIframe","offsetTop","amountToScrollParentWindow","scrollTo","setTimeout","removeAttr","removeClass","find","remove","css","attr","length","matrix","search","debounced","debounce","manageResize","debounceScroll","on","manageScroll","initTasks","func","siteSize","palmTransition","args","addResizeTask","dfd_ready","resolve","postAutoForm","_augmentPrivateBrowsingLocalStorage","Storage","type","createCookie","name","value","days","date","expires","Date","setTime","getTime","toGMTString","cookie","readCookie","c","nameEQ","ca","split","i","charAt","substring","setData","data","encodeURIComponent","JSON","stringify","getSessionName","parse","decodeURIComponent","clear","this","getItem","key","k","ctr","removeItem","setItem","localStorage","sessionStorage","__proto__","task","addScrollTask","addTransitionTask","unshift","footerHeight","newWidth","outerWidth","outerHeight","height","apply","heightAdjust","eleHeight","arguments","each","toPalm","sizes","currentSize","sizeType","url","host","location","hostname","path","pathname","protcol","protocol","query","href","aPairs","aKeyVal","trim","show","getElementById","$resetInput","$resetBttn","$isInCheckout","$isInMemberAccount","$accountLoginForm","$isInLogin","$isLoggedIn","jsloginStatus","$memberDefaultSection","$ObjMember","$ObjAff","e","which","preventDefault","click","let","countryStates","load","selectedName","val","includes","hide","change","chosenCountry","isValid","parent","isInValid","ele","$formId","parents","$fld","clearServerError","$match","$checkOther","initCustomMatchVerification","removeGuardianError","checkPasswordLegacy","checkPassword","$error_ele","getErrorEle","html","loadAccountInformation","getPayOptions","isString","navigateMemberPageLocalStorage","addBodyClickTask","onBodyClick","event","$target","memberEmail","thisForm","frm_selector","$forms","dialog","launch","selector","dialogClass","titleBar","is","replace","closest","setHTML","hideEle","showEle","target","applyGuardian","addSpinGear","submit","removeSpinGear","$thisForm","id","sendResetAff","submitAndCheckresetPasswordAff","scrollIntoView","behavior","block","err","logOutMember","prop","checkAccountFormsPreSubmit","submitMemberAccountCreateForm","eleSaveCard","checkMemberExistsByEmail","handleCreateAccountFormCheckout","callback","loadAccountUpdateForm","showHide","deleteWarning","cookieValue","row","startsWith","existing","boxexisting","reload","submitMemberUpdate","sendReset","submitAndCheckresetPassword","toggleAddCard","getAddCardWidget","deleteCCWarning","dataset","cardid","datepicker","addClass","showDobClear","hideAddCardUI","empty","$el","loadAccountReservations","navigateMemberPage","section","$sectionToOpen","$sectionToScrollTo","trigger","duplicateAccountWarning","msg","oButtons","AEdata","duplicateModal","btn_reset","close","btn_login","content","docFrag","createDocumentFragment","append","buttons","applyUI","buttonOpts","setClass","lastButtonClass","firstButtonClass","duplicateAccountWarningUpdate","$msg","duplicateModalUpdate","btn_cancel","cardId","oStoredPaymentLang","button_delete","deletePaymentOption","button_cancel","cardDetails","findWhere","CARDS","CARDID","modalCardSummary","cardTypeDisplay","oCClogos","CARDTYPE","toLowerCase","cardLast4","LAST4","cardExp","EXP","txt_card_summary","confirm_delete_card_header","confirm_delete_card_body","$Target","deleteModal","btn_delete","$suid","deleteSFRecord","delete_warn_head","delete_warn","addInvalidClass","$ele","$parent","addValidClass","removeInvalidClass","$thisEle","querySelector","parentNode","removeValidClass","thisEle","removeValidClassByClass","eleClass","showGridDiv","showGridDivByClass","getWhichReset","hideGridDiv","hideGridDivByClass","$eleClass","SetErrorText","$str","innerHTML","scrollTop","cfc","ajax","dataType","success","result","hideShow","error","xhr","ajaxOptions","thrownError","$checkEmail","$currentemail","getElementsByClassName","$errorFirst","checkMemberExists","$elemID","submitAndCheckMemberAccountForm","submitAffiliateForm","isEmpty","markup","arrstates","states","applyJQUI","selectmenu","getUrlParameter","sParam","sParameterName","sURLVariables","index","resetResetStatus","tokenExpired","isReset","$hasBlanks","$form","$messDiv","$frmInstructions","$resetFormDiv","$atv2","checkBlank","$formVals","serialize","post","RESULT","MESS","$isMobile","$eleLookup","$resetFld","checkIfMobile","$email","member_email","INVALID","MESSAGE","checkEmail","$emailFld","suid","$ObjpwdEle","validatePwd","jQuery","$error_item","validated","$errorGuardian","getGuardianErrorEle","$errorEle_guardian","$messfield","$mess","validatePwdLegacy","$fldEle","$errorMessageEle","verifyMatch","formId","matchEle","errorMessDspEle","$data","$matchEle","$errorMessDspEle","$current_mess","$thisFld","$matchField","$noCase","$strDspMess","$isValid","$isMatch","toUpperCase","$pwdVer","$hasBlank","$isValid_pwd","$pwdMatch","scrollToErrors","$errorflds","querySelectorAll","$position","position","top","$thisposition","$isValidPwd","$errorEleNotFound","$postForm","$elesuccessMsg","$elepwdChanged","PWD_CHANGED","AFF_FOUND","enableClicks","$fieldToCheck","$cfc","$isNav","$strSingle","$hasErrors","$currEle","$currEleVal","$currEle_curr_val","$do_nothing","cache","len","$password_changed","strSingle","addUpdateSalesforce","formVals","handleSalesforceLogin","fieldToCheck","$formAction","$ele_guardian","formvals","formvalsDes","deparam","member_emaillist","str","isMobile","test","navigator","userAgent","substr","$eleGuardian","$clear_ele","$flds","$isVisible","classList","contains","$error_ele_guardian","$errorMess1","getAttribute","$errorMess2","$errorMess","after","parentElement","$eleState","isTwoCol","pwd","pwd_length","pwd_number","pwd_special","pwd_upper","pwd_lower","match","$name","remoteId","myRemoteId","showCurrentCards","ccWidgetUrl","showAddCard","SUCCESS","URL","showAddCardWidgetFail","showAddCardUI","text","hideMyCCLoader","widgetUrl","src","payment_added_failed","savePaymentMsg","savePaymentMsgDiv","newCardBlock","newCardId","isDuplicateCard","payment_method_exists","payment_added_success","savePaymentMsgClass","forEach","item","cardType","carLabelClass","cardLogoKey","cardSummary","displayHTML","no_saved_payments","paymentId","lookupPage","hasOwnProperty","stMemberVoucherInfo","renderAccountReservations","stMemberVoucherLang","LOOKUP_URL","voucherError","objMemberVoucherInfo","$dfAccountReservations","vouchers","isArray","current","past","vouchKey","theseVouchers","$thisGrid","$thisGridItem","classKey","langKey","$thisTable","HEADER_RESERVATIONS_CONTENT","$labelRow","PUDATE_LABEL","VOUCHER_LABEL","PULOC_LABEL","STATUS_LABEL","thisVouch","$thisRow","$linkCell","DATE","VOUCHNUM","PICKUP","STATUSDISPLAY","STATUS","VIEW_LINK","renderAccountReservationLookupError","VOUCHER_LOOKUP_ERROR","pairs","map","slice","keyValuePair","$modalLink","$devheight","$devWidth","strUrl","openPageModal","currFontSize","mheight","mwidth","resizable","autoOpen","open","bind","initMap","customerService","$customerServiceForm","$serviceFormType","noEBSites","allowExcessBreakdown","siteList","formOnVoucher","hasAltERFields","commentsMaxChars","characterCounter","customerservice","formAction","showGenericUploadFields","formFineUploaderInstance","showOtherUploadFields","pageText_chooseFile","pageText_removeFile","pageText_dropFile","jumpToClaimForm","mouseenter","siblings","mouseleave","selLoad","setInquiryType","selChange","changeCity","ererror","resetFileUploadInput","prev","siteCode","toggleRESubsection","st","offset","fileUploadInput","formfield","next","beatrate","setDOCode","thispucode","parseInt","ch","selType","required","inquiryTypeOptionSpecific","subsection","slideDown","slideUp","menuType","qq","FineUploader","multiple","element","template","request","endpoint","retry","enableAuto","thumbnails","placeholders","waitingPath","fineUploaderFolder","notAvailablePath","validation","itemLimit","sizeLimit","maxSingleFileSize","allowedExtensions","allowedFileExtensions","messages","typeError","errorMessageFileType","sizeError","errorMessageFileSize","callbacks","onUpload","onComplete","responseJSON","server_filename","$autoForms","$validateForm","$moreInfoBtn","$ageMin","$ageMax","$ageInfoBtn","$ageInfoText","$modalCloseBtn","$groupCheckboxes","$groupCheckinputs","$checkboxes","$paymentRequire","$debitRequire","$payOptional","$formLabels","checkoutPassedAjax","loginInputValid","addBodyChangeTask","onBodyChange","blur","jsonToCheck","pcode","done","isValidTBIPromo","fail","$targetElement","children","pos","my","at","of","checkout","rq","theForm","guardian","validateCheckbox","$spinGear","addPattern","alnum","alnumsp","numsp","alnumspdot","alnumspecial","alphasp","anything","anythingcheckout","email","hexcolor","lead0num","notblank","notblankcheckout","wphone","aunzphone","ae_affiliatepassword","ae_currency","ae_memberage","ae_membername","ae_memberpassword","ae_numericdate","ae_postalcode","ae_voucher","before","addGroup","$groups","carcategory","$inputs","checkoutSubmitBtn","billingrequired","setBillingInputRequiredStatus","validateMatch","noCase","validationHandler","validateSelect","selectValid","addInput","state","checkedCount","count","validateFile","validateCheckout","disableSubmit","$dfd","Deferred","clicked","notclicked","tbiPromo","values","cardnumber","device","first","focus","validateCreditCard","validateAccountLogin","method","password","$oStored","tmpAge","AGE","handleLoginAge","showSubscribe","step","searchAgeCheckbox","searchAge","quote","oQuote","oRules","applyMemberDU","autocomplete","setFromQuote","loggedInAt","formSubmit","useWEBAE3_4453","CHANGEPASSWORD","handleLoginChangePassword","UID","console","log","failure","disableClicks","$button","nCheck","nDigit","bEven","n","cDigit","stateMenus","handleVoucherLookup","$vEmailDateDiv","$vInputToggleIcon","$vNumDiv","emailClean","inputID","cleanEmail","atPos","join","cleanWhitespace","targetID","input","quoteSwap","clone","ready","fadeIn","toggleClass","thisInput","ogDate","formatDate","targetTag","tagName","targetType","targetName","histUrl","sslDomain","history","replaceState","title","resultMess","uuid","age","updateSearchFormAge","inModifyProcess","ismodify","useStoredSearch","oStoredSearch","_obj","setAge","setDefaultAgeOverride","inputs","status","moduleFolder","itemlimit","$form_submit_btn","uploadlimit","POS","whichIE","isIE7","isIE8","isIE9","isIE10","isIE11","_isLegacyBrowser","versionOfBrowser","_getLegacyBrowserVersion","_ops","_isLegacy","_currentVersion","_legacyBrowser","IE7","IE8","IE9","IE10","IE11","_browser","polyfill","arrayEvery","_augmentArrayPrototypeEvery","arrayFilter","_augmentArrayPrototypeFilter","arrayForEach","_augmentArrayPrototypeForEach","arrayIndexOf","_augmentArrayPrototypeIndexOf","arrayMap","_augmentArrayPrototypeMap","objectKeys","_augmentObjectKeys","objectCreate","_augmentObjectCreate","stringTrim","_augmentStringTrim","textContent","_augmentTextContent","_augmentBrowserFunction","_availablePolyfills","Array","prototype","every","filter","Object","keys","create","String","defineProperty","getOwnPropertyDescriptor","Element","get","callbackfn","thisArg","T","TypeError","O","kValue","call","fun","res","searchElement","fromIndex","o","Math","abs","Infinity","max","A","mappedValue","propertiesObject","Temp","defineProperties","hasDontEnumBug","toString","propertyIsEnumerable","dontEnumsLength","dontEnums","obj","innerText","set","s","DisplayObject","Form","reopen","onAfterRender","asyncFormsRendered","$requiredInputs","$checksAndRadios","$requiredCheckboxes","$stateDropdowns","$countryDropdowns","$motorHomeCountryDropdowns","$motorHomeCityDropdowns","$chauffeurCountryDropdowns","$chauffeurCityDropdowns","wrap","j","rawDataAttr","theseDataAttr","dtat","thisAttr","this_selector","this_label","insertBefore","l","parseHTML","rawCountryClass","countryCode","handleStateMenus","handleMotorHomeCityMenus","handleChauffeurCityMenus","validateAll","validInputs","flexNavHeight","temp_loginStatus","$primnav","$primnavList","$primnavTop","$primDropLinks","$primDropDowns","$primnavAcct","$primnavMember","$primnavModify","$primnavManage","$secnav","$altnavToggler","$altnavAcct","$altnavContact","$altnav","$altnavList","$altDropDowns","$selCountry","$countryDD","$countryDDclose","$selLanguage","$languageDD","$selCtryMobile","$spContMobile","$acctContDesk","$acctContMobile","$modContDesk","$modContMobile","$contactMobile","$memberLoginStatus","$allDropDowns","$allSubmenus","touchstart touchmove","touchend","closeAllMenus","toggleSubMenus","handleToggle","stopImmediatePropagation","off","offsetLeft","left","toggle","$contentDesk","pickerMenuWidth","$offset","leftPos","bIsTpDomain","pickerNavWidth","innerWidth","palmContent","has","mobileAccountForm","$contentMobile","handleNavDropdown","$submenu","footerSubscribe","fromPromo","$input","inputContainerSelector","addSpinner","size","color","genericSubscribe","diagSubscribe","subsource","removeSpinner","MSG","oLang","TXT_TRY_AGAIN","showSubscribePopup","returned","inline","update","$page_type","AECustomDimension","getrates_Cookie_Value","Session_Cookie_Value","getCookieValue","setCookieValue","makeid","updateSingleValueCookie","$cn_user_id","$user_id","incrementNumberOfVisits","$visitsIncreased","gaArrayProcess","GACATEGORY","GAACTION","GALABEL","$numVisits","$direction","$pickup","$dropoff","$loctype","zeroPad","getCurrentCookieValue","setDimension","$targetLI","tempData","$cn_cc_used","GAVALUE","$ccUsed","$ccValue","$gaClick","$gaAuto","$gaChange","$gaChild","$gaCheck","$gaTime","attributes","gaArray","timeOnPage","gaLogEvent","gaTrackEvent","gaCategory","gaAction","gaLabel","gaValue","eventCategory","eventAction","eventLabel","eventValue","gaObject","cbStatus","addStatus","selectVal","referrer","_groupItemsByPropsInArray","_array","f","groups","group","_findMatchingPropsInArray","checkProp","entry","_deleteEmptyObjsByValFromArray","deleteValue","splice","_sortPropByAlphaInArray","sortProp","sort","a","b","_removeDuplicateObjectsFromArray","filterProp","_tempArr","_matchLocTitle","_checkValueAlreadyExistsInArray","UI","cookieCheck","cookiesEnabled","_localStorage","_sessionStorage","checkCookies","privateSessionPolyfill","_checkLocalStorageAvailability","usePolyfill","_localStoragePolyfill","requireCookieNotification","cookieNotificationShown","userEngagedNotification","cookieExpires","activeNotification","messaging","defaultCookieMessage","cookie_support","DEFAULT_FROM_AE2","defaultCloseButton","CLOSE_BUTTON","noCookieSupportTitle","WARNING_TITLE","noCookieSupportMessage","WARNING_TEXT","moreInfoMessage","INFO_LINK","moreInfoLink","origin","INFO_LINK_URL","confirmCookieSupportMessage","DEFAULT_COOKIE_USE","mainSearch","bWhiteLabel","_cookiesEnabled","_cookiesDisabled","_tryLaunch","message","cookieSupport","_showCookieNotification","_title","_message","hasCookieSupport","$warningTitleHolder","$warningTitle","notificationHtml","$warningMessage","$cookieSupportNotificationWindow","class","role","$warningMsgWrapper","$warningMessageHolder","_notificationRef","$dismissNotificationBtn","for","$dismissNotificationBtnDecline","$dismissNotificationBtnCustSet","$moreInfoLink","$btnWrap","$moreInfoWrapper","prepend","_fn_launchNotification","_hideCookieNotification","$notification","_reqPolyfill","shouldCloseNotification","isCloseBtn","$getCloseBtn","addContent","ModalTextTest","returnValue","$mapAPILoaded","$dfd_api","$dfd_markers","pin_image","D","icon","muraThemePath","none","pickup","chosen","R","selected","runDrawMap","dfd_myDeferred","loadGoogleMapsAPI","stringAPI","getScript","textStatus","jqxhr","loadDisplayObjectMap","cityName","cntryCode","container","suppName","ccc","ccn","csn","google","drawLandingLocationMap","buildRichSnippetJSON","when","then","json","city","country","mapOptions","mapTypeControl","streetViewControl","scrollwheel","mapTypeId","MapTypeId","ROADMAP","Map","bounds","LatLngBounds","markers","infowindow","locationPoints","thisLatLng","LatLng","latitude","longitude","pin","hub","hubtype_id","geo","lat","lng","marker","fitBounds","addMarkerWithTimeout","items","timeout","Marker","animation","Animation","BOUNCE","optimized","addressa","setAnimation","locationlabela","addressb","locationlabelb","addressc","locationlabelc","addListener","InfoWindow","infowindow_markup","setContent","setZIndex","MAX_ZINDEX","jsonLD","code","address","json_item","@context","@type","addressLocality","addressRegion","streetAddress","script","setAttribute","appendChild","createTextNode","body","affiliate","$checkBox","$termsLink","termsAccepted","contentGroup","visual","willSlide","affTerms","selectedTab","isTP","loadColors","spectrum","preferredFormat","showInput","showButtons","chooseText","colors","choose","cancelText","cancel","haveTerms","showBtns","termsData","ACCEPT","DECLINE","HEAD","BODY","exclusiveClose","$keywords","$bttnfeedSearch","storageAvailable","decodeURI","loadCustomFeed","keydown","currentSearch","keywords","baseURL","changeCategories","remoteID","pageNo","results","RegExp","exec","objDFD","general"],"mappings":"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"}