{"version":3,"names":[],"mappings":"","sources":["probono-landing.bundle.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i>> 0;\n\n\t\t\t\tif (typeof callback !== 'function') {\n\t\t\t\t\t\tthrow new TypeError(callback + ' is not a function');\n\t\t\t\t}\n\n\t\t\t\tif (arguments.length > 1) {\n\t\t\t\t\t\tT = thisArg;\n\t\t\t\t}\n\n\t\t\t\tA = new Array(len);\n\n\t\t\t\tk = 0;\n\n\t\t\t\twhile (k < len) {\n\n\t\t\t\t\t\tvar kValue, mappedValue;\n\n\t\t\t\t\t\tif (k in O) {\n\t\t\t\t\t\t\t\tkValue = O[k];\n\t\t\t\t\t\t\t\tmappedValue = callback.call(T, kValue, k, O);\n\n\t\t\t\t\t\t\t\tA[k] = mappedValue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tk++;\n\t\t\t\t}\n\n\t\t\t\treturn A;\n\t\t};\n}\n\n/*********************/\n/* Private Functions */\n/*********************/\nfunction extend(out) {\n\t\tout = out || {};\n\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\tif (!arguments[i]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (var key in arguments[i]) {\n\t\t\t\t\t\tif (arguments[i].hasOwnProperty(key) && arguments[i][key] !== undefined) {\n\t\t\t\t\t\t\t\tout[key] = arguments[i][key];\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\t\treturn out;\n}\n\nfunction cleanSelector(selector) {\n\t\treturn selector.replace(/\\W/g, '');\n}\n\nfunction matchSelector(elem, selector) {\n\t\tif ($) {\n\t\t\t\treturn $(elem).is(selector);\n\t\t} else if (typeof selector === 'string') {\n\t\t\t\treturn elementMatchesSelector.call(elem, selector);\n\t\t} else if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) === 'object' && selector.length) {\n\t\t\t\treturn selector.indexOf(elem) >= 0;\n\t\t} else if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) === 'object' && selector.nodeType === 1) {\n\t\t\t\treturn elem === selector;\n\t\t}\n\t\treturn false;\n}\n\nfunction generateId() {\n\t\tvar id;\n\t\twhile (true) {\n\t\t\t\tid = ID_POOL_PREFIX + String(++_idPool);\n\t\t\t\tif (!_modals[id]) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t}\n\t\treturn id;\n}\n\nfunction getModalId(elem) {\n\t\tvar hasClass = false;\n\t\tvar elemClasses = elem && elem.className && elem.className.split(' ') || [];\n\n\t\tfor (var id in _modals) {\n\t\t\t\tvar triggerSelectors = _modals[id].triggerSelectors.map(function (selector) {\n\t\t\t\t\t\treturn selector.substring(1);\n\t\t\t\t});\n\n\t\t\t\tvar dismissSelectors = _modals[id].dismissSelectors.map(function (selector) {\n\t\t\t\t\t\treturn selector.substring(1);\n\t\t\t\t});\n\n\t\t\t\tif (!_modals[id].disable) {\n\t\t\t\t\t\tfor (var i = 0, len = elemClasses.length; i < len; i++) {\n\t\t\t\t\t\t\t\thasClass = triggerSelectors.indexOf(elemClasses[i]) === 0 || dismissSelectors.indexOf(elemClasses[i]) === 0;\n\t\t\t\t\t\t\t\tif (hasClass) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t}\n}\n\nfunction hideModal(modalId) {\n\t\tvar modal = _modals[modalId];\n\t\tvar modalRoot;\n\n\t\tif (!modal) {\n\t\t\t\treturn;\n\t\t}\n\n\t\tmodalRoot = modal.root;\n\n\t\tmodalRoot.setAttribute('data-modal', 'false');\n\t\tmodalRoot.setAttribute('aria-hidden', 'false');\n\t\tmodal.modalSelector[0].setAttribute('data-visible', 'false');\n\t\tmodal.modalSelector[0].setAttribute('aria-hidden', 'true');\n}\n\nfunction onModalActivatorPress(evt) {\n\n\t\tvar target = this;\n\t\tvar modalId = getModalId(target);\n\t\tvar modal = _modals[modalId];\n\t\tvar modalRoot;\n\t\tvar modalData;\n\n\t\tdocument.getElementById(\"overlay\").style.display = \"block\";\n\n\t\tif (!modal) {\n\t\t\t\treturn;\n\t\t}\n\n\t\tmodalRoot = modal.root;\n\t\tmodalData = modalRoot && modalRoot.getAttribute('data-modal');\n\n\t\tif (modalData && modalData === 'true') {\n\t\t\t\treturn;\n\t\t}\n\n\t\tevt.preventDefault();\n\t\tevt.stopPropagation();\n\n\t\tmodalRoot.setAttribute('data-modal', 'true');\n\t\tmodalRoot.setAttribute('aria-hidden', 'true');\n\t\tmodal.modalSelector[0].setAttribute('data-email', target.getAttribute('href'));\n\t\tmodal.modalSelector[0].setAttribute('data-visible', 'true');\n\t\tmodal.modalSelector[0].setAttribute('aria-hidden', 'false');\n}\n\nfunction onModalDismissorPress(evt) {\n\n\t\tdocument.getElementById(\"overlay\").style.display = \"none\";\n\n\t\tvar target = this;\n\t\tvar modalId = getModalId(target);\n\n\t\tevt.preventDefault();\n\t\tevt.stopPropagation();\n\n\t\thideModal(modalId);\n}\n\n/****************/\n/* Modal Object */\n/****************/\nvar BoostModal = {\n\t\tinit: function init(config) {\n\t\t\t\tvar options = extend({}, GlobalConfig, config);\n\t\t\t\tvar triggerSelectors = options.triggerSelectors || [];\n\t\t\t\tvar dismissSelectors = options.dismissSelectors || [];\n\n\t\t\t\ttriggerSelectors = triggerSelectors.join(', ');\n\t\t\t\tdismissSelectors = dismissSelectors.join(', ');\n\n\t\t\t\t$(document).on('click', triggerSelectors, onModalActivatorPress);\n\t\t\t\t$(document).on('click', dismissSelectors, onModalDismissorPress);\n\t\t},\n\n\t\tset: function set() {\n\t\t\t\tvar modalId, config;\n\n\t\t\t\tif (_typeof(arguments[0]) === 'object') {\n\t\t\t\t\t\tconfig = arguments[0];\n\t\t\t\t} else if (typeof arguments[0] === 'string' && _typeof(arguments[1]) === 'object') {\n\t\t\t\t\t\tmodalId = arguments[0];\n\t\t\t\t\t\tconfig = arguments[1];\n\t\t\t\t\t\tif (!_modals[modalId]) {\n\t\t\t\t\t\t\t\tthrow new Error('Section \"' + modalId + '\" doesn\\'t exist!');\n\t\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in config) {\n\t\t\t\t\t\tif (GlobalConfig[key] !== undefined) {\n\t\t\t\t\t\t\t\tif (modalId) {\n\t\t\t\t\t\t\t\t\t\t_modals[modalId][key] = config[key];\n\t\t\t\t\t\t\t\t} else if (config[key] !== undefined) {\n\t\t\t\t\t\t\t\t\t\tGlobalConfig[key] = config[key];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (modalId) {\n\t\t\t\t\t\t// remove \"undefined\" items\n\t\t\t\t\t\t_modals[modalId] = extend({}, _modals[modalId]);\n\t\t\t\t}\n\t\t},\n\n\t\tadd: function add() {\n\t\t\t\tvar modalId;\n\t\t\t\tvar config = {};\n\n\t\t\t\tif (_typeof(arguments[0]) === 'object') {\n\t\t\t\t\t\tconfig = arguments[0];\n\t\t\t\t} else if (typeof arguments[0] === 'string' && _typeof(arguments[1]) === 'object') {\n\t\t\t\t\t\tmodalId = arguments[0];\n\t\t\t\t\t\tconfig = arguments[1];\n\t\t\t\t}\n\n\t\t\t\tif (!modalId) {\n\t\t\t\t\t\tmodalId = typeof config.id === 'string' ? config.id : generateId();\n\t\t\t\t}\n\n\t\t\t\tif (_modals[modalId]) {\n\t\t\t\t\t\tthrow new Error('Modal \"' + modalId + '\" already exists!');\n\t\t\t\t}\n\n\t\t\t\t_modals[modalId] = {};\n\n\t\t\t\tModal.set(modalId, config);\n\t\t},\n\n\t\tdestroy: function destroy() {\n\t\t\t\twindow.removeEventListener('keyup', onKeyUp);\n\t\t\t\tModal.clear();\n\t\t\t\t_idPool = 0;\n\t\t\t\t_ready = false;\n\t\t},\n\n\t\tclear: function clear() {\n\t\t\t\t_modals = {};\n\t\t\t\t_modalCount = 0;\n\t\t\t\t_defaultModalId = '';\n\t\t\t\t_lastModalId = '';\n\t\t}\n\n};\n\nwindow.Modal = BoostModal;\n\n/*********************/\n/* jQuery Interface */\n/*********************/\nif ($) {\n\t\t$.Modal = function () {\n\t\t\t\tModal.init();\n\n\t\t\t\tif (arguments.length > 0) {\n\t\t\t\t\t\tif ($.isPlainObject(arguments[0])) {\n\t\t\t\t\t\t\t\treturn Modal.add(arguments[0]);\n\t\t\t\t\t\t} else if ($.type(arguments[0]) === 'string' && $.isFunction(Modal[arguments[0]])) {\n\t\t\t\t\t\t\t\treturn Modal[arguments[0]].apply(Modal, [].slice.call(arguments, 1));\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn $.extend({}, Modal);\n\t\t};\n\n\t\t$.fn.Modal = function () {\n\t\t\t\tvar config;\n\n\t\t\t\tif ($.isPlainObject(arguments[0])) {\n\t\t\t\t\t\tconfig = arguments[0];\n\t\t\t\t} else {\n\t\t\t\t\t\tconfig = {\n\t\t\t\t\t\t\t\tmodalSelector: arguments[0]\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconfig.modalSelector = this;\n\t\t\t\tconfig.root = config.root || document.body;\n\n\t\t\t\tif (config.id) {\n\t\t\t\t\t\tModal.remove(config.id);\n\t\t\t\t}\n\n\t\t\t\tModal.add(config);\n\t\t\t\tModal.init(config);\n\n\t\t\t\treturn this;\n\t\t};\n}\n\n},{}],2:[function(require,module,exports){\n\"use strict\";\n\nrequire('../features/boost-modal.js');\n\njQuery.fn.InitializePage = function (option) {\n var defaults = {\n initialJsonData: null\n };\n var option = $.extend({}, defaults, option);\n\n //// Load JSON data from model\n var viewModelJs = JSON.parse(option.initialJsonData);\n var viewModel = ko.mapping.fromJS(viewModelJs);\n\n var pageContent = $(this);\n\n //// ViewModel to Send\n viewModel.FirstName = ko.observable();\n viewModel.LastName = ko.observable();\n viewModel.BusinessName = ko.observable();\n viewModel.BusinessAddress = ko.observable();\n viewModel.BusinessCity = ko.observable();\n viewModel.BusinessState = ko.observable();\n viewModel.BusinessZip = ko.observable();\n viewModel.BusinessPhone = ko.observable();\n viewModel.OtherPhone = ko.observable();\n viewModel.BusinessEmail = ko.observable();\n //viewModel.BriefDescription = ko.observable(); //AM-7999 - changed references for BriefDescription to LeagalIssueDescription so it matches the model\n viewModel.LegalIssueDescription = ko.observable();\n viewModel.IsBusinessMinorityOwned = ko.observable();\n viewModel.HasReviewedProjectOpportunity = ko.observable();\n viewModel.HasReviewedIntroCopy = ko.observable();\n viewModel.NamesOfBusinessOwners = ko.observable();\n viewModel.KnownOrExpectedAdverseParties = ko.observable();\n viewModel.ReferringOrganizationOrPerson = ko.observable();\n viewModel.NumberOfEmployees = ko.observable();\n viewModel.NumberOfYearsInOperation = ko.observable();\n viewModel.DescribeDayToDay = ko.observable();\n viewModel.DescribeOwnershipStructure = ko.observable();\n viewModel.UtilizingLegalServicesInOtherAreas = ko.observable();\n viewModel.HasAgreedToDisclaimer = ko.observable(true);\n viewModel.hasSubmitted = ko.observable(false);\n\n //// Components to handle validation of data\n viewModel.FirstNameValid = ko.observable(true);\n viewModel.LastNameValid = ko.observable(true);\n viewModel.BusinessNameValid = ko.observable(true);\n viewModel.BusinessAddressValid = ko.observable(true);\n viewModel.BusinessCityValid = ko.observable(true);\n viewModel.BusinessStateValid = ko.observable(true);\n viewModel.BusinessZipValid = ko.observable(true);\n viewModel.BusinessPhoneValid = ko.observable(true);\n viewModel.OtherPhoneValid = ko.observable(true);\n viewModel.BusinessEmailValid = ko.observable(true);\n viewModel.BriefDescriptionValid = ko.observable(true);\n viewModel.NamesOfBusinessOwnersValid = ko.observable(true);\n viewModel.KnownOrExpectedAdversePartiesValid = ko.observable(true);\n viewModel.CheckboxsValid = ko.observable(true);\n viewModel.SendEmailFailed = ko.observable(false);\n\n viewModel.GetRequestObject = function () {\n var reqObj = {\n FirstName: viewModel.FirstName(),\n LastName: viewModel.LastName(),\n BusinessName: viewModel.BusinessName(),\n BusinessAddress: viewModel.BusinessAddress(),\n BusinessCity: viewModel.BusinessCity(),\n BusinessState: viewModel.BusinessState,\n BusinessZip: viewModel.BusinessZip,\n BusinessPhone: viewModel.BusinessPhone,\n OtherPhone: viewModel.OtherPhone,\n BusinessEmail: viewModel.BusinessEmail,\n //BriefDescription: viewModel.BriefDescription,\n LegalIssueDescription: viewModel.LegalIssueDescription,\n IsBusinessMinorityOwned: viewModel.IsBusinessMinorityOwned,\n HasReviewedProjectOpportunity: viewModel.HasReviewedProjectOpportunity,\n HasReviewedIntroCopy: viewModel.HasReviewedIntroCopy,\n NamesOfBusinessOwners: viewModel.NamesOfBusinessOwners,\n KnownOrExpectedAdverseParties: viewModel.KnownOrExpectedAdverseParties,\n ReferringOrganizationOrPerson: viewModel.ReferringOrganizationOrPerson,\n HasAgreedToDisclaimer: viewModel.HasAgreedToDisclaimer,\n NumberOfEmployees: viewModel.NumberOfEmployees,\n NumberOfYearsInOperation: viewModel.NumberOfYearsInOperation,\n DescribeDayToDay: viewModel.DescribeDayToDay,\n DescribeOwnershipStructure: viewModel.DescribeOwnershipStructure,\n UtilizingLegalServicesInOtherAreas: viewModel.UtilizingLegalServicesInOtherAreas\n };\n return reqObj;\n };\n\n viewModel.isFormValidated = function () {\n\n if (viewModel.FirstName() == \"\" || viewModel.FirstName() == \"undefined\" || viewModel.FirstName() == null) {\n viewModel.FirstNameValid(false);\n } else {\n viewModel.FirstNameValid(true);\n }\n\n if (viewModel.LastName() == \"\" || viewModel.LastName() == \"undefined\" || viewModel.LastName() == null) {\n viewModel.LastNameValid(false);\n } else {\n viewModel.LastNameValid(true);\n }\n\n if (viewModel.BusinessName() == \"\" || viewModel.BusinessName() == \"undefined\" || viewModel.BusinessName() == null) {\n viewModel.BusinessNameValid(false);\n } else {\n viewModel.BusinessNameValid(true);\n }\n\n if (viewModel.BusinessAddress() == \"\" || viewModel.BusinessAddress() == \"undefined\" || viewModel.BusinessAddress() == null) {\n viewModel.BusinessAddressValid(false);\n } else {\n viewModel.BusinessAddressValid(true);\n }\n\n if (viewModel.BusinessCity() == \"\" || viewModel.BusinessCity() == \"undefined\" || viewModel.BusinessCity() == null) {\n viewModel.BusinessCityValid(false);\n } else {\n viewModel.BusinessCityValid(true);\n }\n\n if (viewModel.BusinessState() == \"\" || viewModel.BusinessState() == \"undefined\" || viewModel.BusinessState() == null) {\n viewModel.BusinessStateValid(false);\n } else {\n viewModel.BusinessStateValid(true);\n }\n\n if (viewModel.BusinessZip() == \"\" || viewModel.BusinessZip() == \"undefined\" || viewModel.BusinessZip() == null) {\n viewModel.BusinessZipValid(false);\n } else {\n viewModel.BusinessZipValid(true);\n }\n\n if (viewModel.BusinessPhone() == \"\" || viewModel.BusinessPhone() == \"undefined\" || viewModel.BusinessPhone() == null) {\n viewModel.BusinessPhoneValid(false);\n } else {\n viewModel.BusinessPhoneValid(true);\n }\n\n var re = /\\S+@\\S+\\.\\S+/;\n if (!re.test(viewModel.BusinessEmail())) {\n viewModel.BusinessEmailValid(false);\n } else {\n viewModel.BusinessEmailValid(true);\n }\n\n //if (viewModel.BriefDescription() == \"\" || viewModel.BriefDescription() == \"undefined\" || viewModel.BriefDescription() == null) {\n if (viewModel.LegalIssueDescription() == \"\" || viewModel.LegalIssueDescription() == \"undefined\" || viewModel.LegalIssueDescription() == null) {\n viewModel.BriefDescriptionValid(false);\n } else {\n viewModel.BriefDescriptionValid(true);\n }\n\n if (viewModel.NamesOfBusinessOwners() == \"\" || viewModel.NamesOfBusinessOwners() == \"undefined\" || viewModel.NamesOfBusinessOwners() == null) {\n viewModel.NamesOfBusinessOwnersValid(false);\n } else {\n viewModel.NamesOfBusinessOwnersValid(true);\n }\n\n var isInputValidated = viewModel.FirstNameValid() && viewModel.LastNameValid() && viewModel.BusinessNameValid() && viewModel.BusinessAddressValid() && viewModel.BusinessCityValid() && viewModel.BusinessStateValid() && viewModel.BusinessZipValid() && viewModel.BusinessPhoneValid() && viewModel.BusinessEmailValid() && viewModel.BriefDescriptionValid() && viewModel.NamesOfBusinessOwnersValid();\n\n var isCheckboxsValidated = viewModel.HasReviewedProjectOpportunity() && viewModel.HasAgreedToDisclaimer() && viewModel.HasReviewedIntroCopy();\n\n if (!isCheckboxsValidated) {\n viewModel.CheckboxsValid(false);\n } else {\n viewModel.CheckboxsValid(true);\n }\n\n var isValidated = isInputValidated && isCheckboxsValidated;\n\n return isValidated;\n };\n\n function initializePopup() {\n $('.js-boostConfirmationModal').Modal({\n triggerSelectors: ['.js-boostConfirmationModal-trigger'],\n dismissSelectors: ['.js-modalClose', '.js-modalButton-agree', '.js-modalButton-cancel']\n });\n }\n\n //// Generate Email\n viewModel.GenerateProBonoContactUsEmail = function () {\n\n if (viewModel.isFormValidated()) {\n\n initializePopup();\n\n var viewModelToSend = viewModel.GetRequestObject();\n\n $.ajax({\n url: \"/main/general/probonoemail\",\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n data: ko.mapping.toJSON(viewModelToSend),\n cache: false,\n success: function success(data) {\n if (data) {\n viewModel.hasSubmitted(true);\n } else {\n viewModel.SendEmailFailed(true);\n }\n },\n error: function error(xhr, textStatus, errorThrown) {\n console.log(xhr);\n console.log(\"textStatus : \" + textStatus);\n console.log(\"errorThrown : \" + errorThrown);\n }\n });\n } else {\n var offset = $('.probono-landing').offset().top;\n $(\"html, body\").animate({\n scrollTop: offset\n });\n return false;\n }\n };\n\n //// Apply Bindings\n ko.applyBindings(viewModel, pageContent.get(0));\n};\n\n},{\"../features/boost-modal.js\":1}],3:[function(require,module,exports){\n'use strict';\n\nrequire('./features/probono.js');\n\n$('main.probono-landing').InitializePage({\n initialJsonData: initialJsonData\n});\n\n},{\"./features/probono.js\":2}]},{},[3]);\n"],"file":"probono-landing.bundle.js"}