define(['jquery', 'jquery.cookie', 'jquery.simplemodal', 'jquery.ui', 'jquery.validate', 'jquery.select2'], function($) { $.cookie.defaults = { expires: 365, path: '/', secure: 'https:' === window.location.protocol }; $.validator.setDefaults({ ignore: [] }); $.validator.addMethod('namePerson', function(value, element) { return this.optional(element) || value.length < 100 && /^([^0-9\!\@\$\%\^\&\*\(\)\_\\\\\=\+\{\}\[\]\;\,\:\<\>\?\/\|\~\'\"\#\.]*)$/.test(value); }, 'Please enter a valid name.'); $.validator.addMethod('phoneUS', function(value, element) { value = value.replace(/\s+/g, ''); return this.optional(element) || value.length > 9 && /^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/.test(value); }, 'Please enter a valid phone number.'); $.validator.addMethod('zipcodeUS', function(value, element) { return this.optional(element) || /^\d{5}(-\d{4})?$/.test(value); }, 'Please enter a valid postal code.'); $.validator.addMethod('address', function(value, element) { return this.optional(element) || /^[0-9a-zA-Z\.\-\#\, ]+$/.test(value); }, 'Please enter a valid address.'); $.validator.addMethod('email', function(value, element) { return this.optional(element) || /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value); }); $.validator.addMethod('mindate', function(value, element, minDateSelector){ return this.optional(element) || $(minDateSelector).datepicker('getDate') <= $(element).datepicker('getDate'); }, 'Please enter a valid date.'); $.hasWidgetFeature = function(featureName) { if (typeof widgetFeatures !== 'undefined' && widgetFeatures.hasOwnProperty(featureName)) { return widgetFeatures[featureName]; } } // add universal tracking events if (typeof trackingBrandVal !== 'undefined' && "70") { var fieldLookup = { "pets[0][adoptionDate]" : "adoptionDate", "pets[0][birthDate]" : "birthDate", "pets[0][name]" : "petName", "petOwnershipPlan[id]" : "petType", "address[postalCode]" : "postalCode", "chum[profession]" : "profession" }; $.ansTrackInvalidFields = function(invalidFields) { for (var fieldName in invalidFields) { var errorMessage = invalidFields[fieldName]; var fieldPrettyName = (typeof fieldLookup[fieldName] !== "undefined") ? fieldLookup[fieldName] : fieldName; if (typeof purinaTrackEvent === 'function') { purinaTrackEvent({"eventCategory":"signup","eventAction":trackingBrandVal,"eventLabel":"submission error: " + fieldPrettyName.toLowerCase()}); } else if (parent && parent.postMessage) { console.info("Using fallback tacking."); parent.postMessage('ans-widget-70:track:|signup|' + trackingBrandVal + '|submission error: ' + fieldPrettyName.toLowerCase(), '*'); } } } } return window.ANSWidget = { jQuery: $ }; });