{"version":3,"sources":["../js/services/global/global.js","../js/lib/angular/ui-bootstrap-tpls-0.14.3.min.js","../js/services/facebook.js","../js/services/main/authentication.js","../js/controllers/main/authentication.js","../js/services/tools/commonRegExService.js","../js/services/members/memberInfoService.js","../js/services/main/loginservice.js","../js/services/main/loginfactory.js","../js/services/signups/signupform.js","../js/services/signups/signuppage.js","../js/controllers/signups/signupform.js","../js/directives/passwordStrength.js","../js/services/errorService.js","../js/controllers/signups/participantDetailsModalController.js","../js/controllers/signups/calendarViewModalController.js","../js/controllers/signups/deleteItemMemberModalController.js","../js/controllers/signups/signuppage.js","../js/directives/fitEllipsis.js","../js/directives/participantSummary.js","../js/directives/signupButton.js","../js/directives/itemsPerPage.js","../js/directives/fundlyCampaign.js","../js/directives/sugAbu.js"],"names":["SUGApp","service","$http","SUGUtilities","$q","$window","$location","globalService","getDateAndTZFormats","APISyncCall","getDateFormatSamples","id","ID","setDateAndTZFormats","dateformatid","zoneid","signUpDefault","setSignUpDateAndTZSettings","data","getCountries","APISyncCallWithCaching","getTimeZonesByCountry","countrycode","getTimeZonesByZoneGroup","zoneGroupID","includetzshort","getZoneGroupsByCountry","countryCode","getInternationalDateFormats","uploadFile","uploadUrl","fileObj","destDirectory","fd","FormData","append","post","transformRequest","angular","identity","headers","Content-Type","undefined","success","result","error","getEventLogByType","hasPermission","permission","getMemberSettings","updateMemberSignUpSettings","getSetting","getGlobalSettings","saveSetting","getMemberID","getActualMemberID","getMemberInformation","isUndefinedOrEmptyObject","getSettingCategory","checkPermission","getGlobalVariable","getMerchantConfig","isLoggedIn","deferred","defer","then","response","r","lowerCaseKeys","code","location","reload","reject","resolve","promise","checkNewAdDirective","isFeatureEnabled","getFeatureDetailByName","getFeatureMessageAmounts","checkPageAccess","permlist","failpage","listid","permissioncode","ajaxResultInvalid","isIntegerGT0","authtype","listids","toString","split","some","currListID","length","href","path","logAdBlockerUsage","sanitize","getInvisibleReCaptcha","validateInvisibleReCaptcha","key","module","directive","a","b","c","has","get","link","d","e","g","removeClass","addClass","css","height","i","$watch","uibCollapse","hasClass","scrollHeight","attr","to","start","easing","value","f","k","warn","collapse","done","animate","constant","closeOthers","controller","this","groups","isDefined","$eval","forEach","isOpen","addGroup","push","$on","removeGroup","indexOf","splice","controllerAs","transclude","templateUrl","require","replace","scope","heading","isDisabled","setHeading","openClass","panelClass","toggleClass","toggleOpen","which","template","noop","uibAccordionTransclude","find","html","extend","$scope","$attrs","restrict","accordionTransclude","closeable","close","dismissOnTimeout","$parent","parseInt","type","activeClass","toggleEvent","display","$render","equals","$modelValue","uibBtnRadio","on","disabled","uncheckable","$apply","$setViewValue","btnCheckboxTrue","h","btnCheckboxFalse","btnRadio","bind","j","l","activeElement","isUndefined","n","index","interval","isNaN","cancel","next","pause","m","slides","o","version","minor","q","s","currentSlide","select","indexOfSlide","getCurrentIndex","$currentTransition","direction","active","enabled","noTransition","$element","off","one","noWrap","prev","isActive","$watchCollection","play","noPause","addSlide","removeSlide","sort","actual","animation","beforeAddClass","parent","beforeRemoveClass","init","parsers","yyyy","regex","apply","year","yy","y","MMMM","DATETIME_FORMATS","MONTH","join","month","MMM","SHORTMONTH","MM","M","dd","date","EEEE","DAY","EEE","SHORTDAY","HH","hours","hh","H","mm","minutes","sss","milliseconds","ss","seconds","AMPMS","parse","isString","RegExp","map","match","isDate","getTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","p","call","Date","setFullYear","factory","currentStyle","getComputedStyle","style","position","offset","top","left","offsetParent","element","clientTop","scrollTop","clientLeft","scrollLeft","getBoundingClientRect","width","prop","pageYOffset","documentElement","pageXOffset","positionElements","center","right","bottom","formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","datepickerMode","minMode","maxMode","showWeeks","startingDay","yearRange","minDate","maxDate","shortcutPropagation","modes","refreshView","uniqueId","$id","Math","floor","random","initDate","activeDate","$isEmpty","$invalid","compare","activeDateId","uid","render","$viewValue","_refreshView","$setValidity","createDateObject","label","selected","current","customClass","dateDisabled","mode","move","step","years","months","toggleMode","keys","13","32","33","34","35","36","37","38","39","40","focus","keydown","shiftKey","altKey","preventDefault","stopPropagation","ctrlKey","handleKeyDown","getDates","Array","setDate","getDay","secondary","labels","abbr","full","title","rows","weekNumbers","setMonth","round","min","yearpickerInit","datepickerPopup","datepickerPopupTemplateUrl","datepickerTemplateUrl","html5Types","datetime-local","currentText","clearText","closeText","closeOnDateSelection","appendToBody","showButtonBar","onOpenFocus","toLowerCase","isNumber","ngRequired","A","contains","target","t","u","v","w","x","z","B","C","watchData","datepickerAppendToBody","uibDatepickerPopup","$observe","Error","ng-model","ng-change","template-url","children","datepickerOptions","assign","isFunction","$formatters","$$parserName","$validators","$parsers","unshift","$viewChangeListeners","remove","after","$$phase","unbind","getText","dateSelection","val","setHours","$broadcast","fixTimeZone","open","getAutoClose","getToggleElement","getDropdownElement","focusToggleElement","isKeynavEnabled","test","focusDropdownEntry","$new","onToggle","dropdownAppendToBody","uibKeyboardNav","dropdownMenu","toggle","arguments","toggleElement","autoClose","getElement","eq","selectedOption","window","innerWidth","dropdownMenuTemplateUrl","trim","replaceWith","$destroy","dropdownNested","aria-haspopup","aria-expanded","createNew","add","removeTop","entries","Object","hasKey","put","modalInClass","NOW_CLOSING_EVENT","compile","backdropClass","windowClass","windowTopClass","size","getTop","backdrop","currentTarget","dismiss","$isRendered","when","querySelector","modalRendered","modalAnimation","uibModalAnimationClass","empty","modalDomEl","modalScope","openedClass","event","leave","defaultPrevented","isDefaultPrevented","keyboard","loadFocusElementList","isFocusInFirstItem","focusLastFocusableElement","isFocusInLastItem","focusFirstFocusableElement","renderDeferred","windowTemplateUrl","window-class","window-top-class","content","modalOpener","clearFocusListCache","$$uibDestructionScheduled","dismissAll","srcElement","querySelectorAll","provider","options","$get","getPromiseChain","opened","rendered","all","concat","isArray","invoke","$close","$dismiss","$uibModalInstance","defineProperty","bindToController","modalAnimationClass","numPages","config","itemsPerPage","totalPages","calculateTotalPages","page","selectPage","ceil","totalItems","max","ngDisabled","blur","noPrevious","noNext","boundaryLinks","directionLinks","firstText","previousText","nextText","lastText","rotate","number","text","maxSize","pages","align","placement","popupDelay","popupCloseDelay","useContentExp","mouseenter","click","none","setTriggers","trigger","show","hide","startSymbol","endSymbol","L","K","O","popupClass","F","G","D","I","P","$$postDigest","Q","$evalAsync","E","N","visibility","R","J","removeEventListener","S","origScope","contentExp","addEventListener","T","tooltipTemplateTranscludeScope","parseAsResourceUrl","uibTooltipTemplateTransclude","enter","$emit","tooltipAnimationClass","originScope","tooltipTemplateTransclude","bars","addBar","transition","recalculatePercentage","reduce","percent","toFixed","removeBar","stateOn","stateOff","titles","ratingStates","range","buildTemplateObjects","getTitle","rate","readonly","onHover","reset","onLeave","onKeydown","tabs","onDeselect","selectCalled","onSelect","addTab","removeTab","vertical","justified","disable","$transcludeFn","uibTabContentTransclude","tagName","hasAttribute","headingElement","tabContentTransclude","hourStep","minuteStep","showMeridian","meridians","readonlyInput","mousewheel","arrowkeys","showSpinners","meridian","invalidHours","invalidMinutes","tabindex","removeAttr","setupMousewheelEvents","setupArrowkeyEvents","setupInputEvents","noIncrementHours","noDecrementHours","noIncrementMinutes","noDecrementMinutes","noToggleMeridian","$error","time","originalEvent","wheelDelta","deltaY","detail","incrementHours","decrementHours","incrementMinutes","decrementMinutes","updateHours","updateMinutes","setMinutes","toggleMeridian","itemName","source","viewMapper","modelMapper","moveInProgress","$digest","matches","typeaheadMinLength","typeaheadWaitMs","typeaheadEditable","typeaheadLoading","typeaheadOnSelect","typeaheadSelectOnBlur","typeaheadNoResults","typeaheadInputFormatter","typeaheadAppendToBody","typeaheadAppendToElementId","typeaheadFocusFirst","typeaheadSelectOnExact","ngModel","uibTypeahead","aria-autocomplete","aria-owns","move-in-progress","query","typeaheadTemplateUrl","typeaheadPopupTemplateUrl","activeIdx","toUpperCase","model","V","W","$options","getterSetter","$$$p","$item","$model","$label","typeaheadFocusOnSelect","X","getElementById","popupTemplateUrl","selectActive","selectMatch","filter","trustAsHtml","U","typeahead","Y","Z","$","run","$$csp","document","prepend","util","setFbConnected","connected","fbConnected","setFbLoading","processing","fbLoading","setupFB","FB","Event","subscribe","status","initFB","fbResultHandler","authresponse","accesstoken","fjs","fbAppId","appId","cookie","xfbml","fbAsyncInit","getElementsByTagName","js","createElement","src","parentNode","insertBefore","getFBUserInfo","authResponse","atId","uidId","userid","sigId","signedrequest","fbLogin","getLoginStatus","login","logoutUser","forgotPassword","loginUser","createMember","verifyDisabledAccount","getsmappid","getMainNavigation","passwordRulesText","validatePasswordRules","getLoginRateLimit","changePassword","resultErrorHandler","Message","message","obj","isDefinedNotNullNotEmpty","statustext","svc","fbSvc","loginRequired","loginMessage","register","registerDisabled","sce","$timeout","commonRegExService","complete","frm","loginemail","newemail","pword","remember","firstname","lastname","companyname","verifytype","errorMessages","hasErrors","btnLabel","mainLabel","blacklistedAddress","fbAuth","fbBtnLabel","sugAccountRequired","captcha","captchaValid","showrecaptcha","failedlogins","passwordmustbechanged","passwordRules","hideForgotPassword","getReCaptcha","resultCheck","snippet","recaptchafeature","feature","ratelimit","showForm","thisForm","oldBtn","validateForm","email","errorHandler","password","resp","memberID","saveresp","showintermediatelogin","isblacklisted","failed","ipfailedlogins","recaptcha","count","displayafter_attempts","limit","registerUser","loginuser","messageTitleOverride","createMemberMessageHandler","memberid","startAts","showMagnificAlert","verifyAddress","previousEmail","setProcessing","originalFbButtonLabel","copy","loginFBUser","fbAuthInfo","fbUserInfo","err","userinfo","first_name","last_name","authToken","user","frmDisabled","errorExists","elem","getError","passwordErrors","pword2","passwordInvalid","passwordMatch","fields","requirecompany","valdiatePasswordStrength","emailRegEx","errMessage","alertType","messagetitle","recaptchaCallback","validateCaptcha","iosPositioningFix","navigator","platform","scrollTo","payload","passwordValidation","passwordErrorIsString","params","changepassword","utility","getAllUrlParams","showcompany","isoptional","addressRegEx","bankAccountNumberRegEx","bankRoutingNumberRegEx","caGSTHSTNumberRegEx","caGSTHSTNumberLowerCaseRegEx","caBankAccountNumberRegEx","caBankTransitRegEx","caInstitutionNumberRegEx","caPostalCodeRegEx","caSinRegEx","cityRegEx","einRegEx","noSpecialCharsForFileRegEx","phoneRegEx","poboxRegEx","ssnFullRegEx","ssnLast4RegEx","uriRegEx","zipcodeRegEx","canadianPostalCodeRegEx","validateZipOrPostalCode","sugCacheFactory","getMemberInfo","extended","forceRefresh","urlid","memberinfo","keyExists","extendedinfo","set","getUserInfo","requires","modal","win","authSvc","timeout","getLogin","disableRegistration","showregistrationfirst","updateMenu","menu","isD","allowRegistration","loggedin","attrs","asyncSuccess","objForm","owner","getUrlParamValue","siid","imid","usealternatename","changemembermame","displayfirstname","displaylastname","savecontactinfo","cancelBtn","deleteBtn","breadcrumbBtn","contactinfo","additionalinfo","standardErrors","email_invalid","email_length","firstname_length","lastname_length","quantity_invalid","errormessage","logout","thismemberid","mid","finally","sugTagManager","preplogin","required","destination","allowregister","showregister","signupPageService","cachedMemberinfo","cachedThemeClass","getThemeClassInfo","cachedAttrs","getAttrs","useSinglePageApplication","getSignUpFormAttrs","cacheObj","getSignUpTheme","getSignUpFormItems","processSignUp","cancelForm","setAttrs","checkSignUpAds","getCompletedSignUpDetail","removeSignupTransaction","completeSignupTransaction","completeWePayPayment","completeLumaPayPayment","getMerchantOutage","$filter","$modal","urlparts","urlkey","tabgroupurlkey","signupinfo","themeinfo","tabgroup","calendardates","arrSignUpDates","displayMonth","currentMonth","paginationMetadata","customThemeId","defaultTtl","isSignUpLocked","toggleDefaultTtl","setTimeout","setUrlParts","info","el","getUrlParts","setUrlKey","getUrlKey","setCustomThemeId","themeId","getCustomThemeId","setPortalId","getPortalId","setTabGroup","getTabGroup","setTabGroupUrlKey","getTabGroupUrlKey","setTabIndex","getTabIndex","setMemberInfo","setSignUpInfo","getSignUpInfo","setThemeInfo","getSignUpParticipantsBySlotItem","getThemeInfo","setThemeClassInfo","themeclassinfo","setCalendarDates","getCalendarDates","setSignUpDates","getSignUpDates","setDisplayMonth","getDisplayMonth","setCurrentMonth","getCurrentMonth","setPaginationMetadata","calendarview","lastCalendarMonth","lastmonthwithslots","firstCalendarMonth","firstmonthwithslots","getPaginationMetadata","setEmbedPortalInfo","getEmbedPortalInfo","convertParamsToUrlParts","parts","getAvailability","intLimit","intTaken","blnAddLocked","blnSignupLocked","stcAvailable","qtyLabel","qtyLabelResponsive","btnState","strTaken","strLimit","deleteItemMember","deleteItemMemberModal","modalInfo","itemmember","getsignup","ttl","gettheme","getSignupTheme","gettabgroup","getportalembeddata","portalEmbedInfo","keyCount","portalid","setFeeMessage","signupInfo","feeMessage","wprate","iswp","fee_payer","cur","currency","initializePagination","frmObj","totalSlots","slotmetadata","totalslots","isAllSignUpDatesHidden","allSlotsHidden","sliceEnd","numPerPage","allItemSlots","slotsArray","slots","itemsort","slotA","slotB","locationid","currentSlots","slice","listPagination","currentPage","paginatedItemSlots","itemSlot","itemDetail","dates","rebuiltSlot","items","starttime","showLocation","displaycolumns","showTimeColumn","showPagination","slot","itemId","itemDetails","hasOwn","signuplocked","alldateshidden","contents","class","action","border","callBack","loginfactory","adService","$rootScope","$route","globalJSService","sortableService","showLoading","loginModal","initialized","signupLoaded","signup","theme","signupTitle","formMainTitle","signupDesc","datedisplay","dateformat","shortZone","tbodyColCt","nodatesignup","arrpaytypes","hasPayItems","paymentRequired","hasPaid","hasPaidStatus","paymentIsPending","closeLock","modifyLock","commentsRequired","emailrequired","qtyLimitEnabled","socialshare","signupQtyLimit","itemQtyLimit","customFields","cq_address","cq_phone","totalPrice","currency_symbol","currency_code","isrsvp","rsvpdetails","rsvpheader","editmode","showsegments","thankYouTemplate","isProcessing","anonymous","showreturntosulink","rsvpitemsavailable","editLocked","disableState","rItemQtyLookup","winorigin","origin","protocol","host","hAdWidth","containerWidth","selectedState","selectedCountry","states","filteredStates","signupiswepay","wpfeepayer","signupislumapay","lpfeepayer","backtosignupLink","showTPCookie","wpiframesrc","disablesignup","showproductimage","usenewaddirective","adconfig","network","category","section","themeid","rsvpid","previewOnly","pidParam","invisibleRecaptcha","recaptchaActive","validatedData","newValue","oldValue","triggerEvent","submitSignupData","processedData","processSignUpHander","errormessages","submitBtn","signmeupfor","backtosignup","addtocalendar","editmysignup","editmyrsvp","returntosignup","saveContactInfo","payLater","email_disallowed","notificationsurl","globalcfg","notificationsURL","countries","end","includes","setFormElements","moddate","lockdatetime","description","shortdformat","tzshort","nodate","closelock","modifylockdays","commentrequired","emailRequired","qtylimit_signup","qtylimit_slotitems","usersvp","signupowner","signupcontact","contactname","islp","lprate","linktowebsite","linktowebsitebtn","ltw","returntosulink","wepayOutage","showAlert","rsvpresponse","rsvpadult","rsvpchildren","rsvpitems","rsvpcomments","rsvp","rsvpcount","rsvpchildcount","comment","usetime","dtstarttime","dtendtime","hdrPronouns","endtime","closedateutc","itemHandler","slotitemid","availableqty","memberitems","thisAvailableQty","myqty","temp","slotError","qtyError","commentError","getItemBySlotItemID","item","lookupItemBySlotItemID","itemmemberid","itemid","lookupItemIdBySlotItemID","mycomment","deleted","qty","qtyLookupBySlotItemID","addMoreRSVPItem","hascustomfields","customfields","customQuestionHander","createInput","name","input","member","fuse","newad","adnetworks","adnetworkdatafile","networks","getAdNetwork","siids","includeAdvanceDetails","token","signupprotection","recaptchaResponse","themeID","returnType","noSlotSelected","createSignUpStyle","hasProductImages","productimages","userAgent","cookieEnabled","wpresponse","setWePayCookie","accountrequired","refreshSelectPicker","nval","oval","signup_Template","lowerCaseIt","styleContainer","dStyles","getQtyArray","includezero","calculateLinePrice","servicefee","numMatch","calcAggregate","qtyArr","discountisavailable","discounttype","getTotalQuantities","itemTotalQty","expirationDate","_thisminprice","_thisPrice","priceError","errorMessage","paymenttype","minimumamount","toFloat","price","isObject","paymentOptionSelected","itm","discountcriteria","paymentAmount","discountprice","currentDate","setPriceTwoDecimals","removebranding","selectHandler","myvalue","cid","fieldname","fieldvalues","optionval","countryid","filterStates","canadianStates","usStates","cq_label","field_name","showHorizontal","cq_Template","getMaxVal","ProcessSignUp","paylater","tmp_cq_phone","validateCustomFields","slotid","isLoggedin","fieldtype","executeRecaptcha","grecaptcha","execute","invokeCallback","validationResponse","fullurl","updateSelectedItem","idx","getPaymentOptionLabel","option","slottitle","insert","arrUnfilled","removeRSVPItem","moreItems","rsvpMe","selectpicker","share","media","signupurl","encodeURIComponent","signupimage","mediaurl","winsize","py","px","tweettext","outerHeight","screenY","outerWidth","screenX","getICS","cal","icalLink","calLinks","myitems","callink","icsCal","ical","getContactInfoValue","contactInfo","membercontact","address1","address2","city","state","zipcode","country","phonetype","phone","ftype","deleteSignUp","delUrl","goBackTo","url","redirect","deployads","canDelete","parseFloat","str","showThankYou","extendedattrs","extendedattributes","confirmationsent","showCalendar","icals","slotids","isfullmember","fullmember","ty","retargetingscripts","innerHTML","attending","showrsvpguests","guestString","myresp","childrsvp","adultString","editrsvplink","haslocation","rsvplocation","rsvpdatetime","gc","google","itemhelp","itemcomment","slotdatestring","editsignuplink","initRoktSnippet","initAdsPostXSnippet","hideBannerAdsForRokt","arrItems","paymentConfig","wepay","signuppaymentid","lumapay","pobj","pdata","pp_form","completeWePaySignUp","wePayModal","completeLumaPaySignUp","LumaPayModal","catch","console","iFrameConfig","lumaPayModal","dopayment","nameOnCard","payerinfo","zip","address","postal_code","amount","serviceFee","stripeapikey","sugpublickey","stripeapiversion","APIVersion","environment","secureURL","hostname","mainScope","wepayclientid","wepayendpoint","oauthenvironment","sanbox","pp_data","sandbox","method","appendChild","paypalemailaddress","custom","cancel_return","notify_url","cbt","body","submit","_thisprices","_thisoptions","itemname","mydonation","paymentOptions","itemimage","eventStartTime","_thisptype","paymentrequired","optionnamelist","optionpricelist","oidx","opt","optionselected","amountpaid","dfn","dln","sfn","sln","discountlabel","dropdownqty","ispp","addressRequired","phoneRequired","thisval","newitem","fieldorder","customdataid","thisValue","minlen","maxlen","matched","reqkeyes","phonePopulated","state_zip","checked","minval","maxval","ischecked","adult","totalQty","hasEmptyRows","elemLenCheck","validateEmail","search","rsvpadults","signupqtylimit","itemsArr","totalQtyByItem","itemFound","row","editSignup","listformat","attrsObj","refreshPicker","strclass","classname","locationexist","sl","checkoutid","wp","accountregistration","setHeaderAdCode","backToSignUp","urlId","$modalInstance","countDown","$sce","credit_card_id","handleMessageEvent","checkoutOrigin","stcData","payment_method","credit_card","iframeSrc","iFrameSrc","trustAsResourceUrl","loading","eventAddMethod","eventRemoveMethod","messageEvent","eventerAdd","eventerRemove","showConfirmationModal","txtConfirmationTitle","txtConfirmationMessage","lblYesButton","loaded","errorService","es","newInstance","errorStrings","errorsTitle","errorsPleaseCorrect","progress","submitted","buttonText","grossamount","currency_suffix","paymentElement","stripe","Stripe","stripeAccount","stripeaccount","apiVersion","broadCast","clientSecret","clientsecret","appearance","elements","create","mount","handleSubmit","clearErrors","confirmPayment","confirmParams","return_url","returnurl","setError","paymentIntent","password2","styleoverride","allTrue","useglyph","passwordComplexity","passwordValid","displayError","accountdetails","error_description","error_code","checkStrength","pass","pass2","ruletype","passwordLenValue","rule","minvalue","maxvalue","regexPattern","pattern","strengthValue","errors","getErrors","isStringNullOrEmpty","isEmptyObject","field","arrErrors","hasOwnProperty","jQuery","coreService","participantDetailsModalController","$templateCache","profilePicService","memberId","slotdata","slotitem","showprofilepics","shownames","signuptype","themestyles","modalParticipants","showfullcomment","prepareSettings","settingID","searchFilter","orderColumn","arrowDir","pagination","ldDeferred","isSending","slotimages","disableForm","strings","table","first","last","quantity","noData","noFilteredData","errorDirective","slotinfo","timelabel","imagealttext","datelabel","locdetail","popTrig","popPlacement","popDelay","recordCount","perPageOptions","previouscount","blnDisabled","frmDisableField","filterData","setSort","columnKey","loadData","begin","participantsFiltered","blnForceRefresh","intLastVisibleRow","intQryRowStart","intQryRowEnd","participantcount","intOffset","limitTo","orderBy","orderDesc","memberidViewing","arrCurrentDataSet","getAjaxResponseMessage","participants","setSearchFocus","parseProfilePicData","participant","setPerPage","nVal","oVal","newVal","oldVal","isFinite","itemsPerPageInvalid","datalabel","dateLabel","timeLabel","images","itemdescription","themecss","classContainer","wrapperSelector","themeStyles","backgroundcolor","backgroundimage","pop","textcolor2","textcolor1","buttoncolor","tableheaderbackground","tableheadertext","tableheaderimage","buttontextcolor","$inject","calendarViewModalController","objDate","selectionHistoryArray","selectedSlotItems","isUserSignUpOwner","isUserSignUpAdmin","isLocked","arrUserSlotItems","userSignUp","toggleSlotItem","getDateLabel","getQtyForMember","editItemMember","swapItemMember","openParticipantDetails","showLocationColumn","showStacked","columnCount","showPaymentMessage","paymentMessage","deleteInfo","slotitemfound","slotitems","qtytaken","isaddlocked","hasavailableslots","lbls","availableslot","donation","default","sorryNoSlotItemsSelected","local_toggleSlotItem","showImageController","formatted","jsDateOnly","productImageObject","showImages","saveandcontinue","selectotherdays","deleteItemMemberModalController","notifycomment","isPaymentPending","commentLabel","modalTitle","slotmsg","noUndo","paymentPendingWarning","dismissable","buttonLabel","blnProcessing","showQty","ok","notify","errMsg","contactName","$routeProvider","pathname","part","tgUrlkey","previewMode","pid","tabgroupkey","misvc","memInfo","forSignUpView","qryParams","URLSearchParams","urlID","previewModeStyles","signupid","previewDate","urlparams","viewDate","otherwise","redirectTo","adSvc","$anchorScroll","isTabGroup","isTabbedSignup","isUserLoggedIn","showBackToPortal","newformat","oldformat","fullsecureurl","participantRecs","showAlreadySignedUp","showEditMySignUp","hasParticipants","editSignUp","objConfig","responsive","getTemplate","templates","view","format","setTabProperties","tab","tabsToDisplay","tabcount","maxtabGroups","firstDisplay","lastDisplay","previous","tabsignups","setTabThemes","initializeTabObject","tabheader","header","signups","selectedTabGroup","othertabs","lookupTabIndex","setupController","setupTabGroup","memberInfo","procesSignupObject","fromEmbeddedPortal","allowembed","hasPortalId","baseURL","adconfigleft","adconfigright","hSegmentWidth","vSegmentSide","contentSide","showCalendarIcon","showCalendarView","showParticipantNote","showFundly","selectedSlotItemsDirty","popText","availableSlot","created","loc","files","contact","calendarsync","alreadysignedup","changesignup","copyrightYear","participantNote","calendarView","listView","icons","download","listview","admin","btnSubmit","countOnYes","countOnMaybe","editRSVP","myrsvp","noresponse","notMe","child","confirmed","guest","head","maybe","no","noresponseHead","responses","yes","rsvpFor","signedUpFor","ancillary","messages","swapSubmitted","swapComplete","emailSent","emailSentNoBranding","ancillaryMessage","adminToolbar","backToPortal","tabMenu","virtualLocations","locationType","checkItemQuantityLimit","getPage","pageNumber","clsDetail","addOpacity2color","color2rgb","getContainerClass","hasAvailableSlots","isAllDatesHidden","showHeaderDate","showHeaderTime","showHeaderLocation","getFileExt","filename","arrFile","clickSignUp","alert","clickEditSignUp","clickCalendarSync","calendar","toggleCalendarView","switchTo","fromPageLoad","determineSignupType","refreshPageAds","donotshow","getDeleteModalInfo","notifyme","notificationids","signupformpath","generateAttrs","swappath","unwind","selectedIdx","findIndex","siID","checkSignupQuantityLimit","qtyLimit","qtyLimitMessage","participantItemStr","qtyLimitStr","getImageStyle","elemId","img","coords","imagecropcoords","cw","offsetWidth","ch","offsetHeight","x1","imagewidth","imageheight","y1","coordw","coordh","margin-left","margin-top","showZoomedImage","magnificPopup","removalDelay","passcode","themeclass","virtuallocations","locations","objTheme","mainimages","image","Image","desktopmemberimage","onload","pageTitle","group","urlParams","buildHeader","headerTemplate","themetemplateid","dateString","timeString","useTime","virtualLocAddress","locAddress","isVirtualLocation","virtuallocationid","isPhysicalLocation","locationString","virtuallocationlinkurl","locationlinkurl","showAttachments","attachments","showCalendarSync","showSocialShare","contacturl","lockedmessage","noavailableslotsmessage","hiddendatesmessage","urlParms","msg","segmentSide","setIsUserSignUpAdmin","let","subAdminHasPermission","parentid","perms","canManageSignUp","manage","canManageGroups","canViewReports","report","canManagePeople","people","hashidenames","stcParticipants","deepCopy","expired","arrRSVP","rsvpRecs","fundlyurl","istabbed","tabgroupid","tabData","suTabBorderColor","suTabBackgroundStyle","changeTab","checkForTabTruncation","fullTitle","scrollWidth","signupData","themeData","Number","participantData","saveAndContinue","mainimage","changeTabGroup","embedportalinfo","signuptabbing","fullpath","container","background-color","errorBGColor","errorBorderColor","errorTextColor","cvBorderColor","TextColor2","mutedTextColor1","mutedButtonColor","instruction","contactlink","accessCode","submitAccessCode","contactLink","linkcolor","themeInfo","dateFormat","setScroll","scrollableElems","getElementsByClassName","elemWrap","elemSubj","calcScroll","arrData","displayLimits","slotCount","filteredData","slotTemplate","slotIdx","slotitemIdx","sIdx","isIntegerGTE0","siIdx","setFilteredData","elWrap","elSubject","intBuffer","elemHeight","intSubjectWidth","columnWidths","intWrapWidth","max-width","min-width","strStart","dtStart","day","getTimeLabel","strEnd","strLabel","dtEnd","showTime","getLocationObj","locId","strLoc","stcLocation","stcLoc","increaseDisplayLimits","getColumnCount","showDateColumn","columnCountShown","firstIteration","increaseSlotLimit","increaseDateLimit","objSlots","showicon","virtuallocationurl","physicalandvirtual","virtualLocationId","virtuallocationtype","objImages","itemimages","isSelected","dtA","dtB","locA","locB","locIdA","locIdB","uniqueDates","flags","dateCount","calcShowTimeColumn","firstslotid","dt","daterowspan","uniqueLocs","loc_key","loc_slot_key","newLocation","locrowspan","mostSlots","scroll","filteredSlots","responded","counts","responseNote","participantNames","getParticipantCountSummary","filterSlots","adultCount","childCount","participantCountSummary","adultDescriptor","getNameInitialDisplay","displayname","initials","charAt","setMyRSVP","stcNameInitials","responseLabel","myRSVP","itemlabel","isTrue","showrsvp","yesrsvps","norsvps","maybersvps","yesguests","maybeguests","yeschild","maybechild","rsvps","stcParticipant","summaryLabel","inv","invitees","stcNRNameInitials","isHasReponded","emailpart","displaynameA","displaynameB","qtyTaken","objParticipant","slotTitleTruncateAt","defaultBtnState","selectedBtnState","itemIdx","Iidx","setBottomBorders","showBottomDateBorder","showBottomLocBorder","locationrowspan","oA","itemorder","oB","uniqueAggDates","aggFlags","aggKey","firstslotitemid","arrLocs","tempLoc","lastLoc","colspan","nestedColSpan","elSlot","intNestedHeight","elLastButtonTD","elButtonTd","intDifference","displayLimit","increaseDisplayLimit","baseCalendarParams","calendarMonth","calendarSlots","hasCalendarSlots","signedup","daysOfWeek","calendarGrid","jsDate","monthname","jsFDOM","jsLDOM","firstdayofweek","jsMinDate","jsMaxDate","locked","objCalendarCache","arrGridDays","objGridDayBlank","signUpDateBlank","isUserSignedUp","isFull","moreLabel","hasTimes","slotsAvailable","selectedMonth","getSlotsForDate","calendarLoading","validateSelectedSlotItemsForDate","openCalendarItem","slotsCopy","ObjDateCopy","getButtonStatuses","toggleDateStatus","buttonStatus","changeMonth","newDate","getSlotsForCurrentMonth","queryMonth","getSelectedTooltip","tip","returnObj","virtualLocation","jsstarttime","displayitems","product","rebuildSlotSorted","objSignup","retDates","arrSlots","arrDates","currentSlot","objSlotItemIndex","slotItemsByDate","siidx","arrSlotItems","getSlotItemsFromSlotSorted","dateid","arrNewItems","didx","slotItemIndex","isUndefinedOrNullOrEmpty","tmpSlots","tmpSlot","sidx","objNewSlots","signupslot","st","applyDisplayLimit","itemCount","getIsFull","getIsLocked","getIsUserSignedUp","getIsSelected","getButtonStatus","us","sortSignUpDates","dtC","dtD","setUserSignups","getPrevMonth","getNextMonth","currFOM","toDateString","firstdayofmonth","currDate","prevMonth","metadata","prevMonthDisabled","nextFOM","nextMonthDisabled","optionalRequestParams","additionalParams","slotMetadata","objSignupInfo","isDateAlreadyExists","_signUpDate","startingIndex","endingIndex","objDay","entry","desc","basedesc","numofsignups","showing","syncToMyCalendar","calurl","syncToGoogle","googleurl","toggleHelp","displayHelp","activeCalTab","$interpolate","processText","$ele","strVal","iMaxWidth","maxWidth","useEleWidth","strFont","iLen","iFullLen","iTruncatedMaxWidth","getTextWidth","substring","font","context","canvas","getContext","measureText","totalParticipants","commentLength","showNames","showProfilePics","hasAds","segmentsConfig","isSignupCloseLocked","isModifyLocked","onEdit","onSwap","onDelete","onOpenDetails","trig","delay","edit","swap","delete","paymentpending","getParticipantLimit","getMoreParticipantsCount","showMoreParticipants","showParticipantSummary","showParticipant","getCommentLength","mediasize","showMoreLink","getFullName","isInteger","ngStyle","btnClasses","btnDisabledClickable","stateLabels","getBtnLabel","updateBtnState","getBtnStyles","color","ippOptions","ippDataLength","ippNumberPerPage","onSetPerPage","showItemsPerPage","addDirectiveStyles","selector","iframesrc","slug","viewurl","poweredby","viewlink","showmodal","adBlockerUsageModalCtrl","showModal","adBlockerDiv","textContent","className","adBlockerScript","sugabuAdsLoaded"],"mappings":"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","file":"signup.min.js","sourcesContent":["/**\r\n * services for member's settings\r\n **/\r\nSUGApp.service('globalService', ['$http', 'SUGUtilities', '$q', '$window', '$location', function( $http, SUGUtilities, $q, $window, $location ){\r\n\r\n\tvar globalService = {};\r\n\r\n\tvar defaultTtl = 60000;\r\n\r\n\tglobalService.getDateAndTZFormats = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", \"m.getDateAndTimeZoneFormats\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getDateFormatSamples = function( id ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", {ID:id}, \"m.getDateFormatSamples\", 15000 );\r\n\t};\r\n\r\n\tglobalService.setDateAndTZFormats = function( dateformatid, zoneid, signUpDefault ){\r\n\t\treturn \tSUGUtilities.APISyncCall( \"post\", \"\", {dateformatid:dateformatid,zoneid:zoneid,signUpDefault:signUpDefault}, \"m.saveDateAndTZSettings\", 15000 );\r\n\t};\r\n\r\n\tglobalService.setSignUpDateAndTZSettings = function( data ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"w.saveSignUpDateAndTZSettings\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getCountries = function(){\r\n\t\treturn SUGUtilities.APISyncCallWithCaching( \"get\", \"\", \"\", \"g.getCountries\", 15000 );\t\t\t\t\r\n\t};\r\n\r\n\tglobalService.getTimeZonesByCountry = function( countrycode ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", {countrycode:countrycode}, \"g.getTimeZonesByCountry\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getTimeZonesByZoneGroup = function( countrycode, zoneGroupID, includetzshort ){\r\n\t\tvar data = {countrycode:countrycode,zoneGroupID:zoneGroupID};\r\n\t\tif( typeof includetzshort !== 'undefined'){ data.includetzshort = includetzshort; }\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getTimeZonesByZoneGroup\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getZoneGroupsByCountry = function( countryCode ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", {countryCode:countryCode}, \"g.getZoneGroupsByCountry\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getInternationalDateFormats = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", \"g.getInternationalDateFormats\", 15000 );\r\n\t};\r\n\r\n\tglobalService.uploadFile = function( uploadUrl, fileObj, destDirectory ){\r\n\t\tif( typeof uploadUrl === 'undefined' || typeof fileObj === 'undefined' || typeof destDirectory === 'undefined' )\r\n\t\t\treturn 'uploadUrl, fileObj, destDirectory are all required.';\r\n\r\n var fd = new FormData();\r\n \tfd.append('file', fileObj );\r\n \tfd.append('directory', destDirectory);\r\n return $http.post(uploadUrl, fd, {\r\n\t transformRequest: angular.identity,\r\n\t headers: {'Content-Type': undefined}\r\n\t })\r\n\t .success(function( result ){\r\n\t \treturn result;\r\n\t })\r\n\t .error(function( result ){\r\n\t \treturn result;\r\n\t });\r\n\r\n };\r\n\r\n\r\n\tglobalService.getEventLogByType = function(data){\r\n\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getEventLogByType\", 15000 );\r\n\t};\r\n\r\n\tglobalService.hasPermission = function( permission ){\r\n\t\tif( typeof permission == undefined )\r\n\t\t\treturn false;\r\n\t\telse\r\n\t\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", permission, \"g.hasPermission\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getMemberSettings = function(data){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getMemberSettings\", 15000 );\r\n\t};\r\n\r\n\tglobalService.updateMemberSignUpSettings = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.updateMemberSignUpSettings\", 15000 );\r\n };\r\n\r\n\tglobalService.getSetting = function(){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", \"\", \"g.getSetting\", 15000 );\r\n };\r\n\r\n\tglobalService.getGlobalSettings = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getGlobalSettings\", 15000 );\r\n };\r\n\r\n\tglobalService.saveSetting = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.saveSetting\", 15000 );\r\n };\r\n\r\n\tglobalService.getMemberID = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", 'm.getMemberID' );\r\n\t};\r\n\r\n\tglobalService.getActualMemberID = function(){\r\n\t\treturn SUGUtilities.APISyncCall( \"get\", \"\", \"\", 'm.getActualMemberID' );\r\n\t};\r\n\r\n\tglobalService.getMemberInformation = function(data){\r\n\t\tif( SUGUtilities.isUndefinedOrEmptyObject(data) ){\r\n\t\t\treturn SUGUtilities.APISyncCall(\"get\", \"\", \"\", \"m.getMemberInfo\", 15000 );\r\n\t\t} else {\r\n\t\t\treturn SUGUtilities.APISyncCall(\"post\", \"\", data, \"m.getMemberInfo\", 15000 );\r\n\t\t}\r\n\t};\r\n\r\n\tglobalService.getSettingCategory = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getSettingCategory\", 15000 );\r\n };\r\n\r\n\tglobalService.checkPermission = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.checkPermission\", 15000 );\r\n };\r\n\r\n\tglobalService.getGlobalVariable = function( data ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getGlobalVariable\", 15000 );\r\n\t};\r\n globalService.getMerchantConfig = function( data ){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getMerchantConfiguration\", 15000 );\r\n };\r\n\r\n globalService.isLoggedIn = function(){\r\n var deferred = $q.defer();\r\n globalService.getMemberID().then(function (response) {\r\n // successfully retrieved member info\r\n var r = SUGUtilities.lowerCaseKeys(response);\r\n if(r.data && r.data.code && r.data.code === 1002){\r\n $window.location.reload();\r\n deferred.reject(false);\r\n } else {\r\n deferred.resolve(true);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n\tglobalService.checkNewAdDirective = function( data ){\r\n\t\treturn SUGUtilities.APISyncCallWithCaching( \"post\", \"\", data, \"g.useNewAdDirective\", 15000 );\r\n\t};\r\n\r\n\tglobalService.isFeatureEnabled = function( data ){\r\n\t\treturn SUGUtilities.APISyncCall( \"post\", \"\", data, \"g.isFeatureEnabled\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getFeatureDetailByName = function( data ){\r\n\t\treturn \tSUGUtilities.APISyncCall( \"post\", \"\", data, \"g.getFeatureDetailByName\", 15000 );\r\n\t};\r\n\r\n\tglobalService.getFeatureMessageAmounts = function(data){\r\n\t\treturn SUGUtilities.APISyncCallWithCaching( \"post\", \"\", data, \"g.getFeatureMessageAmounts\", 15000, defaultTtl );\t\t\t\t\r\n\t};\r\n\r\n\t/**\r\n\t * Used to verify page access during AngularJS route resolution (not for security but for improved UX)\r\n\t *\r\n\t * @param {String} permlist - The permission(s) to check\r\n\t * @param {String} failpage - Optional page to redirect to on permission check failure, otherwise directs to the '/' route\r\n\t * @param {Number} listid - Optional listid to verify access against\r\n\t */\r\n\tglobalService.checkPageAccess = function(permlist,failpage,listid){\r\n\t\tvar deferred = $q.defer();\r\n\t\tglobalService.checkPermission({\r\n\t\t\tpermissioncode: permlist\r\n\t\t}).then(function (response) {\r\n\t\t\tif (!SUGUtilities.ajaxResultInvalid(response)) {\r\n\t\t\t\tvar r = SUGUtilities.lowerCaseKeys(response);\r\n\t\t\t\t// see if we need to validate against a specific listid\r\n\t\t\t\tif(SUGUtilities.isIntegerGT0(listid) && r.data.data.authtype && r.data.data.authtype === 'P' && r.data.data.listids){\r\n\t\t\t\t\tvar arrListIDs = r.data.data.listids.toString().split(',');\r\n\t\t\t\t\tvar matchedAuthID = arrListIDs.some(function(currListID){\r\n\t\t\t\t\t\treturn (+currListID === +listid);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif(matchedAuthID){\r\n\t\t\t\t\t\tdeferred.resolve(r.data.data);\r\n\t\t\t\t\t} else if (typeof failpage !== 'undefined' && failpage.length) {\r\n\t\t\t\t\t\t$window.location.href = failpage;\r\n\t\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$location.path('/');\r\n\t\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.resolve(r.data.data);\r\n\t\t\t\t}\r\n\t\t\t} else if (typeof failpage !== 'undefined' && failpage.length) {\r\n\t\t\t\t$window.location.href = failpage;\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t} else {\r\n\t\t\t\t$location.path('/');\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn deferred.promise;\r\n\t};\r\n\r\n\tglobalService.logAdBlockerUsage = function(data){\r\n return SUGUtilities.APISyncCall( \"post\", \"\", data, \"c.logAdBlockerUsage\", 15000 );\r\n\t};\r\n\t\r\n\t// sanitize for XSS\r\n\tglobalService.sanitize = function (data) {\r\n\t\treturn SUGUtilities.APISyncCall('post', '', data, 'g.sanitize', 15000);\r\n\t};\r\n\r\n\t\r\n\t/**\r\n * \r\n * @param {string} data the id of the owner \r\n * @returns \r\n */\r\n\tglobalService.getInvisibleReCaptcha = function(data) {\t\r\n\t\treturn SUGUtilities.APISyncCall(\"post\", \"\", data, \"g.getInvisibleReCaptcha\", 15000);\r\n\t}\r\n\r\n\t/** validates a recaptcha token returned by Google's invisible recaptcha\r\n\t * \r\n\t * @param {string} key - token to validate\r\n\t * @returns \r\n\t */\r\n\t/** method to verify the captcha response **/\r\n\tglobalService.validateInvisibleReCaptcha = function(key) {\r\n\t\treturn SUGUtilities.APISyncCall(\"post\", \"\", key, \"g.validateInvisibleReCaptcha\", 15000);\r\n\t}\r\n\t\r\n // return object\r\n return globalService;\r\n\r\n}]);\r\n","/*\r\n * angular-ui-bootstrap\r\n * http://angular-ui.github.io/bootstrap/\r\n\r\n * Version: 0.14.3 - 2015-10-23\r\n * License: MIT\r\n */\r\nangular.module(\"ui.bootstrap\",[\"ui.bootstrap.tpls\",\"ui.bootstrap.collapse\",\"ui.bootstrap.accordion\",\"ui.bootstrap.alert\",\"ui.bootstrap.buttons\",\"ui.bootstrap.carousel\",\"ui.bootstrap.dateparser\",\"ui.bootstrap.position\",\"ui.bootstrap.datepicker\",\"ui.bootstrap.dropdown\",\"ui.bootstrap.stackedMap\",\"ui.bootstrap.modal\",\"ui.bootstrap.pagination\",\"ui.bootstrap.tooltip\",\"ui.bootstrap.popover\",\"ui.bootstrap.progressbar\",\"ui.bootstrap.rating\",\"ui.bootstrap.tabs\",\"ui.bootstrap.timepicker\",\"ui.bootstrap.typeahead\"]),angular.module(\"ui.bootstrap.tpls\",[\"template/accordion/accordion-group.html\",\"template/accordion/accordion.html\",\"template/alert/alert.html\",\"template/carousel/carousel.html\",\"template/carousel/slide.html\",\"template/datepicker/datepicker.html\",\"template/datepicker/day.html\",\"template/datepicker/month.html\",\"template/datepicker/popup.html\",\"template/datepicker/year.html\",\"template/modal/backdrop.html\",\"template/modal/window.html\",\"template/pagination/pager.html\",\"template/pagination/pagination.html\",\"template/tooltip/tooltip-html-popup.html\",\"template/tooltip/tooltip-popup.html\",\"template/tooltip/tooltip-template-popup.html\",\"template/popover/popover-html.html\",\"template/popover/popover-template.html\",\"template/popover/popover.html\",\"template/progressbar/bar.html\",\"template/progressbar/progress.html\",\"template/progressbar/progressbar.html\",\"template/rating/rating.html\",\"template/tabs/tab.html\",\"template/tabs/tabset.html\",\"template/timepicker/timepicker.html\",\"template/typeahead/typeahead-match.html\",\"template/typeahead/typeahead-popup.html\"]),angular.module(\"ui.bootstrap.collapse\",[]).directive(\"uibCollapse\",[\"$animate\",\"$injector\",function(a,b){var c=b.has(\"$animateCss\")?b.get(\"$animateCss\"):null;return{link:function(b,d,e){function f(){d.removeClass(\"collapse\").addClass(\"collapsing\").attr(\"aria-expanded\",!0).attr(\"aria-hidden\",!1),c?c(d,{addClass:\"in\",easing:\"ease\",to:{height:d[0].scrollHeight+\"px\"}}).start()[\"finally\"](g):a.addClass(d,\"in\",{to:{height:d[0].scrollHeight+\"px\"}}).then(g)}function g(){d.removeClass(\"collapsing\").addClass(\"collapse\").css({height:\"auto\"})}function h(){return d.hasClass(\"collapse\")||d.hasClass(\"in\")?(d.css({height:d[0].scrollHeight+\"px\"}).removeClass(\"collapse\").addClass(\"collapsing\").attr(\"aria-expanded\",!1).attr(\"aria-hidden\",!0),void(c?c(d,{removeClass:\"in\",to:{height:\"0\"}}).start()[\"finally\"](i):a.removeClass(d,\"in\",{to:{height:\"0\"}}).then(i))):i()}function i(){d.css({height:\"0\"}),d.removeClass(\"collapsing\").addClass(\"collapse\")}b.$watch(e.uibCollapse,function(a){a?h():f()})}}}]),angular.module(\"ui.bootstrap.collapse\").value(\"$collapseSuppressWarning\",!1).directive(\"collapse\",[\"$animate\",\"$injector\",\"$log\",\"$collapseSuppressWarning\",function(a,b,c,d){var e=b.has(\"$animateCss\")?b.get(\"$animateCss\"):null;return{link:function(b,f,g){function h(){f.removeClass(\"collapse\").addClass(\"collapsing\").attr(\"aria-expanded\",!0).attr(\"aria-hidden\",!1),e?e(f,{easing:\"ease\",to:{height:f[0].scrollHeight+\"px\"}}).start().done(i):a.animate(f,{},{height:f[0].scrollHeight+\"px\"}).then(i)}function i(){f.removeClass(\"collapsing\").addClass(\"collapse in\").css({height:\"auto\"})}function j(){return f.hasClass(\"collapse\")||f.hasClass(\"in\")?(f.css({height:f[0].scrollHeight+\"px\"}).removeClass(\"collapse in\").addClass(\"collapsing\").attr(\"aria-expanded\",!1).attr(\"aria-hidden\",!0),void(e?e(f,{to:{height:\"0\"}}).start().done(k):a.animate(f,{},{height:\"0\"}).then(k))):k()}function k(){f.css({height:\"0\"}),f.removeClass(\"collapsing\").addClass(\"collapse\")}d||c.warn(\"collapse is now deprecated. Use uib-collapse instead.\"),b.$watch(g.collapse,function(a){a?j():h()})}}}]),angular.module(\"ui.bootstrap.accordion\",[\"ui.bootstrap.collapse\"]).constant(\"uibAccordionConfig\",{closeOthers:!0}).controller(\"UibAccordionController\",[\"$scope\",\"$attrs\",\"uibAccordionConfig\",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on(\"$destroy\",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive(\"uibAccordion\",function(){return{controller:\"UibAccordionController\",controllerAs:\"accordion\",transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion.html\"}}}).directive(\"uibAccordionGroup\",function(){return{require:\"^uibAccordion\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion-group.html\"},scope:{heading:\"@\",isOpen:\"=?\",isDisabled:\"=?\"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||\"panel-open\",a.panelClass=c.panelClass,a.$watch(\"isOpen\",function(c){b.toggleClass(a.openClass,!!c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive(\"uibAccordionHeading\",function(){return{transclude:!0,template:\"\",replace:!0,require:\"^uibAccordionGroup\",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).directive(\"uibAccordionTransclude\",function(){return{require:[\"?^uibAccordionGroup\",\"?^accordionGroup\"],link:function(a,b,c,d){d=d[0]?d[0]:d[1],a.$watch(function(){return d[c.uibAccordionTransclude]},function(a){a&&(b.find(\"span\").html(\"\"),b.find(\"span\").append(a))})}}}),angular.module(\"ui.bootstrap.accordion\").value(\"$accordionSuppressWarning\",!1).controller(\"AccordionController\",[\"$scope\",\"$attrs\",\"$controller\",\"$log\",\"$accordionSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"AccordionController is now deprecated. Use UibAccordionController instead.\"),angular.extend(this,c(\"UibAccordionController\",{$scope:a,$attrs:b}))}]).directive(\"accordion\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{restrict:\"EA\",controller:\"AccordionController\",controllerAs:\"accordion\",transclude:!0,replace:!1,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion.html\"},link:function(){b||a.warn(\"accordion is now deprecated. Use uib-accordion instead.\")}}}]).directive(\"accordionGroup\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{require:\"^accordion\",restrict:\"EA\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/accordion/accordion-group.html\"},scope:{heading:\"@\",isOpen:\"=?\",isDisabled:\"=?\"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(c,d,e,f){b||a.warn(\"accordion-group is now deprecated. Use uib-accordion-group instead.\"),f.addGroup(c),c.openClass=e.openClass||\"panel-open\",c.panelClass=e.panelClass,c.$watch(\"isOpen\",function(a){d.toggleClass(c.openClass,!!a),a&&f.closeOthers(c)}),c.toggleOpen=function(a){c.isDisabled||a&&32!==a.which||(c.isOpen=!c.isOpen)}}}}]).directive(\"accordionHeading\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{restrict:\"EA\",transclude:!0,template:\"\",replace:!0,require:\"^accordionGroup\",link:function(c,d,e,f,g){b||a.warn(\"accordion-heading is now deprecated. Use uib-accordion-heading instead.\"),f.setHeading(g(c,angular.noop))}}}]).directive(\"accordionTransclude\",[\"$log\",\"$accordionSuppressWarning\",function(a,b){return{require:\"^accordionGroup\",link:function(c,d,e,f){b||a.warn(\"accordion-transclude is now deprecated. Use uib-accordion-transclude instead.\"),c.$watch(function(){return f[e.accordionTransclude]},function(a){a&&(d.find(\"span\").html(\"\"),d.find(\"span\").append(a))})}}}]),angular.module(\"ui.bootstrap.alert\",[]).controller(\"UibAlertController\",[\"$scope\",\"$attrs\",\"$interpolate\",\"$timeout\",function(a,b,c,d){a.closeable=!!b.close;var e=angular.isDefined(b.dismissOnTimeout)?c(b.dismissOnTimeout)(a.$parent):null;e&&d(function(){a.close()},parseInt(e,10))}]).directive(\"uibAlert\",function(){return{controller:\"UibAlertController\",controllerAs:\"alert\",templateUrl:function(a,b){return b.templateUrl||\"template/alert/alert.html\"},transclude:!0,replace:!0,scope:{type:\"@\",close:\"&\"}}}),angular.module(\"ui.bootstrap.alert\").value(\"$alertSuppressWarning\",!1).controller(\"AlertController\",[\"$scope\",\"$attrs\",\"$controller\",\"$log\",\"$alertSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"AlertController is now deprecated. Use UibAlertController instead.\"),angular.extend(this,c(\"UibAlertController\",{$scope:a,$attrs:b}))}]).directive(\"alert\",[\"$log\",\"$alertSuppressWarning\",function(a,b){return{controller:\"AlertController\",controllerAs:\"alert\",templateUrl:function(a,b){return b.templateUrl||\"template/alert/alert.html\"},transclude:!0,replace:!0,scope:{type:\"@\",close:\"&\"},link:function(){b||a.warn(\"alert is now deprecated. Use uib-alert instead.\")}}}]),angular.module(\"ui.bootstrap.buttons\",[]).constant(\"uibButtonConfig\",{activeClass:\"active\",toggleEvent:\"click\"}).controller(\"UibButtonsController\",[\"uibButtonConfig\",function(a){this.activeClass=a.activeClass||\"active\",this.toggleEvent=a.toggleEvent||\"click\"}]).directive(\"uibBtnRadio\",function(){return{require:[\"uibBtnRadio\",\"ngModel\"],controller:\"UibButtonsController\",controllerAs:\"buttons\",link:function(a,b,c,d){var e=d[0],f=d[1];b.find(\"input\").css({display:\"none\"}),f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.uibBtnRadio)))},b.on(e.toggleEvent,function(){if(!c.disabled){var d=b.hasClass(e.activeClass);(!d||angular.isDefined(c.uncheckable))&&a.$apply(function(){f.$setViewValue(d?null:a.$eval(c.uibBtnRadio)),f.$render()})}})}}}).directive(\"uibBtnCheckbox\",function(){return{require:[\"uibBtnCheckbox\",\"ngModel\"],controller:\"UibButtonsController\",controllerAs:\"button\",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){return angular.isDefined(b)?a.$eval(b):c}var h=d[0],i=d[1];b.find(\"input\").css({display:\"none\"}),i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.on(h.toggleEvent,function(){c.disabled||a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module(\"ui.bootstrap.buttons\").value(\"$buttonsSuppressWarning\",!1).controller(\"ButtonsController\",[\"$controller\",\"$log\",\"$buttonsSuppressWarning\",function(a,b,c){c||b.warn(\"ButtonsController is now deprecated. Use UibButtonsController instead.\"),angular.extend(this,a(\"UibButtonsController\"))}]).directive(\"btnRadio\",[\"$log\",\"$buttonsSuppressWarning\",function(a,b){return{require:[\"btnRadio\",\"ngModel\"],controller:\"ButtonsController\",controllerAs:\"buttons\",link:function(c,d,e,f){b||a.warn(\"btn-radio is now deprecated. Use uib-btn-radio instead.\");var g=f[0],h=f[1];d.find(\"input\").css({display:\"none\"}),h.$render=function(){d.toggleClass(g.activeClass,angular.equals(h.$modelValue,c.$eval(e.btnRadio)))},d.bind(g.toggleEvent,function(){if(!e.disabled){var a=d.hasClass(g.activeClass);(!a||angular.isDefined(e.uncheckable))&&c.$apply(function(){h.$setViewValue(a?null:c.$eval(e.btnRadio)),h.$render()})}})}}}]).directive(\"btnCheckbox\",[\"$document\",\"$log\",\"$buttonsSuppressWarning\",function(a,b,c){return{require:[\"btnCheckbox\",\"ngModel\"],controller:\"ButtonsController\",controllerAs:\"button\",link:function(d,e,f,g){function h(){return j(f.btnCheckboxTrue,!0)}function i(){return j(f.btnCheckboxFalse,!1)}function j(a,b){var c=d.$eval(a);return angular.isDefined(c)?c:b}c||b.warn(\"btn-checkbox is now deprecated. Use uib-btn-checkbox instead.\");var k=g[0],l=g[1];e.find(\"input\").css({display:\"none\"}),l.$render=function(){e.toggleClass(k.activeClass,angular.equals(l.$modelValue,h()))},e.bind(k.toggleEvent,function(){f.disabled||d.$apply(function(){l.$setViewValue(e.hasClass(k.activeClass)?i():h()),l.$render()})}),e.on(\"keypress\",function(b){f.disabled||32!==b.which||a[0].activeElement!==e[0]||d.$apply(function(){l.$setViewValue(e.hasClass(k.activeClass)?i():h()),l.$render()})})}}}]),angular.module(\"ui.bootstrap.carousel\",[]).controller(\"UibCarouselController\",[\"$scope\",\"$element\",\"$interval\",\"$animate\",function(a,b,c,d){function e(b,c,e){s||(angular.extend(b,{direction:e,active:!0}),angular.extend(m.currentSlide||{},{direction:e,active:!1}),d.enabled()&&!a.noTransition&&!a.$currentTransition&&b.$element&&m.slides.length>1&&(b.$element.data(q,b.direction),m.currentSlide&&m.currentSlide.$element&&m.currentSlide.$element.data(q,b.direction),a.$currentTransition=!0,o?d.on(\"addClass\",b.$element,function(b,c){\"close\"===c&&(a.$currentTransition=null,d.off(\"addClass\",b))}):b.$element.one(\"$animate:close\",function(){a.$currentTransition=null})),m.currentSlide=b,r=c,g())}function f(a){if(angular.isUndefined(n[a].index))return n[a];var b;n.length;for(b=0;b0&&(k=c(i,b))}function h(){k&&(c.cancel(k),k=null)}function i(){var b=+a.interval;l&&!isNaN(b)&&b>0&&n.length?a.next():a.pause()}function j(b){b.length||(a.$currentTransition=null)}var k,l,m=this,n=m.slides=a.slides=[],o=angular.version.minor>=4,p=\"uib-noTransition\",q=\"uib-slideDirection\",r=-1;m.currentSlide=null;var s=!1;m.select=a.select=function(b,c){var d=a.indexOfSlide(b);void 0===c&&(c=d>m.getCurrentIndex()?\"next\":\"prev\"),b&&b!==m.currentSlide&&!a.$currentTransition&&e(b,d,c)},a.$on(\"$destroy\",function(){s=!0}),m.getCurrentIndex=function(){return m.currentSlide&&angular.isDefined(m.currentSlide.index)?+m.currentSlide.index:r},a.indexOfSlide=function(a){return angular.isDefined(a.index)?+a.index:n.indexOf(a)},a.next=function(){var b=(m.getCurrentIndex()+1)%n.length;return 0===b&&a.noWrap()?void a.pause():m.select(f(b),\"next\")},a.prev=function(){var b=m.getCurrentIndex()-1<0?n.length-1:m.getCurrentIndex()-1;return a.noWrap()&&b===n.length-1?void a.pause():m.select(f(b),\"prev\")},a.isActive=function(a){return m.currentSlide===a},a.$watch(\"interval\",g),a.$watchCollection(\"slides\",j),a.$on(\"$destroy\",h),a.play=function(){l||(l=!0,g())},a.pause=function(){a.noPause||(l=!1,h())},m.addSlide=function(b,c){b.$element=c,n.push(b),1===n.length||b.active?(m.select(n[n.length-1]),1===n.length&&a.play()):b.active=!1},m.removeSlide=function(a){angular.isDefined(a.index)&&n.sort(function(a,b){return+a.index>+b.index});var b=n.indexOf(a);n.splice(b,1),n.length>0&&a.active?b>=n.length?m.select(n[b-1]):m.select(n[b]):r>b&&r--,0===n.length&&(m.currentSlide=null)},a.$watch(\"noTransition\",function(a){b.data(p,a)})}]).directive(\"uibCarousel\",[function(){return{transclude:!0,replace:!0,controller:\"UibCarouselController\",controllerAs:\"carousel\",require:\"carousel\",templateUrl:function(a,b){return b.templateUrl||\"template/carousel/carousel.html\"},scope:{interval:\"=\",noTransition:\"=\",noPause:\"=\",noWrap:\"&\"}}}]).directive(\"uibSlide\",function(){return{require:\"^uibCarousel\",restrict:\"EA\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/carousel/slide.html\"},scope:{active:\"=?\",actual:\"=?\",index:\"=?\"},link:function(a,b,c,d){d.addSlide(a,b),a.$on(\"$destroy\",function(){d.removeSlide(a)}),a.$watch(\"active\",function(b){b&&d.select(a)})}}}).animation(\".item\",[\"$injector\",\"$animate\",function(a,b){function c(a,b,c){a.removeClass(b),c&&c()}var d=\"uib-noTransition\",e=\"uib-slideDirection\",f=null;return a.has(\"$animateCss\")&&(f=a.get(\"$animateCss\")),{beforeAddClass:function(a,g,h){if(\"active\"==g&&a.parent()&&a.parent().parent()&&!a.parent().parent().data(d)){var i=!1,j=a.data(e),k=\"next\"==j?\"left\":\"right\",l=c.bind(this,a,k+\" \"+j,h);return a.addClass(j),f?f(a,{addClass:k}).start().done(l):b.addClass(a,k).then(function(){i||l(),h()}),function(){i=!0}}h()},beforeRemoveClass:function(a,g,h){if(\"active\"===g&&a.parent()&&a.parent().parent()&&!a.parent().parent().data(d)){var i=!1,j=a.data(e),k=\"next\"==j?\"left\":\"right\",l=c.bind(this,a,k,h);return f?f(a,{addClass:k}).start().done(l):b.addClass(a,k).then(function(){i||l(),h()}),function(){i=!0}}h()}}}]),angular.module(\"ui.bootstrap.carousel\").value(\"$carouselSuppressWarning\",!1).controller(\"CarouselController\",[\"$scope\",\"$element\",\"$controller\",\"$log\",\"$carouselSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"CarouselController is now deprecated. Use UibCarouselController instead.\"),angular.extend(this,c(\"UibCarouselController\",{$scope:a,$element:b}))}]).directive(\"carousel\",[\"$log\",\"$carouselSuppressWarning\",function(a,b){return{transclude:!0,replace:!0,controller:\"CarouselController\",controllerAs:\"carousel\",require:\"carousel\",templateUrl:function(a,b){return b.templateUrl||\"template/carousel/carousel.html\"},scope:{interval:\"=\",noTransition:\"=\",noPause:\"=\",noWrap:\"&\"},link:function(){b||a.warn(\"carousel is now deprecated. Use uib-carousel instead.\")}}}]).directive(\"slide\",[\"$log\",\"$carouselSuppressWarning\",function(a,b){return{require:\"^carousel\",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/carousel/slide.html\"},scope:{active:\"=?\",actual:\"=?\",index:\"=?\"},link:function(c,d,e,f){b||a.warn(\"slide is now deprecated. Use uib-slide instead.\"),f.addSlide(c,d),c.$on(\"$destroy\",function(){f.removeSlide(c)}),c.$watch(\"active\",function(a){a&&f.select(c)})}}}]),angular.module(\"ui.bootstrap.dateparser\",[]).service(\"uibDateParser\",[\"$log\",\"$locale\",\"orderByFilter\",function(a,b,c){function d(a){var b=[],d=a.split(\"\");return angular.forEach(g,function(c,e){var f=a.indexOf(e);if(f>-1){a=a.split(\"\"),d[f]=\"(\"+c.regex+\")\",a[f]=\"$\";for(var g=f+1,h=f+e.length;h>g;g++)d[g]=\"\",a[g]=\"$\";a=a.join(\"\"),b.push({index:f,apply:c.apply})}}),{regex:new RegExp(\"^\"+d.join(\"\")+\"$\"),map:c(b,\"index\")}}function e(a,b,c){return 1>c?!1:1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}var f,g,h=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;this.init=function(){f=b.id,this.parsers={},g={yyyy:{regex:\"\\\\d{4}\",apply:function(a){this.year=+a}},yy:{regex:\"\\\\d{2}\",apply:function(a){this.year=+a+2e3}},y:{regex:\"\\\\d{1,4}\",apply:function(a){this.year=+a}},MMMM:{regex:b.DATETIME_FORMATS.MONTH.join(\"|\"),apply:function(a){this.month=b.DATETIME_FORMATS.MONTH.indexOf(a)}},MMM:{regex:b.DATETIME_FORMATS.SHORTMONTH.join(\"|\"),apply:function(a){this.month=b.DATETIME_FORMATS.SHORTMONTH.indexOf(a)}},MM:{regex:\"0[1-9]|1[0-2]\",apply:function(a){this.month=a-1}},M:{regex:\"[1-9]|1[0-2]\",apply:function(a){this.month=a-1}},dd:{regex:\"[0-2][0-9]{1}|3[0-1]{1}\",apply:function(a){this.date=+a}},d:{regex:\"[1-2]?[0-9]{1}|3[0-1]{1}\",apply:function(a){this.date=+a}},EEEE:{regex:b.DATETIME_FORMATS.DAY.join(\"|\")},EEE:{regex:b.DATETIME_FORMATS.SHORTDAY.join(\"|\")},HH:{regex:\"(?:0|1)[0-9]|2[0-3]\",apply:function(a){this.hours=+a}},hh:{regex:\"0[0-9]|1[0-2]\",apply:function(a){this.hours=+a}},H:{regex:\"1?[0-9]|2[0-3]\",apply:function(a){this.hours=+a}},h:{regex:\"[0-9]|1[0-2]\",apply:function(a){this.hours=+a}},mm:{regex:\"[0-5][0-9]\",apply:function(a){this.minutes=+a}},m:{regex:\"[0-9]|[1-5][0-9]\",apply:function(a){this.minutes=+a}},sss:{regex:\"[0-9][0-9][0-9]\",apply:function(a){this.milliseconds=+a}},ss:{regex:\"[0-5][0-9]\",apply:function(a){this.seconds=+a}},s:{regex:\"[0-9]|[1-5][0-9]\",apply:function(a){this.seconds=+a}},a:{regex:b.DATETIME_FORMATS.AMPMS.join(\"|\"),apply:function(a){12===this.hours&&(this.hours=0),\"PM\"===a&&(this.hours+=12)}}}},this.init(),this.parse=function(c,g,i){if(!angular.isString(c)||!g)return c;g=b.DATETIME_FORMATS[g]||g,g=g.replace(h,\"\\\\$&\"),b.id!==f&&this.init(),this.parsers[g]||(this.parsers[g]=d(g));var j=this.parsers[g],k=j.regex,l=j.map,m=c.match(k);if(m&&m.length){var n,o;angular.isDate(i)&&!isNaN(i.getTime())?n={year:i.getFullYear(),month:i.getMonth(),date:i.getDate(),hours:i.getHours(),minutes:i.getMinutes(),seconds:i.getSeconds(),milliseconds:i.getMilliseconds()}:(i&&a.warn(\"dateparser:\",\"baseDate is not a valid date\"),n={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var p=1,q=m.length;q>p;p++){var r=l[p-1];r.apply&&r.apply.call(n,m[p])}return e(n.year,n.month,n.date)&&(angular.isDate(i)&&!isNaN(i.getTime())?(o=new Date(i),o.setFullYear(n.year,n.month,n.date,n.hours,n.minutes,n.seconds,n.milliseconds||0)):o=new Date(n.year,n.month,n.date,n.hours,n.minutes,n.seconds,n.milliseconds||0)),o}}}]),angular.module(\"ui.bootstrap.dateparser\").value(\"$dateParserSuppressWarning\",!1).service(\"dateParser\",[\"$log\",\"$dateParserSuppressWarning\",\"uibDateParser\",function(a,b,c){b||a.warn(\"dateParser is now deprecated. Use uibDateParser instead.\"),angular.extend(this,c)}]),angular.module(\"ui.bootstrap.position\",[]).factory(\"$uibPosition\",[\"$document\",\"$window\",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return\"static\"===(c(a,\"position\")||\"static\")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop(\"offsetWidth\"),height:g.height||b.prop(\"offsetHeight\"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop(\"offsetWidth\"),height:d.height||c.prop(\"offsetHeight\"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}},positionElements:function(a,b,c,d){var e,f,g,h,i=c.split(\"-\"),j=i[0],k=i[1]||\"center\";e=d?this.offset(a):this.position(a),f=b.prop(\"offsetWidth\"),g=b.prop(\"offsetHeight\");var l={center:function(){return e.left+e.width/2-f/2},left:function(){return e.left},right:function(){return e.left+e.width}},m={center:function(){return e.top+e.height/2-g/2},top:function(){return e.top},bottom:function(){return e.top+e.height}};switch(j){case\"right\":h={top:m[k](),left:l[j]()};break;case\"left\":h={top:m[k](),left:e.left-f};break;case\"bottom\":h={top:m[j](),left:l[k]()};break;default:h={top:e.top-g,left:l[k]()}}return h}}}]),angular.module(\"ui.bootstrap.position\").value(\"$positionSuppressWarning\",!1).service(\"$position\",[\"$log\",\"$positionSuppressWarning\",\"$uibPosition\",function(a,b,c){b||a.warn(\"$position is now deprecated. Use $uibPosition instead.\"),angular.extend(this,c)}]),angular.module(\"ui.bootstrap.datepicker\",[\"ui.bootstrap.dateparser\",\"ui.bootstrap.position\"]).value(\"$datepickerSuppressError\",!1).constant(\"uibDatepickerConfig\",{formatDay:\"dd\",formatMonth:\"MMMM\",formatYear:\"yyyy\",formatDayHeader:\"EEE\",formatDayTitle:\"MMMM yyyy\",formatMonthTitle:\"yyyy\",datepickerMode:\"day\",minMode:\"day\",maxMode:\"year\",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null,shortcutPropagation:!1}).controller(\"UibDatepickerController\",[\"$scope\",\"$attrs\",\"$parse\",\"$interpolate\",\"$log\",\"dateFilter\",\"uibDatepickerConfig\",\"$datepickerSuppressError\",function(a,b,c,d,e,f,g,h){var i=this,j={$setViewValue:angular.noop};this.modes=[\"day\",\"month\",\"year\"],angular.forEach([\"formatDay\",\"formatMonth\",\"formatYear\",\"formatDayHeader\",\"formatDayTitle\",\"formatMonthTitle\",\"showWeeks\",\"startingDay\",\"yearRange\",\"shortcutPropagation\"],function(c,e){i[c]=angular.isDefined(b[c])?6>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):g[c]}),angular.forEach([\"minDate\",\"maxDate\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){i[d]=a?new Date(a):null,i.refreshView()}):i[d]=g[d]?new Date(g[d]):null}),angular.forEach([\"minMode\",\"maxMode\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(c){i[d]=angular.isDefined(c)?c:b[d],a[d]=i[d],(\"minMode\"==d&&i.modes.indexOf(a.datepickerMode)i.modes.indexOf(i[d]))&&(a.datepickerMode=i[d])}):(i[d]=g[d]||null,a[d]=i[d])}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId=\"datepicker-\"+a.$id+\"-\"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=a.$parent.$eval(b.initDate)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(j.$isEmpty(j.$modelValue)||j.$invalid)&&(i.activeDate=a,i.refreshView())})):this.activeDate=new Date,a.isActive=function(b){return 0===i.compare(b.date,i.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){j=a,j.$render=function(){i.render()}},this.render=function(){if(j.$viewValue){var a=new Date(j.$viewValue),b=!isNaN(a);b?this.activeDate=a:h||e.error('Datepicker directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=j.$viewValue?new Date(j.$viewValue):null;j.$setValidity(\"dateDisabled\",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=j.$viewValue?new Date(j.$viewValue):null;return{date:a,label:f(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date),customClass:this.customClass(a)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===i.minMode){var c=j.$viewValue?new Date(j.$viewValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),j.$setViewValue(c),j.$render()}else i.activeDate=b,a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=i.activeDate.getFullYear()+a*(i.step.years||0),c=i.activeDate.getMonth()+a*(i.step.months||0);i.activeDate.setFullYear(b,c,1),i.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===i.maxMode&&1===b||a.datepickerMode===i.minMode&&-1===b||(a.datepickerMode=i.modes[i.modes.indexOf(a.datepickerMode)+b])},a.keys={13:\"enter\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\"};var k=function(){i.element[0].focus()};a.$on(\"uib:datepicker.focus\",k),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),i.shortcutPropagation||b.stopPropagation(),\"enter\"===c||\"space\"===c){if(i.isDisabled(i.activeDate))return;a.select(i.activeDate)}else!b.ctrlKey||\"up\"!==c&&\"down\"!==c?(i.handleKeyDown(c,b),i.refreshView()):a.toggleMode(\"up\"===c?1:-1)}}]).controller(\"UibDaypickerController\",[\"$scope\",\"$element\",\"dateFilter\",function(a,b,c){function d(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?f[b]:29}function e(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var f=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=b,this.init=function(b){angular.extend(b,this),a.showWeeks=b.showWeeks,b.refreshView()},this.getDates=function(a,b){for(var c,d=new Array(b),e=new Date(a),f=0;b>f;)c=new Date(e),d[f++]=c,e.setDate(e.getDate()+1);return d},this._refreshView=function(){var b=this.activeDate.getFullYear(),d=this.activeDate.getMonth(),f=new Date(this.activeDate);f.setFullYear(b,d,1);var g=this.startingDay-f.getDay(),h=g>0?7-g:-g,i=new Date(f);h>0&&i.setDate(-h+1);for(var j=this.getDates(i,42),k=0;42>k;k++)j[k]=angular.extend(this.createDateObject(j[k],this.formatDay),{secondary:j[k].getMonth()!==d,uid:a.uniqueId+\"-\"+k});a.labels=new Array(7);for(var l=0;7>l;l++)a.labels[l]={abbr:c(j[l].date,this.formatDayHeader),full:c(j[l].date,\"EEEE\")};if(a.title=c(this.activeDate,this.formatDayTitle),a.rows=this.split(j,7),a.showWeeks){a.weekNumbers=[];for(var m=(11-this.startingDay)%7,n=a.rows.length,o=0;n>o;o++)a.weekNumbers.push(e(a.rows[o][m].date))}},this.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},this.handleKeyDown=function(a,b){var c=this.activeDate.getDate();if(\"left\"===a)c-=1;else if(\"up\"===a)c-=7;else if(\"right\"===a)c+=1;else if(\"down\"===a)c+=7;else if(\"pageup\"===a||\"pagedown\"===a){var e=this.activeDate.getMonth()+(\"pageup\"===a?-1:1);this.activeDate.setMonth(e,1),c=Math.min(d(this.activeDate.getFullYear(),this.activeDate.getMonth()),c)}else\"home\"===a?c=1:\"end\"===a&&(c=d(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(c)}}]).controller(\"UibMonthpickerController\",[\"$scope\",\"$element\",\"dateFilter\",function(a,b,c){this.step={years:1},this.element=b,this.init=function(a){angular.extend(a,this),a.refreshView()},this._refreshView=function(){for(var b,d=new Array(12),e=this.activeDate.getFullYear(),f=0;12>f;f++)b=new Date(this.activeDate),b.setFullYear(e,f,1),d[f]=angular.extend(this.createDateObject(b,this.formatMonth),{uid:a.uniqueId+\"-\"+f});a.title=c(this.activeDate,this.formatMonthTitle),a.rows=this.split(d,3)},this.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},this.handleKeyDown=function(a,b){var c=this.activeDate.getMonth();if(\"left\"===a)c-=1;else if(\"up\"===a)c-=3;else if(\"right\"===a)c+=1;else if(\"down\"===a)c+=3;else if(\"pageup\"===a||\"pagedown\"===a){var d=this.activeDate.getFullYear()+(\"pageup\"===a?-1:1);this.activeDate.setFullYear(d)}else\"home\"===a?c=0:\"end\"===a&&(c=11);this.activeDate.setMonth(c)}}]).controller(\"UibYearpickerController\",[\"$scope\",\"$element\",\"dateFilter\",function(a,b,c){function d(a){return parseInt((a-1)/e,10)*e+1}var e;this.element=b,this.yearpickerInit=function(){e=this.yearRange,this.step={years:e}},this._refreshView=function(){for(var b,c=new Array(e),f=0,g=d(this.activeDate.getFullYear());e>f;f++)b=new Date(this.activeDate),b.setFullYear(g+f,0,1),c[f]=angular.extend(this.createDateObject(b,this.formatYear),{uid:a.uniqueId+\"-\"+f});a.title=[c[0].label,c[e-1].label].join(\" - \"),a.rows=this.split(c,5)},this.compare=function(a,b){return a.getFullYear()-b.getFullYear()},this.handleKeyDown=function(a,b){var c=this.activeDate.getFullYear();\"left\"===a?c-=1:\"up\"===a?c-=5:\"right\"===a?c+=1:\"down\"===a?c+=5:\"pageup\"===a||\"pagedown\"===a?c+=(\"pageup\"===a?-1:1)*this.step.years:\"home\"===a?c=d(this.activeDate.getFullYear()):\"end\"===a&&(c=d(this.activeDate.getFullYear())+e-1),this.activeDate.setFullYear(c)}}]).directive(\"uibDatepicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/datepicker.html\"},scope:{datepickerMode:\"=?\",dateDisabled:\"&\",customClass:\"&\",shortcutPropagation:\"&?\"},require:[\"uibDatepicker\",\"^ngModel\"],controller:\"UibDatepickerController\",controllerAs:\"datepicker\",link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}).directive(\"uibDaypicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/day.html\"},require:[\"^?uibDatepicker\",\"uibDaypicker\",\"^?datepicker\"],controller:\"UibDaypickerController\",link:function(a,b,c,d){var e=d[0]||d[2],f=d[1];f.init(e)}}}).directive(\"uibMonthpicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/month.html\"},require:[\"^?uibDatepicker\",\"uibMonthpicker\",\"^?datepicker\"],controller:\"UibMonthpickerController\",link:function(a,b,c,d){var e=d[0]||d[2],f=d[1];f.init(e)}}}).directive(\"uibYearpicker\",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/year.html\"},require:[\"^?uibDatepicker\",\"uibYearpicker\",\"^?datepicker\"],controller:\"UibYearpickerController\",link:function(a,b,c,d){var e=d[0]||d[2];angular.extend(e,d[1]),e.yearpickerInit(),e.refreshView()}}}).constant(\"uibDatepickerPopupConfig\",{datepickerPopup:\"yyyy-MM-dd\",datepickerPopupTemplateUrl:\"template/datepicker/popup.html\",datepickerTemplateUrl:\"template/datepicker/datepicker.html\",html5Types:{date:\"yyyy-MM-dd\",\"datetime-local\":\"yyyy-MM-ddTHH:mm:ss.sss\",month:\"yyyy-MM\"},currentText:\"Today\",clearText:\"Clear\",closeText:\"Done\",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0}).controller(\"UibDatepickerPopupController\",[\"$scope\",\"$element\",\"$attrs\",\"$compile\",\"$parse\",\"$document\",\"$rootScope\",\"$uibPosition\",\"dateFilter\",\"uibDateParser\",\"uibDatepickerPopupConfig\",\"$timeout\",function(a,b,c,d,e,f,g,h,i,j,k,l){\r\nfunction m(a){return a.replace(/([A-Z])/g,function(a){return\"-\"+a.toLowerCase()})}function n(b){if(angular.isNumber(b)&&(b=new Date(b)),b){if(angular.isDate(b)&&!isNaN(b))return b;if(angular.isString(b)){var c=j.parse(b,r,a.date);return isNaN(c)?void 0:c}return void 0}return null}function o(a,b){var d=a||b;if(!c.ngRequired&&!d)return!0;if(angular.isNumber(d)&&(d=new Date(d)),d){if(angular.isDate(d)&&!isNaN(d))return!0;if(angular.isString(d)){var e=j.parse(d,r);return!isNaN(e)}return!1}return!0}function p(c){var d=A[0],e=b[0].contains(c.target),f=void 0!==d.contains&&d.contains(c.target);!a.isOpen||e||f||a.$apply(function(){a.isOpen=!1})}function q(c){27===c.which&&a.isOpen?(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!1}),b[0].focus()):40!==c.which||a.isOpen||(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!0}))}var r,s,t,u,v,w,x,y,z,A,B={},C=!1;a.watchData={},this.init=function(h){if(z=h,s=angular.isDefined(c.closeOnDateSelection)?a.$parent.$eval(c.closeOnDateSelection):k.closeOnDateSelection,t=angular.isDefined(c.datepickerAppendToBody)?a.$parent.$eval(c.datepickerAppendToBody):k.appendToBody,u=angular.isDefined(c.onOpenFocus)?a.$parent.$eval(c.onOpenFocus):k.onOpenFocus,v=angular.isDefined(c.datepickerPopupTemplateUrl)?c.datepickerPopupTemplateUrl:k.datepickerPopupTemplateUrl,w=angular.isDefined(c.datepickerTemplateUrl)?c.datepickerTemplateUrl:k.datepickerTemplateUrl,a.showButtonBar=angular.isDefined(c.showButtonBar)?a.$parent.$eval(c.showButtonBar):k.showButtonBar,k.html5Types[c.type]?(r=k.html5Types[c.type],C=!0):(r=c.datepickerPopup||c.uibDatepickerPopup||k.datepickerPopup,c.$observe(\"uibDatepickerPopup\",function(a,b){var c=a||k.datepickerPopup;if(c!==r&&(r=c,z.$modelValue=null,!r))throw new Error(\"uibDatepickerPopup must have a date format specified.\")})),!r)throw new Error(\"uibDatepickerPopup must have a date format specified.\");if(C&&c.datepickerPopup)throw new Error(\"HTML5 date input types do not support custom formats.\");if(x=angular.element(\"
\"),x.attr({\"ng-model\":\"date\",\"ng-change\":\"dateSelection(date)\",\"template-url\":v}),y=angular.element(x.children()[0]),y.attr(\"template-url\",w),C&&\"month\"===c.type&&(y.attr(\"datepicker-mode\",'\"month\"'),y.attr(\"min-mode\",\"month\")),c.datepickerOptions){var l=a.$parent.$eval(c.datepickerOptions);l&&l.initDate&&(a.initDate=l.initDate,y.attr(\"init-date\",\"initDate\"),delete l.initDate),angular.forEach(l,function(a,b){y.attr(m(b),a)})}angular.forEach([\"minMode\",\"maxMode\",\"minDate\",\"maxDate\",\"datepickerMode\",\"initDate\",\"shortcutPropagation\"],function(b){if(c[b]){var d=e(c[b]);if(a.$parent.$watch(d,function(c){a.watchData[b]=c,(\"minDate\"===b||\"maxDate\"===b)&&(B[b]=new Date(c))}),y.attr(m(b),\"watchData.\"+b),\"datepickerMode\"===b){var f=d.assign;a.$watch(\"watchData.\"+b,function(b,c){angular.isFunction(f)&&b!==c&&f(a.$parent,b)})}}}),c.dateDisabled&&y.attr(\"date-disabled\",\"dateDisabled({ date: date, mode: mode })\"),c.showWeeks&&y.attr(\"show-weeks\",c.showWeeks),c.customClass&&y.attr(\"custom-class\",\"customClass({ date: date, mode: mode })\"),C?z.$formatters.push(function(b){return a.date=b,b}):(z.$$parserName=\"date\",z.$validators.date=o,z.$parsers.unshift(n),z.$formatters.push(function(b){return a.date=b,z.$isEmpty(b)?b:i(b,r)})),z.$viewChangeListeners.push(function(){a.date=j.parse(z.$viewValue,r,a.date)}),b.bind(\"keydown\",q),A=d(x)(a),x.remove(),t?f.find(\"body\").append(A):b.after(A),a.$on(\"$destroy\",function(){a.isOpen===!0&&(g.$$phase||a.$apply(function(){a.isOpen=!1})),A.remove(),b.unbind(\"keydown\",q),f.unbind(\"click\",p)})},a.getText=function(b){return a[b+\"Text\"]||k[b+\"Text\"]},a.isDisabled=function(b){return\"today\"===b&&(b=new Date),a.watchData.minDate&&a.compare(b,B.minDate)<0||a.watchData.maxDate&&a.compare(b,B.maxDate)>0},a.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},a.dateSelection=function(c){angular.isDefined(c)&&(a.date=c);var d=a.date?i(a.date,r):null;b.val(d),z.$setViewValue(d),s&&(a.isOpen=!1,b[0].focus())},a.keydown=function(c){27===c.which&&(a.isOpen=!1,b[0].focus())},a.select=function(b){if(\"today\"===b){var c=new Date;angular.isDate(a.date)?(b=new Date(a.date),b.setFullYear(c.getFullYear(),c.getMonth(),c.getDate())):b=new Date(c.setHours(0,0,0,0))}a.dateSelection(b)},a.close=function(){a.isOpen=!1,b[0].focus()},a.$watch(\"isOpen\",function(c){c?(a.position=t?h.offset(b):h.position(b),a.position.top=a.position.top+b.prop(\"offsetHeight\"),l(function(){u&&a.$broadcast(\"uib:datepicker.focus\"),f.bind(\"click\",p)},0,!1)):f.unbind(\"click\",p)})}]).directive(\"uibDatepickerPopup\",function(){return{require:[\"ngModel\",\"uibDatepickerPopup\"],controller:\"UibDatepickerPopupController\",scope:{isOpen:\"=?\",currentText:\"@\",clearText:\"@\",closeText:\"@\",dateDisabled:\"&\",customClass:\"&\"},link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive(\"uibDatepickerPopupWrap\",function(){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/popup.html\"}}}),angular.module(\"ui.bootstrap.datepicker\").value(\"$datepickerSuppressWarning\",!1).controller(\"DatepickerController\",[\"$scope\",\"$attrs\",\"$parse\",\"$interpolate\",\"$log\",\"dateFilter\",\"uibDatepickerConfig\",\"$datepickerSuppressError\",\"$datepickerSuppressWarning\",function(a,b,c,d,e,f,g,h,i){i||e.warn(\"DatepickerController is now deprecated. Use UibDatepickerController instead.\");var j=this,k={$setViewValue:angular.noop};this.modes=[\"day\",\"month\",\"year\"],angular.forEach([\"formatDay\",\"formatMonth\",\"formatYear\",\"formatDayHeader\",\"formatDayTitle\",\"formatMonthTitle\",\"showWeeks\",\"startingDay\",\"yearRange\",\"shortcutPropagation\"],function(c,e){j[c]=angular.isDefined(b[c])?6>e?d(b[c])(a.$parent):a.$parent.$eval(b[c]):g[c]}),angular.forEach([\"minDate\",\"maxDate\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(a){j[d]=a?new Date(a):null,j.refreshView()}):j[d]=g[d]?new Date(g[d]):null}),angular.forEach([\"minMode\",\"maxMode\"],function(d){b[d]?a.$parent.$watch(c(b[d]),function(c){j[d]=angular.isDefined(c)?c:b[d],a[d]=j[d],(\"minMode\"==d&&j.modes.indexOf(a.datepickerMode)j.modes.indexOf(j[d]))&&(a.datepickerMode=j[d])}):(j[d]=g[d]||null,a[d]=j[d])}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId=\"datepicker-\"+a.$id+\"-\"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=a.$parent.$eval(b.initDate)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(k.$isEmpty(k.$modelValue)||k.$invalid)&&(j.activeDate=a,j.refreshView())})):this.activeDate=new Date,a.isActive=function(b){return 0===j.compare(b.date,j.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){k=a,k.$render=function(){j.render()}},this.render=function(){if(k.$viewValue){var a=new Date(k.$viewValue),b=!isNaN(a);b?this.activeDate=a:h||e.error('Datepicker directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var a=k.$viewValue?new Date(k.$viewValue):null;k.$setValidity(\"dateDisabled\",!a||this.element&&!this.isDisabled(a))}},this.createDateObject=function(a,b){var c=k.$viewValue?new Date(k.$viewValue):null;return{date:a,label:f(a,b),selected:c&&0===this.compare(a,c),disabled:this.isDisabled(a),current:0===this.compare(a,new Date),customClass:this.customClass(a)}},this.isDisabled=function(c){return this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},this.fixTimeZone=function(a){var b=a.getHours();a.setHours(23===b?b+2:0)},a.select=function(b){if(a.datepickerMode===j.minMode){var c=k.$viewValue?new Date(k.$viewValue):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),k.$setViewValue(c),k.$render()}else j.activeDate=b,a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=j.activeDate.getFullYear()+a*(j.step.years||0),c=j.activeDate.getMonth()+a*(j.step.months||0);j.activeDate.setFullYear(b,c,1),j.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===j.maxMode&&1===b||a.datepickerMode===j.minMode&&-1===b||(a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)+b])},a.keys={13:\"enter\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\"};var l=function(){j.element[0].focus()};a.$on(\"uib:datepicker.focus\",l),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey)if(b.preventDefault(),j.shortcutPropagation||b.stopPropagation(),\"enter\"===c||\"space\"===c){if(j.isDisabled(j.activeDate))return;a.select(j.activeDate)}else!b.ctrlKey||\"up\"!==c&&\"down\"!==c?(j.handleKeyDown(c,b),j.refreshView()):a.toggleMode(\"up\"===c?1:-1)}}]).directive(\"datepicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/datepicker.html\"},scope:{datepickerMode:\"=?\",dateDisabled:\"&\",customClass:\"&\",shortcutPropagation:\"&?\"},require:[\"datepicker\",\"^ngModel\"],controller:\"DatepickerController\",controllerAs:\"datepicker\",link:function(c,d,e,f){b||a.warn(\"datepicker is now deprecated. Use uib-datepicker instead.\");var g=f[0],h=f[1];g.init(h)}}}]).directive(\"daypicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:\"template/datepicker/day.html\",require:[\"^datepicker\",\"daypicker\"],controller:\"UibDaypickerController\",link:function(c,d,e,f){b||a.warn(\"daypicker is now deprecated. Use uib-daypicker instead.\");var g=f[0],h=f[1];h.init(g)}}}]).directive(\"monthpicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:\"template/datepicker/month.html\",require:[\"^datepicker\",\"monthpicker\"],controller:\"UibMonthpickerController\",link:function(c,d,e,f){b||a.warn(\"monthpicker is now deprecated. Use uib-monthpicker instead.\");var g=f[0],h=f[1];h.init(g)}}}]).directive(\"yearpicker\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,templateUrl:\"template/datepicker/year.html\",require:[\"^datepicker\",\"yearpicker\"],controller:\"UibYearpickerController\",link:function(c,d,e,f){b||a.warn(\"yearpicker is now deprecated. Use uib-yearpicker instead.\");var g=f[0];angular.extend(g,f[1]),g.yearpickerInit(),g.refreshView()}}}]).directive(\"datepickerPopup\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{require:[\"ngModel\",\"datepickerPopup\"],controller:\"UibDatepickerPopupController\",scope:{isOpen:\"=?\",currentText:\"@\",clearText:\"@\",closeText:\"@\",dateDisabled:\"&\",customClass:\"&\"},link:function(c,d,e,f){b||a.warn(\"datepicker-popup is now deprecated. Use uib-datepicker-popup instead.\");var g=f[0],h=f[1];h.init(g)}}}]).directive(\"datepickerPopupWrap\",[\"$log\",\"$datepickerSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/datepicker/popup.html\"},link:function(){b||a.warn(\"datepicker-popup-wrap is now deprecated. Use uib-datepicker-popup-wrap instead.\")}}}]),angular.module(\"ui.bootstrap.dropdown\",[\"ui.bootstrap.position\"]).constant(\"uibDropdownConfig\",{openClass:\"open\"}).service(\"uibDropdownService\",[\"$document\",\"$rootScope\",function(a,b){var c=null;this.open=function(b){c||(a.bind(\"click\",d),a.bind(\"keydown\",e)),c&&c!==b&&(c.isOpen=!1),c=b},this.close=function(b){c===b&&(c=null,a.unbind(\"click\",d),a.unbind(\"keydown\",e))};var d=function(a){if(c&&(!a||\"disabled\"!==c.getAutoClose())){var d=c.getToggleElement();if(!(a&&d&&d[0].contains(a.target))){var e=c.getDropdownElement();a&&\"outsideClick\"===c.getAutoClose()&&e&&e[0].contains(a.target)||(c.isOpen=!1,b.$$phase||c.$apply())}}},e=function(a){27===a.which?(c.focusToggleElement(),d()):c.isKeynavEnabled()&&/(38|40)/.test(a.which)&&c.isOpen&&(a.preventDefault(),a.stopPropagation(),c.focusDropdownEntry(a.which))}}]).controller(\"UibDropdownController\",[\"$scope\",\"$element\",\"$attrs\",\"$parse\",\"uibDropdownConfig\",\"uibDropdownService\",\"$animate\",\"$uibPosition\",\"$document\",\"$compile\",\"$templateRequest\",function(a,b,c,d,e,f,g,h,i,j,k){var l,m,n=this,o=a.$new(),p=e.openClass,q=angular.noop,r=c.onToggle?d(c.onToggle):angular.noop,s=!1,t=!1;b.addClass(\"dropdown\"),this.init=function(){c.isOpen&&(m=d(c.isOpen),q=m.assign,a.$watch(m,function(a){o.isOpen=!!a})),s=angular.isDefined(c.dropdownAppendToBody),t=angular.isDefined(c.uibKeyboardNav),s&&n.dropdownMenu&&(i.find(\"body\").append(n.dropdownMenu),b.on(\"$destroy\",function(){n.dropdownMenu.remove()}))},this.toggle=function(a){return o.isOpen=arguments.length?!!a:!o.isOpen},this.isOpen=function(){return o.isOpen},o.getToggleElement=function(){return n.toggleElement},o.getAutoClose=function(){return c.autoClose||\"always\"},o.getElement=function(){return b},o.isKeynavEnabled=function(){return t},o.focusDropdownEntry=function(a){var c=n.dropdownMenu?angular.element(n.dropdownMenu).find(\"a\"):angular.element(b).find(\"ul\").eq(0).find(\"a\");switch(a){case 40:angular.isNumber(n.selectedOption)?n.selectedOption=n.selectedOption===c.length-1?n.selectedOption:n.selectedOption+1:n.selectedOption=0;break;case 38:angular.isNumber(n.selectedOption)?n.selectedOption=0===n.selectedOption?0:n.selectedOption-1:n.selectedOption=c.length-1}c[n.selectedOption].focus()},o.getDropdownElement=function(){return n.dropdownMenu},o.focusToggleElement=function(){n.toggleElement&&n.toggleElement[0].focus()},o.$watch(\"isOpen\",function(c,d){if(s&&n.dropdownMenu){var e=h.positionElements(b,n.dropdownMenu,\"bottom-left\",!0),i={top:e.top+\"px\",display:c?\"block\":\"none\"},m=n.dropdownMenu.hasClass(\"dropdown-menu-right\");m?(i.left=\"auto\",i.right=window.innerWidth-(e.left+b.prop(\"offsetWidth\"))+\"px\"):(i.left=e.left+\"px\",i.right=\"auto\"),n.dropdownMenu.css(i)}if(g[c?\"addClass\":\"removeClass\"](b,p).then(function(){angular.isDefined(c)&&c!==d&&r(a,{open:!!c})}),c)n.dropdownMenuTemplateUrl&&k(n.dropdownMenuTemplateUrl).then(function(a){l=o.$new(),j(a.trim())(l,function(a){var b=a;n.dropdownMenu.replaceWith(b),n.dropdownMenu=b})}),o.focusToggleElement(),f.open(o);else{if(n.dropdownMenuTemplateUrl){l&&l.$destroy();var t=angular.element('
    ');n.dropdownMenu.replaceWith(t),n.dropdownMenu=t}f.close(o),n.selectedOption=null}angular.isFunction(q)&&q(a,c)}),a.$on(\"$locationChangeSuccess\",function(){\"disabled\"!==o.getAutoClose()&&(o.isOpen=!1)});var u=a.$on(\"$destroy\",function(){o.$destroy()});o.$on(\"$destroy\",u)}]).directive(\"uibDropdown\",function(){return{controller:\"UibDropdownController\",link:function(a,b,c,d){d.init()}}}).directive(\"uibDropdownMenu\",function(){return{restrict:\"AC\",require:\"?^uibDropdown\",link:function(a,b,c,d){if(d&&!angular.isDefined(c.dropdownNested)){b.addClass(\"dropdown-menu\");var e=c.templateUrl;e&&(d.dropdownMenuTemplateUrl=e),d.dropdownMenu||(d.dropdownMenu=b)}}}}).directive(\"uibKeyboardNav\",function(){return{restrict:\"A\",require:\"?^uibDropdown\",link:function(a,b,c,d){b.bind(\"keydown\",function(a){if(-1!==[38,40].indexOf(a.which)){a.preventDefault(),a.stopPropagation();var b=d.dropdownMenu.find(\"a\");switch(a.which){case 40:angular.isNumber(d.selectedOption)?d.selectedOption=d.selectedOption===b.length-1?d.selectedOption:d.selectedOption+1:d.selectedOption=0;break;case 38:angular.isNumber(d.selectedOption)?d.selectedOption=0===d.selectedOption?0:d.selectedOption-1:d.selectedOption=b.length-1}b[d.selectedOption].focus()}})}}}).directive(\"uibDropdownToggle\",function(){return{require:\"?^uibDropdown\",link:function(a,b,c,d){if(d){b.addClass(\"dropdown-toggle\"),d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass(\"disabled\")||c.disabled||a.$apply(function(){d.toggle()})};b.bind(\"click\",e),b.attr({\"aria-haspopup\":!0,\"aria-expanded\":!1}),a.$watch(d.isOpen,function(a){b.attr(\"aria-expanded\",!!a)}),a.$on(\"$destroy\",function(){b.unbind(\"click\",e)})}}}}),angular.module(\"ui.bootstrap.dropdown\").value(\"$dropdownSuppressWarning\",!1).service(\"dropdownService\",[\"$log\",\"$dropdownSuppressWarning\",\"uibDropdownService\",function(a,b,c){b||a.warn(\"dropdownService is now deprecated. Use uibDropdownService instead.\"),angular.extend(this,c)}]).controller(\"DropdownController\",[\"$scope\",\"$element\",\"$attrs\",\"$parse\",\"uibDropdownConfig\",\"uibDropdownService\",\"$animate\",\"$uibPosition\",\"$document\",\"$compile\",\"$templateRequest\",\"$log\",\"$dropdownSuppressWarning\",function(a,b,c,d,e,f,g,h,i,j,k,l,m){m||l.warn(\"DropdownController is now deprecated. Use UibDropdownController instead.\");var n,o,p=this,q=a.$new(),r=e.openClass,s=angular.noop,t=c.onToggle?d(c.onToggle):angular.noop,u=!1,v=!1;b.addClass(\"dropdown\"),this.init=function(){c.isOpen&&(o=d(c.isOpen),s=o.assign,a.$watch(o,function(a){q.isOpen=!!a})),u=angular.isDefined(c.dropdownAppendToBody),v=angular.isDefined(c.uibKeyboardNav),u&&p.dropdownMenu&&(i.find(\"body\").append(p.dropdownMenu),b.on(\"$destroy\",function(){p.dropdownMenu.remove()}))},this.toggle=function(a){return q.isOpen=arguments.length?!!a:!q.isOpen},this.isOpen=function(){return q.isOpen},q.getToggleElement=function(){return p.toggleElement},q.getAutoClose=function(){return c.autoClose||\"always\"},q.getElement=function(){return b},q.isKeynavEnabled=function(){return v},q.focusDropdownEntry=function(a){var c=p.dropdownMenu?angular.element(p.dropdownMenu).find(\"a\"):angular.element(b).find(\"ul\").eq(0).find(\"a\");switch(a){case 40:angular.isNumber(p.selectedOption)?p.selectedOption=p.selectedOption===c.length-1?p.selectedOption:p.selectedOption+1:p.selectedOption=0;break;case 38:angular.isNumber(p.selectedOption)?p.selectedOption=0===p.selectedOption?0:p.selectedOption-1:p.selectedOption=c.length-1}c[p.selectedOption].focus()},q.getDropdownElement=function(){return p.dropdownMenu},q.focusToggleElement=function(){p.toggleElement&&p.toggleElement[0].focus()},q.$watch(\"isOpen\",function(c,d){if(u&&p.dropdownMenu){var e=h.positionElements(b,p.dropdownMenu,\"bottom-left\",!0),i={top:e.top+\"px\",display:c?\"block\":\"none\"},l=p.dropdownMenu.hasClass(\"dropdown-menu-right\");l?(i.left=\"auto\",i.right=window.innerWidth-(e.left+b.prop(\"offsetWidth\"))+\"px\"):(i.left=e.left+\"px\",i.right=\"auto\"),p.dropdownMenu.css(i)}if(g[c?\"addClass\":\"removeClass\"](b,r).then(function(){angular.isDefined(c)&&c!==d&&t(a,{open:!!c})}),c)p.dropdownMenuTemplateUrl&&k(p.dropdownMenuTemplateUrl).then(function(a){n=q.$new(),j(a.trim())(n,function(a){var b=a;p.dropdownMenu.replaceWith(b),p.dropdownMenu=b})}),q.focusToggleElement(),f.open(q);else{if(p.dropdownMenuTemplateUrl){n&&n.$destroy();var m=angular.element('
      ');p.dropdownMenu.replaceWith(m),p.dropdownMenu=m}f.close(q),p.selectedOption=null}angular.isFunction(s)&&s(a,c)}),a.$on(\"$locationChangeSuccess\",function(){\"disabled\"!==q.getAutoClose()&&(q.isOpen=!1)});var w=a.$on(\"$destroy\",function(){q.$destroy()});q.$on(\"$destroy\",w)}]).directive(\"dropdown\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{controller:\"DropdownController\",link:function(c,d,e,f){b||a.warn(\"dropdown is now deprecated. Use uib-dropdown instead.\"),f.init()}}}]).directive(\"dropdownMenu\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{restrict:\"AC\",require:\"?^dropdown\",link:function(c,d,e,f){if(f&&!angular.isDefined(e.dropdownNested)){b||a.warn(\"dropdown-menu is now deprecated. Use uib-dropdown-menu instead.\"),d.addClass(\"dropdown-menu\");var g=e.templateUrl;g&&(f.dropdownMenuTemplateUrl=g),f.dropdownMenu||(f.dropdownMenu=d)}}}}]).directive(\"keyboardNav\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{restrict:\"A\",require:\"?^dropdown\",link:function(c,d,e,f){b||a.warn(\"keyboard-nav is now deprecated. Use uib-keyboard-nav instead.\"),d.bind(\"keydown\",function(a){if(-1!==[38,40].indexOf(a.which)){a.preventDefault(),a.stopPropagation();var b=f.dropdownMenu.find(\"a\");switch(a.which){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===b.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=b.length-1}b[f.selectedOption].focus()}})}}}]).directive(\"dropdownToggle\",[\"$log\",\"$dropdownSuppressWarning\",function(a,b){return{require:\"?^dropdown\",link:function(c,d,e,f){if(b||a.warn(\"dropdown-toggle is now deprecated. Use uib-dropdown-toggle instead.\"),f){d.addClass(\"dropdown-toggle\"),f.toggleElement=d;var g=function(a){a.preventDefault(),d.hasClass(\"disabled\")||e.disabled||c.$apply(function(){f.toggle()})};d.bind(\"click\",g),d.attr({\"aria-haspopup\":!0,\"aria-expanded\":!1}),c.$watch(f.isOpen,function(a){d.attr(\"aria-expanded\",!!a)}),c.$on(\"$destroy\",function(){d.unbind(\"click\",g)})}}}}]),angular.module(\"ui.bootstrap.stackedMap\",[]).factory(\"$$stackedMap\",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0&&(b=u.top().value,b.modalDomEl.toggleClass(b.windowTopClass||\"\",a))}function m(){if(q&&-1==j()){var a=r;n(q,r,function(){a=null}),q=void 0,r=void 0}}function n(b,c,d){function e(){e.done||(e.done=!0,p?p(b,{event:\"leave\"}).start().then(function(){b.remove()}):a.leave(b),c.$destroy(),d&&d())}var g,h=null,i=function(){return g||(g=f.defer(),h=g.promise),function(){g.resolve()}};return c.$broadcast(w.NOW_CLOSING_EVENT,i),f.when(h).then(e)}function o(a,b,c){return!a.value.modalScope.$broadcast(\"modal.closing\",b,c).defaultPrevented}var p=null;g.has(\"$animateCss\")&&(p=g.get(\"$animateCss\"));var q,r,s,t=\"modal-open\",u=i.createNew(),v=h.createNew(),w={NOW_CLOSING_EVENT:\"modal.stack.now-closing\"},x=0,y=\"a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]\";return e.$watch(j,function(a){r&&(r.index=a)}),c.bind(\"keydown\",function(a){if(a.isDefaultPrevented())return a;var b=u.top();if(b&&b.value.keyboard)switch(a.which){case 27:a.preventDefault(),e.$apply(function(){w.dismiss(b.key,\"escape key press\")});break;case 9:w.loadFocusElementList(b);var c=!1;a.shiftKey?w.isFocusInFirstItem(a)&&(c=w.focusLastFocusableElement()):w.isFocusInLastItem(a)&&(c=w.focusFirstFocusableElement()),c&&(a.preventDefault(),a.stopPropagation())}}),w.open=function(a,b){var f=c[0].activeElement,g=b.openedClass||t;l(!1),u.add(a,{deferred:b.deferred,renderDeferred:b.renderDeferred,modalScope:b.scope,backdrop:b.backdrop,keyboard:b.keyboard,openedClass:b.openedClass,windowTopClass:b.windowTopClass}),v.put(g,a);var h=c.find(\"body\").eq(0),i=j();if(i>=0&&!q){r=e.$new(!0),r.index=i;var k=angular.element('
      ');k.attr(\"backdrop-class\",b.backdropClass),b.animation&&k.attr(\"modal-animation\",\"true\"),q=d(k)(r),h.append(q)}var m=angular.element('
      ');m.attr({\"template-url\":b.windowTemplateUrl,\"window-class\":b.windowClass,\"window-top-class\":b.windowTopClass,size:b.size,index:u.length()-1,animate:\"animate\"}).html(b.content),b.animation&&m.attr(\"modal-animation\",\"true\");var n=d(m)(b.scope);u.top().value.modalDomEl=n,u.top().value.modalOpener=f,h.append(n),h.addClass(g),w.clearFocusListCache()},w.close=function(a,b){var c=u.get(a);return c&&o(c,b,!0)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.resolve(b),k(a,c.value.modalOpener),!0):!c},w.dismiss=function(a,b){var c=u.get(a);return c&&o(c,b,!1)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.reject(b),k(a,c.value.modalOpener),!0):!c},w.dismissAll=function(a){for(var b=this.getTop();b&&this.dismiss(b.key,a);)b=this.getTop()},w.getTop=function(){return u.top()},w.modalRendered=function(a){var b=u.get(a);b&&b.value.renderDeferred.resolve()},w.focusFirstFocusableElement=function(){return s.length>0?(s[0].focus(),!0):!1},w.focusLastFocusableElement=function(){return s.length>0?(s[s.length-1].focus(),!0):!1},w.isFocusInFirstItem=function(a){return s.length>0?(a.target||a.srcElement)==s[0]:!1},w.isFocusInLastItem=function(a){return s.length>0?(a.target||a.srcElement)==s[s.length-1]:!1},w.clearFocusListCache=function(){s=[],x=0},w.loadFocusElementList=function(a){if((void 0===s||!s.length)&&a){var b=a.value.modalDomEl;b&&b.length&&(s=b[0].querySelectorAll(y))}},w}]).provider(\"$uibModal\",function(){var a={options:{animation:!0,backdrop:!0,keyboard:!0},$get:[\"$injector\",\"$rootScope\",\"$q\",\"$templateRequest\",\"$controller\",\"$uibModalStack\",\"$modalSuppressWarning\",\"$log\",function(b,c,d,e,f,g,h,i){function j(a){return a.template?d.when(a.template):e(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl)}function k(a){var c=[];return angular.forEach(a,function(a){angular.isFunction(a)||angular.isArray(a)?c.push(d.when(b.invoke(a))):angular.isString(a)?c.push(d.when(b.get(a))):c.push(d.when(a))}),c}var l={},m=null;return l.getPromiseChain=function(){return m},l.open=function(b){function e(){return r}var l=d.defer(),n=d.defer(),o=d.defer(),p={result:l.promise,opened:n.promise,rendered:o.promise,close:function(a){return g.close(p,a)},dismiss:function(a){return g.dismiss(p,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error(\"One of template or templateUrl options is required.\");var q,r=d.all([j(b)].concat(k(b.resolve)));return q=m=d.all([m]).then(e,e).then(function(a){var d=(b.scope||c).$new();d.$close=p.close,d.$dismiss=p.dismiss,d.$on(\"$destroy\",function(){d.$$uibDestructionScheduled||d.$dismiss(\"$uibUnscheduledDestruction\")});var e,j={},k=1;b.controller&&(j.$scope=d,j.$uibModalInstance=p,Object.defineProperty(j,\"$modalInstance\",{get:function(){return h||i.warn(\"$modalInstance is now deprecated. Use $uibModalInstance instead.\"),p}}),angular.forEach(b.resolve,function(b,c){j[c]=a[k++]}),e=f(b.controller,j),b.controllerAs&&(b.bindToController&&angular.extend(e,d),d[b.controllerAs]=e)),g.open(p,{scope:d,deferred:l,renderDeferred:o,content:a[0],animation:b.animation,backdrop:b.backdrop,keyboard:b.keyboard,backdropClass:b.backdropClass,windowTopClass:b.windowTopClass,windowClass:b.windowClass,windowTemplateUrl:b.windowTemplateUrl,size:b.size,openedClass:b.openedClass}),n.resolve(!0)},function(a){n.reject(a),l.reject(a)})[\"finally\"](function(){m===q&&(m=null)}),p},l}]};return a}),angular.module(\"ui.bootstrap.modal\").value(\"$modalSuppressWarning\",!1).directive(\"modalBackdrop\",[\"$animate\",\"$injector\",\"$modalStack\",\"$log\",\"$modalSuppressWarning\",function(a,b,c,d,e){function f(b,f,h){e||d.warn(\"modal-backdrop is now deprecated. Use uib-modal-backdrop instead.\"),f.addClass(\"modal-backdrop\"),h.modalInClass&&(g?g(f,{addClass:h.modalInClass}).start():a.addClass(f,h.modalInClass),b.$on(c.NOW_CLOSING_EVENT,function(b,c){var d=c();g?g(f,{removeClass:h.modalInClass}).start().then(d):a.removeClass(f,h.modalInClass).then(d)}))}var g=null;return b.has(\"$animateCss\")&&(g=b.get(\"$animateCss\")),{replace:!0,templateUrl:\"template/modal/backdrop.html\",compile:function(a,b){return a.addClass(b.backdropClass),f}}}]).directive(\"modalWindow\",[\"$modalStack\",\"$q\",\"$animate\",\"$injector\",\"$log\",\"$modalSuppressWarning\",function(a,b,c,d,e,f){var g=null;return d.has(\"$animateCss\")&&(g=d.get(\"$animateCss\")),{scope:{index:\"@\"},replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||\"template/modal/window.html\"},link:function(d,h,i){f||e.warn(\"modal-window is now deprecated. Use uib-modal-window instead.\"),h.addClass(i.windowClass||\"\"),h.addClass(i.windowTopClass||\"\"),d.size=i.size,d.close=function(b){var c=a.getTop();c&&c.value.backdrop&&\"static\"!==c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault(),b.stopPropagation(),a.dismiss(c.key,\"backdrop click\"))},h.on(\"click\",d.close),d.$isRendered=!0;var j=b.defer();i.$observe(\"modalRender\",function(a){\"true\"==a&&j.resolve()}),j.promise.then(function(){var e=null;i.modalInClass&&(e=g?g(h,{addClass:i.modalInClass}).start():c.addClass(h,i.modalInClass),d.$on(a.NOW_CLOSING_EVENT,function(a,b){var d=b();g?g(h,{removeClass:i.modalInClass}).start().then(d):c.removeClass(h,i.modalInClass).then(d)})),b.when(e).then(function(){var a=h[0].querySelector(\"[autofocus]\");a?a.focus():h[0].focus()});var f=a.getTop();f&&a.modalRendered(f.key)})}}}]).directive(\"modalAnimationClass\",[\"$log\",\"$modalSuppressWarning\",function(a,b){return{compile:function(c,d){b||a.warn(\"modal-animation-class is now deprecated. Use uib-modal-animation-class instead.\"),d.modalAnimation&&c.addClass(d.modalAnimationClass)}}}]).directive(\"modalTransclude\",[\"$log\",\"$modalSuppressWarning\",function(a,b){return{link:function(c,d,e,f,g){\r\nb||a.warn(\"modal-transclude is now deprecated. Use uib-modal-transclude instead.\"),g(c.$parent,function(a){d.empty(),d.append(a)})}}}]).service(\"$modalStack\",[\"$animate\",\"$timeout\",\"$document\",\"$compile\",\"$rootScope\",\"$q\",\"$injector\",\"$$multiMap\",\"$$stackedMap\",\"$uibModalStack\",\"$log\",\"$modalSuppressWarning\",function(a,b,c,d,e,f,g,h,i,j,k,l){l||k.warn(\"$modalStack is now deprecated. Use $uibModalStack instead.\"),angular.extend(this,j)}]).provider(\"$modal\",[\"$uibModalProvider\",function(a){angular.extend(this,a),this.$get=[\"$injector\",\"$log\",\"$modalSuppressWarning\",function(b,c,d){return d||c.warn(\"$modal is now deprecated. Use $uibModal instead.\"),b.invoke(a.$get)}]}]),angular.module(\"ui.bootstrap.pagination\",[]).controller(\"UibPaginationController\",[\"$scope\",\"$attrs\",\"$parse\",function(a,b,c){var d=this,e={$setViewValue:angular.noop},f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(g,h){e=g,this.config=h,e.$render=function(){d.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){d.itemsPerPage=parseInt(b,10),a.totalPages=d.calculateTotalPages()}):this.itemsPerPage=h.itemsPerPage,a.$watch(\"totalItems\",function(){a.totalPages=d.calculateTotalPages()}),a.$watch(\"totalPages\",function(b){f(a.$parent,b),a.page>b?a.selectPage(b):e.$render()})},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(e.$viewValue,10)||1},a.selectPage=function(b,c){c&&c.preventDefault();var d=!a.ngDisabled||!c;d&&a.page!==b&&b>0&&b<=a.totalPages&&(c&&c.target&&c.target.blur(),e.$setViewValue(b),e.$render())},a.getText=function(b){return a[b+\"Text\"]||d.config[b+\"Text\"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages}}]).constant(\"uibPaginationConfig\",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:\"First\",previousText:\"Previous\",nextText:\"Next\",lastText:\"Last\",rotate:!0}).directive(\"uibPagination\",[\"$parse\",\"uibPaginationConfig\",function(a,b){return{restrict:\"EA\",scope:{totalItems:\"=\",firstText:\"@\",previousText:\"@\",nextText:\"@\",lastText:\"@\",ngDisabled:\"=\"},require:[\"uibPagination\",\"?ngModel\"],controller:\"UibPaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pagination.html\"},replace:!0,link:function(c,d,e,f){function g(a,b,c){return{number:a,text:b,active:c}}function h(a,b){var c=[],d=1,e=b,f=angular.isDefined(k)&&b>k;f&&(l?(d=Math.max(a-Math.floor(k/2),1),e=d+k-1,e>b&&(e=b,d=e-k+1)):(d=(Math.ceil(a/k)-1)*k+1,e=Math.min(d+k-1,b)));for(var h=d;e>=h;h++){var i=g(h,h,h===a);c.push(i)}if(f&&!l){if(d>1){var j=g(d-1,\"...\",!1);c.unshift(j)}if(b>e){var m=g(e+1,\"...\",!1);c.push(m)}}return c}var i=f[0],j=f[1];if(j){var k=angular.isDefined(e.maxSize)?c.$parent.$eval(e.maxSize):b.maxSize,l=angular.isDefined(e.rotate)?c.$parent.$eval(e.rotate):b.rotate;c.boundaryLinks=angular.isDefined(e.boundaryLinks)?c.$parent.$eval(e.boundaryLinks):b.boundaryLinks,c.directionLinks=angular.isDefined(e.directionLinks)?c.$parent.$eval(e.directionLinks):b.directionLinks,i.init(j,b),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){k=parseInt(a,10),i.render()});var m=i.render;i.render=function(){m(),c.page>0&&c.page<=c.totalPages&&(c.pages=h(c.page,c.totalPages))}}}}}]).constant(\"uibPagerConfig\",{itemsPerPage:10,previousText:\"« Previous\",nextText:\"Next »\",align:!0}).directive(\"uibPager\",[\"uibPagerConfig\",function(a){return{restrict:\"EA\",scope:{totalItems:\"=\",previousText:\"@\",nextText:\"@\",ngDisabled:\"=\"},require:[\"uibPager\",\"?ngModel\"],controller:\"UibPaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pager.html\"},replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&(b.align=angular.isDefined(d.align)?b.$parent.$eval(d.align):a.align,f.init(g,a))}}}]),angular.module(\"ui.bootstrap.pagination\").value(\"$paginationSuppressWarning\",!1).controller(\"PaginationController\",[\"$scope\",\"$attrs\",\"$parse\",\"$log\",\"$paginationSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"PaginationController is now deprecated. Use UibPaginationController instead.\");var f=this,g={$setViewValue:angular.noop},h=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(d,e){g=d,this.config=e,g.$render=function(){f.render()},b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){f.itemsPerPage=parseInt(b,10),a.totalPages=f.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage,a.$watch(\"totalItems\",function(){a.totalPages=f.calculateTotalPages()}),a.$watch(\"totalPages\",function(b){h(a.$parent,b),a.page>b?a.selectPage(b):g.$render()})},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.render=function(){a.page=parseInt(g.$viewValue,10)||1},a.selectPage=function(b,c){c&&c.preventDefault();var d=!a.ngDisabled||!c;d&&a.page!==b&&b>0&&b<=a.totalPages&&(c&&c.target&&c.target.blur(),g.$setViewValue(b),g.$render())},a.getText=function(b){return a[b+\"Text\"]||f.config[b+\"Text\"]},a.noPrevious=function(){return 1===a.page},a.noNext=function(){return a.page===a.totalPages}}]).directive(\"pagination\",[\"$parse\",\"uibPaginationConfig\",\"$log\",\"$paginationSuppressWarning\",function(a,b,c,d){return{restrict:\"EA\",scope:{totalItems:\"=\",firstText:\"@\",previousText:\"@\",nextText:\"@\",lastText:\"@\",ngDisabled:\"=\"},require:[\"pagination\",\"?ngModel\"],controller:\"PaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pagination.html\"},replace:!0,link:function(e,f,g,h){function i(a,b,c){return{number:a,text:b,active:c}}function j(a,b){var c=[],d=1,e=b,f=angular.isDefined(m)&&b>m;f&&(n?(d=Math.max(a-Math.floor(m/2),1),e=d+m-1,e>b&&(e=b,d=e-m+1)):(d=(Math.ceil(a/m)-1)*m+1,e=Math.min(d+m-1,b)));for(var g=d;e>=g;g++){var h=i(g,g,g===a);c.push(h)}if(f&&!n){if(d>1){var j=i(d-1,\"...\",!1);c.unshift(j)}if(b>e){var k=i(e+1,\"...\",!1);c.push(k)}}return c}d||c.warn(\"pagination is now deprecated. Use uib-pagination instead.\");var k=h[0],l=h[1];if(l){var m=angular.isDefined(g.maxSize)?e.$parent.$eval(g.maxSize):b.maxSize,n=angular.isDefined(g.rotate)?e.$parent.$eval(g.rotate):b.rotate;e.boundaryLinks=angular.isDefined(g.boundaryLinks)?e.$parent.$eval(g.boundaryLinks):b.boundaryLinks,e.directionLinks=angular.isDefined(g.directionLinks)?e.$parent.$eval(g.directionLinks):b.directionLinks,k.init(l,b),g.maxSize&&e.$parent.$watch(a(g.maxSize),function(a){m=parseInt(a,10),k.render()});var o=k.render;k.render=function(){o(),e.page>0&&e.page<=e.totalPages&&(e.pages=j(e.page,e.totalPages))}}}}}]).directive(\"pager\",[\"uibPagerConfig\",\"$log\",\"$paginationSuppressWarning\",function(a,b,c){return{restrict:\"EA\",scope:{totalItems:\"=\",previousText:\"@\",nextText:\"@\",ngDisabled:\"=\"},require:[\"pager\",\"?ngModel\"],controller:\"PaginationController\",controllerAs:\"pagination\",templateUrl:function(a,b){return b.templateUrl||\"template/pagination/pager.html\"},replace:!0,link:function(d,e,f,g){c||b.warn(\"pager is now deprecated. Use uib-pager instead.\");var h=g[0],i=g[1];i&&(d.align=angular.isDefined(f.align)?d.$parent.$eval(f.align):a.align,h.init(i,a))}}}]),angular.module(\"ui.bootstrap.tooltip\",[\"ui.bootstrap.position\",\"ui.bootstrap.stackedMap\"]).provider(\"$uibTooltip\",function(){function a(a){var b=/[A-Z]/g,c=\"-\";return a.replace(b,function(a,b){return(b?c:\"\")+a.toLowerCase()})}var b={placement:\"top\",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},c={mouseenter:\"mouseleave\",click:\"click\",focus:\"blur\",none:\"\"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=[\"$window\",\"$compile\",\"$timeout\",\"$document\",\"$uibPosition\",\"$interpolate\",\"$rootScope\",\"$parse\",\"$$stackedMap\",function(e,f,g,h,i,j,k,l,m){var n=m.createNew();return h.on(\"keypress\",function(a){if(27===a.which){var b=n.top();b&&(b.value.close(),n.removeTop(),b=null)}}),function(e,k,m,o){function p(a){var b=(a||o.trigger||m).split(\" \"),d=b.map(function(a){return c[a]||a});return{show:b,hide:d}}o=angular.extend({},b,d,o);var q=a(e),r=j.startSymbol(),s=j.endSymbol(),t=\"
      ';return{compile:function(a,b){var c=f(t);return function(a,b,d,f){function j(){L.isOpen?q():m()}function m(){(!K||a.$eval(d[k+\"Enable\"]))&&(u(),x(),L.popupDelay?F||(F=g(r,L.popupDelay,!1)):r())}function q(){s(),L.popupCloseDelay?G||(G=g(t,L.popupCloseDelay,!1)):t()}function r(){return s(),u(),L.content?(v(),void L.$evalAsync(function(){L.isOpen=!0,y(!0),Q()})):angular.noop}function s(){F&&(g.cancel(F),F=null),H&&(g.cancel(H),H=null)}function t(){s(),u(),L&&L.$evalAsync(function(){L.isOpen=!1,y(!1),L.animation?E||(E=g(w,150,!1)):w()})}function u(){G&&(g.cancel(G),G=null),E&&(g.cancel(E),E=null)}function v(){C||(D=L.$new(),C=c(D,function(a){I?h.find(\"body\").append(a):b.after(a)}),z())}function w(){A(),E=null,C&&(C.remove(),C=null),D&&(D.$destroy(),D=null)}function x(){L.title=d[k+\"Title\"],O?L.content=O(a):L.content=d[e],L.popupClass=d[k+\"Class\"],L.placement=angular.isDefined(d[k+\"Placement\"])?d[k+\"Placement\"]:o.placement;var b=parseInt(d[k+\"PopupDelay\"],10),c=parseInt(d[k+\"PopupCloseDelay\"],10);L.popupDelay=isNaN(b)?o.popupDelay:b,L.popupCloseDelay=isNaN(c)?o.popupCloseDelay:c}function y(b){N&&angular.isFunction(N.assign)&&N.assign(a,b)}function z(){P.length=0,O?(P.push(a.$watch(O,function(a){L.content=a,!a&&L.isOpen&&t()})),P.push(D.$watch(function(){M||(M=!0,D.$$postDigest(function(){M=!1,L&&L.isOpen&&Q()}))}))):P.push(d.$observe(e,function(a){L.content=a,!a&&L.isOpen?t():Q()})),P.push(d.$observe(k+\"Title\",function(a){L.title=a,L.isOpen&&Q()})),P.push(d.$observe(k+\"Placement\",function(a){L.placement=a?a:o.placement,L.isOpen&&Q()}))}function A(){P.length&&(angular.forEach(P,function(a){a()}),P.length=0)}function B(){var a=d[k+\"Trigger\"];R(),J=p(a),\"none\"!==J.show&&J.show.forEach(function(a,c){a===J.hide[c]?b[0].addEventListener(a,j):a&&(b[0].addEventListener(a,m),J.hide[c].split(\" \").forEach(function(a){b[0].addEventListener(a,q)})),b.on(\"keypress\",function(a){27===a.which&&q()})})}var C,D,E,F,G,H,I=angular.isDefined(o.appendToBody)?o.appendToBody:!1,J=p(void 0),K=angular.isDefined(d[k+\"Enable\"]),L=a.$new(!0),M=!1,N=angular.isDefined(d[k+\"IsOpen\"])?l(d[k+\"IsOpen\"]):!1,O=o.useContentExp?l(d[e]):!1,P=[],Q=function(){C&&C.html()&&(H||(H=g(function(){C.css({top:0,left:0});var a=i.positionElements(b,C,L.placement,I);a.top+=\"px\",a.left+=\"px\",a.visibility=\"visible\",C.css(a),H=null},0,!1)))};L.origScope=a,L.isOpen=!1,n.add(L,{close:t}),L.contentExp=function(){return L.content},d.$observe(\"disabled\",function(a){a&&s(),a&&L.isOpen&&t()}),N&&a.$watch(N,function(a){L&&!a===L.isOpen&&j()});var R=function(){J.show.forEach(function(a){b.unbind(a,m)}),J.hide.forEach(function(a){a.split(\" \").forEach(function(a){b[0].removeEventListener(a,q)})})};B();var S=a.$eval(d[k+\"Animation\"]);L.animation=angular.isDefined(S)?!!S:o.animation;var T=a.$eval(d[k+\"AppendToBody\"]);I=angular.isDefined(T)?T:I,I&&a.$on(\"$locationChangeSuccess\",function(){L.isOpen&&t()}),a.$on(\"$destroy\",function(){s(),u(),R(),w(),n.remove(L),L=null})}}}}}]}).directive(\"uibTooltipTemplateTransclude\",[\"$animate\",\"$sce\",\"$compile\",\"$templateRequest\",function(a,b,c,d){return{link:function(e,f,g){var h,i,j,k=e.$eval(g.tooltipTemplateTranscludeScope),l=0,m=function(){i&&(i.remove(),i=null),h&&(h.$destroy(),h=null),j&&(a.leave(j).then(function(){i=null}),i=j,j=null)};e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude),function(b){var g=++l;b?(d(b,!0).then(function(d){if(g===l){var e=k.$new(),i=d,n=c(i)(e,function(b){m(),a.enter(b,f)});h=e,j=n,h.$emit(\"$includeContentLoaded\",b)}},function(){g===l&&(m(),e.$emit(\"$includeContentError\",b))}),e.$emit(\"$includeContentRequested\",b)):m()}),e.$on(\"$destroy\",m)}}}]).directive(\"uibTooltipClasses\",function(){return{restrict:\"A\",link:function(a,b,c){a.placement&&b.addClass(a.placement),a.popupClass&&b.addClass(a.popupClass),a.animation()&&b.addClass(c.tooltipAnimationClass)}}}).directive(\"uibTooltipPopup\",function(){return{replace:!0,scope:{content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-popup.html\",link:function(a,b){b.addClass(\"tooltip\")}}}).directive(\"uibTooltip\",[\"$uibTooltip\",function(a){return a(\"uibTooltip\",\"tooltip\",\"mouseenter\")}]).directive(\"uibTooltipTemplatePopup\",function(){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/tooltip/tooltip-template-popup.html\",link:function(a,b){b.addClass(\"tooltip\")}}}).directive(\"uibTooltipTemplate\",[\"$uibTooltip\",function(a){return a(\"uibTooltipTemplate\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]).directive(\"uibTooltipHtmlPopup\",function(){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-html-popup.html\",link:function(a,b){b.addClass(\"tooltip\")}}}).directive(\"uibTooltipHtml\",[\"$uibTooltip\",function(a){return a(\"uibTooltipHtml\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]),angular.module(\"ui.bootstrap.tooltip\").value(\"$tooltipSuppressWarning\",!1).provider(\"$tooltip\",[\"$uibTooltipProvider\",function(a){angular.extend(this,a),this.$get=[\"$log\",\"$tooltipSuppressWarning\",\"$injector\",function(b,c,d){return c||b.warn(\"$tooltip is now deprecated. Use $uibTooltip instead.\"),d.invoke(a.$get)}]}]).directive(\"tooltipTemplateTransclude\",[\"$animate\",\"$sce\",\"$compile\",\"$templateRequest\",\"$log\",\"$tooltipSuppressWarning\",function(a,b,c,d,e,f){return{link:function(g,h,i){f||e.warn(\"tooltip-template-transclude is now deprecated. Use uib-tooltip-template-transclude instead.\");var j,k,l,m=g.$eval(i.tooltipTemplateTranscludeScope),n=0,o=function(){k&&(k.remove(),k=null),j&&(j.$destroy(),j=null),l&&(a.leave(l).then(function(){k=null}),k=l,l=null)};g.$watch(b.parseAsResourceUrl(i.tooltipTemplateTransclude),function(b){var e=++n;b?(d(b,!0).then(function(d){if(e===n){var f=m.$new(),g=d,i=c(g)(f,function(b){o(),a.enter(b,h)});j=f,l=i,j.$emit(\"$includeContentLoaded\",b)}},function(){e===n&&(o(),g.$emit(\"$includeContentError\",b))}),g.$emit(\"$includeContentRequested\",b)):o()}),g.$on(\"$destroy\",o)}}}]).directive(\"tooltipClasses\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{restrict:\"A\",link:function(c,d,e){b||a.warn(\"tooltip-classes is now deprecated. Use uib-tooltip-classes instead.\"),c.placement&&d.addClass(c.placement),c.popupClass&&d.addClass(c.popupClass),c.animation()&&d.addClass(e.tooltipAnimationClass)}}}]).directive(\"tooltipPopup\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{replace:!0,scope:{content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-popup.html\",link:function(c,d){b||a.warn(\"tooltip-popup is now deprecated. Use uib-tooltip-popup instead.\"),d.addClass(\"tooltip\")}}}]).directive(\"tooltip\",[\"$tooltip\",function(a){return a(\"tooltip\",\"tooltip\",\"mouseenter\")}]).directive(\"tooltipTemplatePopup\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/tooltip/tooltip-template-popup.html\",link:function(c,d){b||a.warn(\"tooltip-template-popup is now deprecated. Use uib-tooltip-template-popup instead.\"),d.addClass(\"tooltip\")}}}]).directive(\"tooltipTemplate\",[\"$tooltip\",function(a){return a(\"tooltipTemplate\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]).directive(\"tooltipHtmlPopup\",[\"$log\",\"$tooltipSuppressWarning\",function(a,b){return{replace:!0,scope:{contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/tooltip/tooltip-html-popup.html\",link:function(c,d){b||a.warn(\"tooltip-html-popup is now deprecated. Use uib-tooltip-html-popup instead.\"),d.addClass(\"tooltip\")}}}]).directive(\"tooltipHtml\",[\"$tooltip\",function(a){return a(\"tooltipHtml\",\"tooltip\",\"mouseenter\",{useContentExp:!0})}]),angular.module(\"ui.bootstrap.popover\",[\"ui.bootstrap.tooltip\"]).directive(\"uibPopoverTemplatePopup\",function(){return{replace:!0,scope:{title:\"@\",contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/popover/popover-template.html\",link:function(a,b){b.addClass(\"popover\")}}}).directive(\"uibPopoverTemplate\",[\"$uibTooltip\",function(a){return a(\"uibPopoverTemplate\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"uibPopoverHtmlPopup\",function(){return{replace:!0,scope:{contentExp:\"&\",title:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover-html.html\",link:function(a,b){b.addClass(\"popover\")}}}).directive(\"uibPopoverHtml\",[\"$uibTooltip\",function(a){return a(\"uibPopoverHtml\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"uibPopoverPopup\",function(){return{replace:!0,scope:{title:\"@\",content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover.html\",link:function(a,b){b.addClass(\"popover\")}}}).directive(\"uibPopover\",[\"$uibTooltip\",function(a){return a(\"uibPopover\",\"popover\",\"click\")}]),angular.module(\"ui.bootstrap.popover\").value(\"$popoverSuppressWarning\",!1).directive(\"popoverTemplatePopup\",[\"$log\",\"$popoverSuppressWarning\",function(a,b){return{replace:!0,scope:{title:\"@\",contentExp:\"&\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\",originScope:\"&\"},templateUrl:\"template/popover/popover-template.html\",link:function(c,d){b||a.warn(\"popover-template-popup is now deprecated. Use uib-popover-template-popup instead.\"),d.addClass(\"popover\")}}}]).directive(\"popoverTemplate\",[\"$tooltip\",function(a){return a(\"popoverTemplate\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"popoverHtmlPopup\",[\"$log\",\"$popoverSuppressWarning\",function(a,b){return{replace:!0,scope:{contentExp:\"&\",title:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover-html.html\",link:function(c,d){b||a.warn(\"popover-html-popup is now deprecated. Use uib-popover-html-popup instead.\"),d.addClass(\"popover\")}}}]).directive(\"popoverHtml\",[\"$tooltip\",function(a){return a(\"popoverHtml\",\"popover\",\"click\",{useContentExp:!0})}]).directive(\"popoverPopup\",[\"$log\",\"$popoverSuppressWarning\",function(a,b){return{replace:!0,scope:{title:\"@\",content:\"@\",placement:\"@\",popupClass:\"@\",animation:\"&\",isOpen:\"&\"},templateUrl:\"template/popover/popover.html\",link:function(c,d){b||a.warn(\"popover-popup is now deprecated. Use uib-popover-popup instead.\"),d.addClass(\"popover\")}}}]).directive(\"popover\",[\"$tooltip\",function(a){return a(\"popover\",\"popover\",\"click\")}]),angular.module(\"ui.bootstrap.progressbar\",[]).constant(\"uibProgressConfig\",{animate:!0,max:100}).controller(\"UibProgressController\",[\"$scope\",\"$attrs\",\"uibProgressConfig\",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,f){e||c.css({transition:\"none\"}),this.bars.push(b),b.max=a.max,b.title=f&&angular.isDefined(f.title)?f.title:\"progressbar\",b.$watch(\"value\",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){var a=d.bars.reduce(function(a,b){return b.percent=+(100*b.value/b.max).toFixed(2),a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on(\"$destroy\",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1),this.bars.forEach(function(a){a.recalculatePercentage()})},a.$watch(\"max\",function(b){d.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive(\"uibProgress\",function(){return{replace:!0,transclude:!0,controller:\"UibProgressController\",require:\"uibProgress\",scope:{max:\"=?\"},templateUrl:\"template/progressbar/progress.html\"}}).directive(\"uibBar\",function(){return{replace:!0,transclude:!0,require:\"^uibProgress\",scope:{value:\"=\",type:\"@\"},templateUrl:\"template/progressbar/bar.html\",link:function(a,b,c,d){d.addBar(a,b,c)}}}).directive(\"uibProgressbar\",function(){return{replace:!0,transclude:!0,controller:\"UibProgressController\",scope:{value:\"=\",max:\"=?\",type:\"@\"},templateUrl:\"template/progressbar/progressbar.html\",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]),{title:c.title})}}}),angular.module(\"ui.bootstrap.progressbar\").value(\"$progressSuppressWarning\",!1).controller(\"ProgressController\",[\"$scope\",\"$attrs\",\"uibProgressConfig\",\"$log\",\"$progressSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"ProgressController is now deprecated. Use UibProgressController instead.\");var f=this,g=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,d){g||c.css({transition:\"none\"}),this.bars.push(b),b.max=a.max,b.title=d&&angular.isDefined(d.title)?d.title:\"progressbar\",b.$watch(\"value\",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){b.percent=+(100*b.value/b.max).toFixed(2);var a=f.bars.reduce(function(a,b){return a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on(\"$destroy\",function(){c=null,f.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1)},a.$watch(\"max\",function(b){f.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive(\"progress\",[\"$log\",\"$progressSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,controller:\"ProgressController\",require:\"progress\",scope:{max:\"=?\",title:\"@?\"},templateUrl:\"template/progressbar/progress.html\",link:function(){b||a.warn(\"progress is now deprecated. Use uib-progress instead.\")}}}]).directive(\"bar\",[\"$log\",\"$progressSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,require:\"^progress\",scope:{value:\"=\",type:\"@\"},templateUrl:\"template/progressbar/bar.html\",link:function(c,d,e,f){b||a.warn(\"bar is now deprecated. Use uib-bar instead.\"),f.addBar(c,d)}}}]).directive(\"progressbar\",[\"$log\",\"$progressSuppressWarning\",function(a,b){return{replace:!0,transclude:!0,controller:\"ProgressController\",scope:{value:\"=\",max:\"=?\",type:\"@\"},templateUrl:\"template/progressbar/progressbar.html\",link:function(c,d,e,f){b||a.warn(\"progressbar is now deprecated. Use uib-progressbar instead.\"),f.addBar(c,angular.element(d.children()[0]),{title:e.title})}}}]),angular.module(\"ui.bootstrap.rating\",[]).constant(\"uibRatingConfig\",{max:5,stateOn:null,stateOff:null,titles:[\"one\",\"two\",\"three\",\"four\",\"five\"]}).controller(\"UibRatingController\",[\"$scope\",\"$attrs\",\"uibRatingConfig\",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,d.$formatters.push(function(a){return angular.isNumber(a)&&a<<0!==a&&(a=Math.round(a)),a}),this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.titles)?a.$parent.$eval(b.titles):c.titles;this.titles=angular.isArray(f)&&f.length>0?f:c.titles;var g=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(g)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(b)},a[b]);return a},this.getTitle=function(a){return a>=this.titles.length?a+1:this.titles[a]},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(d.$viewValue===b?0:b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive(\"uibRating\",function(){return{require:[\"uibRating\",\"ngModel\"],scope:{readonly:\"=?\",onHover:\"&\",onLeave:\"&\"},controller:\"UibRatingController\",templateUrl:\"template/rating/rating.html\",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}),angular.module(\"ui.bootstrap.rating\").value(\"$ratingSuppressWarning\",!1).controller(\"RatingController\",[\"$scope\",\"$attrs\",\"$controller\",\"$log\",\"$ratingSuppressWarning\",function(a,b,c,d,e){e||d.warn(\"RatingController is now deprecated. Use UibRatingController instead.\"),angular.extend(this,c(\"UibRatingController\",{$scope:a,$attrs:b}))}]).directive(\"rating\",[\"$log\",\"$ratingSuppressWarning\",function(a,b){return{require:[\"rating\",\"ngModel\"],scope:{readonly:\"=?\",onHover:\"&\",onLeave:\"&\"},controller:\"RatingController\",templateUrl:\"template/rating/rating.html\",replace:!0,link:function(c,d,e,f){b||a.warn(\"rating is now deprecated. Use uib-rating instead.\");var g=f[0],h=f[1];g.init(h)}}}]),angular.module(\"ui.bootstrap.tabs\",[]).controller(\"UibTabsetController\",[\"$scope\",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect(),a.selectCalled=!1)}),a.active=!0,a.selectCalled||(a.onSelect(),a.selectCalled=!0)},b.addTab=function(a){c.push(a),1===c.length&&a.active!==!1?a.active=!0:a.active?b.select(a):a.active=!1},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e==c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on(\"$destroy\",function(){d=!0})}]).directive(\"uibTabset\",function(){return{restrict:\"EA\",transclude:!0,replace:!0,scope:{type:\"@\"},controller:\"UibTabsetController\",templateUrl:\"template/tabs/tabset.html\",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive(\"uibTab\",[\"$parse\",function(a){return{require:\"^uibTabset\",restrict:\"EA\",replace:!0,templateUrl:\"template/tabs/tab.html\",transclude:!0,scope:{active:\"=?\",heading:\"@\",onSelect:\"&select\",onDeselect:\"&deselect\"},controller:function(){},link:function(b,c,d,e,f){b.$watch(\"active\",function(a){a&&e.select(b)}),b.disabled=!1,d.disable&&b.$parent.$watch(a(d.disable),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},e.addTab(b),b.$on(\"$destroy\",function(){e.removeTab(b)}),b.$transcludeFn=f}}}]).directive(\"uibTabHeadingTransclude\",function(){return{restrict:\"A\",require:[\"?^uibTab\",\"?^tab\"],link:function(a,b){a.$watch(\"headingElement\",function(a){a&&(b.html(\"\"),b.append(a))})}}}).directive(\"uibTabContentTransclude\",function(){function a(a){return a.tagName&&(a.hasAttribute(\"tab-heading\")||a.hasAttribute(\"data-tab-heading\")||a.hasAttribute(\"x-tab-heading\")||a.hasAttribute(\"uib-tab-heading\")||a.hasAttribute(\"data-uib-tab-heading\")||a.hasAttribute(\"x-uib-tab-heading\")||\"tab-heading\"===a.tagName.toLowerCase()||\"data-tab-heading\"===a.tagName.toLowerCase()||\"x-tab-heading\"===a.tagName.toLowerCase()||\"uib-tab-heading\"===a.tagName.toLowerCase()||\"data-uib-tab-heading\"===a.tagName.toLowerCase()||\"x-uib-tab-heading\"===a.tagName.toLowerCase())}return{restrict:\"A\",require:[\"?^uibTabset\",\"?^tabset\"],link:function(b,c,d){var e=b.$eval(d.uibTabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module(\"ui.bootstrap.tabs\").value(\"$tabsSuppressWarning\",!1).controller(\"TabsetController\",[\"$scope\",\"$controller\",\"$log\",\"$tabsSuppressWarning\",function(a,b,c,d){d||c.warn(\"TabsetController is now deprecated. Use UibTabsetController instead.\"),angular.extend(this,b(\"UibTabsetController\",{$scope:a}))}]).directive(\"tabset\",[\"$log\",\"$tabsSuppressWarning\",function(a,b){return{restrict:\"EA\",transclude:!0,replace:!0,scope:{type:\"@\"},controller:\"TabsetController\",templateUrl:\"template/tabs/tabset.html\",link:function(c,d,e){b||a.warn(\"tabset is now deprecated. Use uib-tabset instead.\"),c.vertical=angular.isDefined(e.vertical)?c.$parent.$eval(e.vertical):!1,c.justified=angular.isDefined(e.justified)?c.$parent.$eval(e.justified):!1}}}]).directive(\"tab\",[\"$parse\",\"$log\",\"$tabsSuppressWarning\",function(a,b,c){return{require:\"^tabset\",restrict:\"EA\",replace:!0,templateUrl:\"template/tabs/tab.html\",transclude:!0,scope:{active:\"=?\",heading:\"@\",onSelect:\"&select\",onDeselect:\"&deselect\"},controller:function(){},link:function(d,e,f,g,h){c||b.warn(\"tab is now deprecated. Use uib-tab instead.\"),d.$watch(\"active\",function(a){a&&g.select(d)}),d.disabled=!1,f.disable&&d.$parent.$watch(a(f.disable),function(a){d.disabled=!!a}),d.select=function(){d.disabled||(d.active=!0)},g.addTab(d),d.$on(\"$destroy\",function(){g.removeTab(d)}),d.$transcludeFn=h}}}]).directive(\"tabHeadingTransclude\",[\"$log\",\"$tabsSuppressWarning\",function(a,b){return{restrict:\"A\",require:\"^tab\",link:function(c,d){b||a.warn(\"tab-heading-transclude is now deprecated. Use uib-tab-heading-transclude instead.\"),c.$watch(\"headingElement\",function(a){a&&(d.html(\"\"),d.append(a))})}}}]).directive(\"tabContentTransclude\",[\"$log\",\"$tabsSuppressWarning\",function(a,b){function c(a){return a.tagName&&(a.hasAttribute(\"tab-heading\")||a.hasAttribute(\"data-tab-heading\")||a.hasAttribute(\"x-tab-heading\")||\"tab-heading\"===a.tagName.toLowerCase()||\"data-tab-heading\"===a.tagName.toLowerCase()||\"x-tab-heading\"===a.tagName.toLowerCase())}return{restrict:\"A\",require:\"^tabset\",link:function(d,e,f){b||a.warn(\"tab-content-transclude is now deprecated. Use uib-tab-content-transclude instead.\");var g=d.$eval(f.tabContentTransclude);g.$transcludeFn(g.$parent,function(a){angular.forEach(a,function(a){c(a)?g.headingElement=a:e.append(a)})})}}}]),angular.module(\"ui.bootstrap.timepicker\",[]).constant(\"uibTimepickerConfig\",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0}).controller(\"UibTimepickerController\",[\"$scope\",\"$element\",\"$attrs\",\"$parse\",\"$log\",\"$locale\",\"uibTimepickerConfig\",function(a,b,c,d,e,f,g){function h(){var b=parseInt(a.hours,10),c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===r[1]&&(b+=12)),b):void 0}function i(){var b=parseInt(a.minutes,10);return b>=0&&60>b?b:void 0}function j(a){return angular.isDefined(a)&&a.toString().length<2?\"0\"+a:a.toString()}function k(a){l(),q.$setViewValue(new Date(p)),m(a)}function l(){q.$setValidity(\"time\",!0),a.invalidHours=!1,a.invalidMinutes=!1}function m(b){var c=p.getHours(),d=p.getMinutes();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours=\"h\"===b?c:j(c),\"m\"!==b&&(a.minutes=j(d)),a.meridian=p.getHours()<12?r[0]:r[1]}function n(a,b){var c=new Date(a.getTime()+6e4*b),d=new Date(a);return d.setHours(c.getHours(),c.getMinutes()),d}function o(a){p=n(p,a),k()}var p=new Date,q={$setViewValue:angular.noop},r=angular.isDefined(c.meridians)?a.$parent.$eval(c.meridians):g.meridians||f.DATETIME_FORMATS.AMPMS;a.tabindex=angular.isDefined(c.tabindex)?c.tabindex:0,b.removeAttr(\"tabindex\"),this.init=function(b,d){q=b,q.$render=this.render,q.$formatters.unshift(function(a){return a?new Date(a):null});var e=d.eq(0),f=d.eq(1),h=angular.isDefined(c.mousewheel)?a.$parent.$eval(c.mousewheel):g.mousewheel;h&&this.setupMousewheelEvents(e,f);var i=angular.isDefined(c.arrowkeys)?a.$parent.$eval(c.arrowkeys):g.arrowkeys;i&&this.setupArrowkeyEvents(e,f),a.readonlyInput=angular.isDefined(c.readonlyInput)?a.$parent.$eval(c.readonlyInput):g.readonlyInput,this.setupInputEvents(e,f)};var s=g.hourStep;c.hourStep&&a.$parent.$watch(d(c.hourStep),function(a){s=parseInt(a,10)});var t=g.minuteStep;c.minuteStep&&a.$parent.$watch(d(c.minuteStep),function(a){t=parseInt(a,10)});var u;a.$parent.$watch(d(c.min),function(a){var b=new Date(a);u=isNaN(b)?void 0:b});var v;a.$parent.$watch(d(c.max),function(a){var b=new Date(a);v=isNaN(b)?void 0:b}),a.noIncrementHours=function(){var a=n(p,60*s);\r\nreturn a>v||p>a&&u>a},a.noDecrementHours=function(){var a=n(p,60*-s);return u>a||a>p&&a>v},a.noIncrementMinutes=function(){var a=n(p,t);return a>v||p>a&&u>a},a.noDecrementMinutes=function(){var a=n(p,-t);return u>a||a>p&&a>v},a.noToggleMeridian=function(){return p.getHours()<13?n(p,720)>v:n(p,-720)0};b.bind(\"mousewheel wheel\",function(b){a.$apply(d(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind(\"mousewheel wheel\",function(b){a.$apply(d(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()})},this.setupArrowkeyEvents=function(b,c){b.bind(\"keydown\",function(b){38===b.which?(b.preventDefault(),a.incrementHours(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementHours(),a.$apply())}),c.bind(\"keydown\",function(b){38===b.which?(b.preventDefault(),a.incrementMinutes(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementMinutes(),a.$apply())})},this.setupInputEvents=function(b,c){if(a.readonlyInput)return a.updateHours=angular.noop,void(a.updateMinutes=angular.noop);var d=function(b,c){q.$setViewValue(null),q.$setValidity(\"time\",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c)};a.updateHours=function(){var a=h(),b=i();angular.isDefined(a)&&angular.isDefined(b)?(p.setHours(a),u>p||p>v?d(!0):k(\"h\")):d(!0)},b.bind(\"blur\",function(b){!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=j(a.hours)})}),a.updateMinutes=function(){var a=i(),b=h();angular.isDefined(a)&&angular.isDefined(b)?(p.setMinutes(a),u>p||p>v?d(void 0,!0):k(\"m\")):d(void 0,!0)},c.bind(\"blur\",function(b){!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=j(a.minutes)})})},this.render=function(){var b=q.$viewValue;isNaN(b)?(q.$setValidity(\"time\",!1),e.error('Timepicker directive: \"ng-model\" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(b&&(p=b),u>p||p>v?(q.$setValidity(\"time\",!1),a.invalidHours=!0,a.invalidMinutes=!0):l(),m())},a.showSpinners=angular.isDefined(c.showSpinners)?a.$parent.$eval(c.showSpinners):g.showSpinners,a.incrementHours=function(){a.noIncrementHours()||o(60*s)},a.decrementHours=function(){a.noDecrementHours()||o(60*-s)},a.incrementMinutes=function(){a.noIncrementMinutes()||o(t)},a.decrementMinutes=function(){a.noDecrementMinutes()||o(-t)},a.toggleMeridian=function(){a.noToggleMeridian()||o(720*(p.getHours()<12?1:-1))}}]).directive(\"uibTimepicker\",function(){return{restrict:\"EA\",require:[\"uibTimepicker\",\"?^ngModel\"],controller:\"UibTimepickerController\",controllerAs:\"timepicker\",replace:!0,scope:{},templateUrl:function(a,b){return b.templateUrl||\"template/timepicker/timepicker.html\"},link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find(\"input\"))}}}),angular.module(\"ui.bootstrap.timepicker\").value(\"$timepickerSuppressWarning\",!1).controller(\"TimepickerController\",[\"$scope\",\"$element\",\"$attrs\",\"$controller\",\"$log\",\"$timepickerSuppressWarning\",function(a,b,c,d,e,f){f||e.warn(\"TimepickerController is now deprecated. Use UibTimepickerController instead.\"),angular.extend(this,d(\"UibTimepickerController\",{$scope:a,$element:b,$attrs:c}))}]).directive(\"timepicker\",[\"$log\",\"$timepickerSuppressWarning\",function(a,b){return{restrict:\"EA\",require:[\"timepicker\",\"?^ngModel\"],controller:\"TimepickerController\",controllerAs:\"timepicker\",replace:!0,scope:{},templateUrl:function(a,b){return b.templateUrl||\"template/timepicker/timepicker.html\"},link:function(c,d,e,f){b||a.warn(\"timepicker is now deprecated. Use uib-timepicker instead.\");var g=f[0],h=f[1];h&&g.init(h,d.find(\"input\"))}}}]),angular.module(\"ui.bootstrap.typeahead\",[\"ui.bootstrap.position\"]).factory(\"uibTypeaheadParser\",[\"$parse\",function(a){var b=/^\\s*([\\s\\S]+?)(?:\\s+as\\s+([\\s\\S]+?))?\\s+for\\s+(?:([\\$\\w][\\$\\w\\d]*))\\s+in\\s+([\\s\\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of \"_modelValue_ (as _label_)? for _item_ in _collection_\" but got \"'+c+'\".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).controller(\"UibTypeaheadController\",[\"$scope\",\"$element\",\"$attrs\",\"$compile\",\"$parse\",\"$q\",\"$timeout\",\"$document\",\"$window\",\"$rootScope\",\"$uibPosition\",\"uibTypeaheadParser\",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(){K.moveInProgress||(K.moveInProgress=!0,K.$digest()),S&&g.cancel(S),S=g(function(){K.matches.length&&n(),K.moveInProgress=!1},r)}function n(){K.position=C?k.offset(b):k.position(b),K.position.top+=b.prop(\"offsetHeight\")}var o,p,q=[9,13,27,38,40],r=200,s=a.$eval(c.typeaheadMinLength);s||0===s||(s=1);var t,u,v=a.$eval(c.typeaheadWaitMs)||0,w=a.$eval(c.typeaheadEditable)!==!1,x=e(c.typeaheadLoading).assign||angular.noop,y=e(c.typeaheadOnSelect),z=angular.isDefined(c.typeaheadSelectOnBlur)?a.$eval(c.typeaheadSelectOnBlur):!1,A=e(c.typeaheadNoResults).assign||angular.noop,B=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,C=c.typeaheadAppendToBody?a.$eval(c.typeaheadAppendToBody):!1,D=c.typeaheadAppendToElementId||!1,E=a.$eval(c.typeaheadFocusFirst)!==!1,F=c.typeaheadSelectOnExact?a.$eval(c.typeaheadSelectOnExact):!1,G=e(c.ngModel),H=e(c.ngModel+\"($$$p)\"),I=function(b,c){return angular.isFunction(G(a))&&p&&p.$options&&p.$options.getterSetter?H(b,{$$$p:c}):G.assign(b,c)},J=l.parse(c.uibTypeahead),K=a.$new(),L=a.$on(\"$destroy\",function(){K.$destroy()});K.$on(\"$destroy\",L);var M=\"typeahead-\"+K.$id+\"-\"+Math.floor(1e4*Math.random());b.attr({\"aria-autocomplete\":\"list\",\"aria-expanded\":!1,\"aria-owns\":M});var N=angular.element(\"
      \");N.attr({id:M,matches:\"matches\",active:\"activeIdx\",select:\"select(activeIdx)\",\"move-in-progress\":\"moveInProgress\",query:\"query\",position:\"position\"}),angular.isDefined(c.typeaheadTemplateUrl)&&N.attr(\"template-url\",c.typeaheadTemplateUrl),angular.isDefined(c.typeaheadPopupTemplateUrl)&&N.attr(\"popup-template-url\",c.typeaheadPopupTemplateUrl);var O=function(){K.matches=[],K.activeIdx=-1,b.attr(\"aria-expanded\",!1)},P=function(a){return M+\"-option-\"+a};K.$watch(\"activeIdx\",function(a){0>a?b.removeAttr(\"aria-activedescendant\"):b.attr(\"aria-activedescendant\",P(a))});var Q=function(a,b){return K.matches.length>b&&a?a.toUpperCase()===K.matches[b].label.toUpperCase():!1},R=function(c){var d={$viewValue:c};x(a,!0),A(a,!1),f.when(J.source(a,d)).then(function(e){var f=c===o.$viewValue;if(f&&t)if(e&&e.length>0){K.activeIdx=E?0:-1,A(a,!1),K.matches.length=0;for(var g=0;g0?K.activeIdx:K.matches.length)-1,K.$digest()):13===a.which||9===a.which?K.$apply(function(){K.select(K.activeIdx)}):27===a.which&&(a.stopPropagation(),O(),K.$digest())}}),b.bind(\"blur\",function(){z&&K.matches.length&&-1!==K.activeIdx&&!u&&(u=!0,K.$apply(function(){K.select(K.activeIdx)})),t=!1,u=!1});var W=function(a){b[0]!==a.target&&3!==a.which&&0!==K.matches.length&&(O(),j.$$phase||K.$digest())};h.bind(\"click\",W),a.$on(\"$destroy\",function(){h.unbind(\"click\",W),(C||D)&&X.remove(),C&&(angular.element(i).unbind(\"resize\",m),h.find(\"body\").unbind(\"scroll\",m)),N.remove()});var X=d(N)(K);C?h.find(\"body\").append(X):D!==!1?angular.element(h[0].getElementById(D)).append(X):b.after(X),this.init=function(b,c){o=b,p=c,o.$parsers.unshift(function(b){return t=!0,0===s||b&&b.length>=s?v>0?(V(),U(b)):R(b):(x(a,!1),V(),O()),w?b:b?void o.$setValidity(\"editable\",!1):(o.$setValidity(\"editable\",!0),null)}),o.$formatters.push(function(b){var c,d,e={};return w||o.$setValidity(\"editable\",!0),B?(e.$model=b,B(a,e)):(e[J.itemName]=b,c=J.viewMapper(a,e),e[J.itemName]=void 0,d=J.viewMapper(a,e),c!==d?c:b)})}}]).directive(\"uibTypeahead\",function(){return{controller:\"UibTypeaheadController\",require:[\"ngModel\",\"^?ngModelOptions\",\"uibTypeahead\"],link:function(a,b,c,d){d[2].init(d[0],d[1])}}}).directive(\"uibTypeaheadPopup\",function(){return{scope:{matches:\"=\",query:\"=\",active:\"=\",position:\"&\",moveInProgress:\"=\",select:\"&\"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||\"template/typeahead/typeahead-popup.html\"},link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive(\"uibTypeaheadMatch\",[\"$templateRequest\",\"$compile\",\"$parse\",function(a,b,c){return{scope:{index:\"=\",match:\"=\",query:\"=\"},link:function(d,e,f){var g=c(f.templateUrl)(d.$parent)||\"template/typeahead/typeahead-match.html\";a(g).then(function(a){b(a.trim())(d,function(a){e.replaceWith(a)})})}}}]).filter(\"uibTypeaheadHighlight\",[\"$sce\",\"$injector\",\"$log\",function(a,b,c){function d(a){return a.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")}function e(a){return/<.*>/g.test(a)}var f;return f=b.has(\"$sanitize\"),function(b,g){return!f&&e(b)&&c.warn(\"Unsafe use of typeahead please use ngSanitize\"),b=g?(\"\"+b).replace(new RegExp(d(g),\"gi\"),\"$&\"):b,f||(b=a.trustAsHtml(b)),b}}]),angular.module(\"ui.bootstrap.typeahead\").value(\"$typeaheadSuppressWarning\",!1).service(\"typeaheadParser\",[\"$parse\",\"uibTypeaheadParser\",\"$log\",\"$typeaheadSuppressWarning\",function(a,b,c,d){return d||c.warn(\"typeaheadParser is now deprecated. Use uibTypeaheadParser instead.\"),b}]).directive(\"typeahead\",[\"$compile\",\"$parse\",\"$q\",\"$timeout\",\"$document\",\"$window\",\"$rootScope\",\"$uibPosition\",\"typeaheadParser\",\"$log\",\"$typeaheadSuppressWarning\",function(a,b,c,d,e,f,g,h,i,j,k){var l=[9,13,27,38,40],m=200;return{require:[\"ngModel\",\"^?ngModelOptions\"],link:function(n,o,p,q){function r(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),V&&d.cancel(V),V=d(function(){N.matches.length&&s(),N.moveInProgress=!1},m)}function s(){N.position=F?h.offset(o):h.position(o),N.position.top+=o.prop(\"offsetHeight\")}k||j.warn(\"typeahead is now deprecated. Use uib-typeahead instead.\");var t=q[0],u=q[1],v=n.$eval(p.typeaheadMinLength);v||0===v||(v=1);var w,x,y=n.$eval(p.typeaheadWaitMs)||0,z=n.$eval(p.typeaheadEditable)!==!1,A=b(p.typeaheadLoading).assign||angular.noop,B=b(p.typeaheadOnSelect),C=angular.isDefined(p.typeaheadSelectOnBlur)?n.$eval(p.typeaheadSelectOnBlur):!1,D=b(p.typeaheadNoResults).assign||angular.noop,E=p.typeaheadInputFormatter?b(p.typeaheadInputFormatter):void 0,F=p.typeaheadAppendToBody?n.$eval(p.typeaheadAppendToBody):!1,G=p.typeaheadAppendToElementId||!1,H=n.$eval(p.typeaheadFocusFirst)!==!1,I=p.typeaheadSelectOnExact?n.$eval(p.typeaheadSelectOnExact):!1,J=b(p.ngModel),K=b(p.ngModel+\"($$$p)\"),L=function(a,b){return angular.isFunction(J(n))&&u&&u.$options&&u.$options.getterSetter?K(a,{$$$p:b}):J.assign(a,b)},M=i.parse(p.typeahead),N=n.$new(),O=n.$on(\"$destroy\",function(){N.$destroy()});N.$on(\"$destroy\",O);var P=\"typeahead-\"+N.$id+\"-\"+Math.floor(1e4*Math.random());o.attr({\"aria-autocomplete\":\"list\",\"aria-expanded\":!1,\"aria-owns\":P});var Q=angular.element(\"
      \");Q.attr({id:P,matches:\"matches\",active:\"activeIdx\",select:\"select(activeIdx)\",\"move-in-progress\":\"moveInProgress\",query:\"query\",position:\"position\"}),angular.isDefined(p.typeaheadTemplateUrl)&&Q.attr(\"template-url\",p.typeaheadTemplateUrl),angular.isDefined(p.typeaheadPopupTemplateUrl)&&Q.attr(\"popup-template-url\",p.typeaheadPopupTemplateUrl);var R=function(){N.matches=[],N.activeIdx=-1,o.attr(\"aria-expanded\",!1)},S=function(a){return P+\"-option-\"+a};N.$watch(\"activeIdx\",function(a){0>a?o.removeAttr(\"aria-activedescendant\"):o.attr(\"aria-activedescendant\",S(a))});var T=function(a,b){return N.matches.length>b&&a?a.toUpperCase()===N.matches[b].label.toUpperCase():!1},U=function(a){var b={$viewValue:a};A(n,!0),D(n,!1),c.when(M.source(n,b)).then(function(c){var d=a===t.$viewValue;if(d&&w)if(c&&c.length>0){N.activeIdx=H?0:-1,D(n,!1),N.matches.length=0;for(var e=0;e=v?y>0?(Y(),X(a)):U(a):(A(n,!1),Y(),R()),z?a:a?void t.$setValidity(\"editable\",!1):(t.$setValidity(\"editable\",!0),null)}),t.$formatters.push(function(a){var b,c,d={};return z||t.$setValidity(\"editable\",!0),E?(d.$model=a,E(n,d)):(d[M.itemName]=a,b=M.viewMapper(n,d),d[M.itemName]=void 0,c=M.viewMapper(n,d),b!==c?b:a)}),N.select=function(a){var b,c,e={};x=!0,e[M.itemName]=c=N.matches[a].model,b=M.modelMapper(n,e),L(n,b),t.$setValidity(\"editable\",!0),t.$setValidity(\"parse\",!0),B(n,{$item:c,$model:b,$label:M.viewMapper(n,e)}),R(),N.$eval(p.typeaheadFocusOnSelect)!==!1&&d(function(){o[0].focus()},0,!1)},o.bind(\"keydown\",function(a){if(0!==N.matches.length&&-1!==l.indexOf(a.which)){if(-1===N.activeIdx&&(9===a.which||13===a.which))return R(),void N.$digest();a.preventDefault(),40===a.which?(N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest()):38===a.which?(N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest()):13===a.which||9===a.which?N.$apply(function(){N.select(N.activeIdx)}):27===a.which&&(a.stopPropagation(),R(),N.$digest())}}),o.bind(\"blur\",function(){C&&N.matches.length&&-1!==N.activeIdx&&!x&&(x=!0,N.$apply(function(){N.select(N.activeIdx)})),w=!1,x=!1});var Z=function(a){o[0]!==a.target&&3!==a.which&&0!==N.matches.length&&(R(),g.$$phase||N.$digest())};e.bind(\"click\",Z),n.$on(\"$destroy\",function(){e.unbind(\"click\",Z),(F||G)&&$.remove(),F&&(angular.element(f).unbind(\"resize\",r),e.find(\"body\").unbind(\"scroll\",r)),Q.remove()});var $=a(Q)(N);F?e.find(\"body\").append($):G!==!1?angular.element(e[0].getElementById(G)).append($):o.after($)}}}]).directive(\"typeaheadPopup\",[\"$typeaheadSuppressWarning\",\"$log\",function(a,b){return{scope:{matches:\"=\",query:\"=\",active:\"=\",position:\"&\",moveInProgress:\"=\",select:\"&\"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||\"template/typeahead/typeahead-popup.html\"},link:function(c,d,e){a||b.warn(\"typeahead-popup is now deprecated. Use uib-typeahead-popup instead.\"),c.templateUrl=e.templateUrl,c.isOpen=function(){return c.matches.length>0},c.isActive=function(a){return c.active==a},c.selectActive=function(a){c.active=a},c.selectMatch=function(a){c.select({activeIdx:a})}}}}]).directive(\"typeaheadMatch\",[\"$templateRequest\",\"$compile\",\"$parse\",\"$typeaheadSuppressWarning\",\"$log\",function(a,b,c,d,e){return{restrict:\"EA\",scope:{index:\"=\",match:\"=\",query:\"=\"},link:function(f,g,h){d||e.warn(\"typeahead-match is now deprecated. Use uib-typeahead-match instead.\");var i=c(h.templateUrl)(f.$parent)||\"template/typeahead/typeahead-match.html\";a(i).then(function(a){b(a.trim())(f,function(a){g.replaceWith(a)})})}}}]).filter(\"typeaheadHighlight\",[\"$sce\",\"$injector\",\"$log\",\"$typeaheadSuppressWarning\",function(a,b,c,d){function e(a){return a.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")}function f(a){return/<.*>/g.test(a)}var g;return g=b.has(\"$sanitize\"),function(b,h){return d||c.warn(\"typeaheadHighlight is now deprecated. Use uibTypeaheadHighlight instead.\"),!g&&f(b)&&c.warn(\"Unsafe use of typeahead please use ngSanitize\"),b=h?(\"\"+b).replace(new RegExp(e(h),\"gi\"),\"$&\"):b,g||(b=a.trustAsHtml(b)),b}}]),angular.module(\"template/accordion/accordion-group.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/accordion/accordion-group.html\",'
      \\n
      \\n

      \\n {{heading}}\\n

      \\n
      \\n
      \\n\t
      \\n
      \\n
      \\n')}]),angular.module(\"template/accordion/accordion.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/accordion/accordion.html\",'
      ')}]),angular.module(\"template/alert/alert.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/alert/alert.html\",'
      \\n \\n
      \\n
      \\n')}]),angular.module(\"template/carousel/carousel.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/carousel/carousel.html\",'
      \\n
      \\n 1\">\\n \\n previous\\n \\n 1\">\\n \\n next\\n \\n
        1\">\\n
      1. \\n slide {{ $index + 1 }} of {{ slides.length }}, currently active\\n
      2. \\n
      \\n
      ')}]),angular.module(\"template/carousel/slide.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/carousel/slide.html\",'
      \\n')}]),angular.module(\"template/datepicker/datepicker.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/datepicker.html\",'
      \\n \\n \\n \\n
      ')}]),angular.module(\"template/datepicker/day.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/day.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
      {{::label.abbr}}
      {{ weekNumbers[$index] }}\\n \\n
      \\n')}]),angular.module(\"template/datepicker/month.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/month.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
      \\n \\n
      \\n')}]),angular.module(\"template/datepicker/popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/popup.html\",'
        \\n\t
      • \\n\t
      • \\n\t\t\\n\t\t\t\\n\t\t\t\\n\t\t\\n\t\t\\n\t
      • \\n
      \\n')}]),angular.module(\"template/datepicker/year.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/datepicker/year.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
      \\n \\n
      \\n')}]),angular.module(\"template/modal/backdrop.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/modal/backdrop.html\",'
      \\n')}]),angular.module(\"template/modal/window.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/modal/window.html\",'
      \\n
      \\n
      \\n')}]),angular.module(\"template/pagination/pager.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/pagination/pager.html\",'\\n')}]),angular.module(\"template/pagination/pagination.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/pagination/pagination.html\",'\\n')}]),angular.module(\"template/tooltip/tooltip-html-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tooltip/tooltip-html-popup.html\",'\\n
      \\n
      \\n\\n')}]),angular.module(\"template/tooltip/tooltip-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tooltip/tooltip-popup.html\",'\\n
      \\n
      \\n\\n')}]),angular.module(\"template/tooltip/tooltip-template-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tooltip/tooltip-template-popup.html\",'\\n
      \\n
      \\n\\n')}]),angular.module(\"template/popover/popover-html.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/popover/popover-html.html\",'
      \\n
      \\n\\n
      \\n

      \\n
      \\n
      \\n
      \\n')}]),angular.module(\"template/popover/popover-template.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/popover/popover-template.html\",'
      \\n
      \\n\\n
      \\n

      \\n
      \\n
      \\n
      \\n')}]),angular.module(\"template/popover/popover.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/popover/popover.html\",'
      \\n
      \\n\\n
      \\n

      \\n
      \\n
      \\n
      \\n')}]),angular.module(\"template/progressbar/bar.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/progressbar/bar.html\",'
      \\n')}]),angular.module(\"template/progressbar/progress.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/progressbar/progress.html\",'
      ')}]),angular.module(\"template/progressbar/progressbar.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/progressbar/progressbar.html\",'
      \\n
      \\n
      \\n')}]),angular.module(\"template/rating/rating.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/rating/rating.html\",'\\n ({{ $index < value ? \\'*\\' : \\' \\' }})\\n \\n\\n');\r\n}]),angular.module(\"template/tabs/tab.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tabs/tab.html\",'
    • \\n {{heading}}\\n
    • \\n')}]),angular.module(\"template/tabs/tabset.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/tabs/tabset.html\",'
      \\n
        \\n
        \\n
        \\n
        \\n
        \\n
        \\n')}]),angular.module(\"template/timepicker/timepicker.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/timepicker/timepicker.html\",'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
         
        \\n \\n :\\n \\n
         
        \\n')}]),angular.module(\"template/typeahead/typeahead-match.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/typeahead/typeahead-match.html\",'\\n')}]),angular.module(\"template/typeahead/typeahead-popup.html\",[]).run([\"$templateCache\",function(a){a.put(\"template/typeahead/typeahead-popup.html\",'
          \\n
        • \\n
          \\n
        • \\n
        \\n')}]),!angular.$$csp()&&angular.element(document).find(\"head\").prepend('');","/*\r\nMinimum API Version Requirements by Date\r\nv2.8 - 5 October 2018\r\nv2.9 - 18 April 2019\r\nv2.10 - 22 July 2019\r\nv2.11 - 5 November 2019\r\nv2.12 - 28 January 2020\r\nv3.0 - 5 May 2020\r\nv3.1 - 28 July 2020\r\n* v3.2 - 27 October 2020 \r\n* v7.0 * // Current Version Implemented\r\n*/\r\n\r\n(function () {\r\n /** facebook service wrapper - this service requires the facebook sdk first **/\r\n SUGApp.service('facebookService', ['$q','SUGUtilities','$window', function($q,util,w){\r\n\r\n var service = {\r\n fbConnected: false,\r\n fbLoading: false\r\n };\r\n var setFbConnected = function (connected) {\r\n service.fbConnected = connected ? true : false;\r\n };\r\n var setFbLoading = function (processing) {\r\n service.fbLoading = processing ? true : false;\r\n };\r\n setFbConnected(false);\r\n setFbLoading(true);\r\n\r\n // method initialize facebook\r\n service.initFB = function(fbAppId){\r\n FB.init({\r\n appId: fbAppId,\r\n status: true,\r\n cookie: true,\r\n xfbml: true,\r\n version: 'v7.0'\r\n });\r\n };\r\n\r\n // this needs to run as soon as we know we have the Facebook SDK available\r\n var setupFB = function () {\r\n setFbLoading(false);\r\n\r\n // listens for the init status update from the FB SDK\r\n FB.Event.subscribe('auth.statusChange', function (response) {\r\n if (response.status === 'connected') {\r\n // already logged into the app, just wait for that button clicky goodness\r\n setFbConnected(true);\r\n } else {\r\n setFbConnected(false);\r\n }\r\n });\r\n\r\n // get the fb application id from the application config and init\r\n util.APISyncCall(\"post\", \"\", '', \"c.getsmappid\", 15000).then(function (response) {\r\n var r = util.lowerCaseKeys(response);\r\n if (angular.isDefined(r.data) && angular.isDefined(r.data.data) && r.data.data !== '') {\r\n // manually initialize facebook after the service is loaded, listener is running, and facebook appId is present\r\n service.initFB(r.data.data);\r\n }\r\n });\r\n };\r\n \r\n // this is where the fun begins\r\n if (!window.FB) {\r\n // do not implement this in other places, we are limited to this one window scoped variable and need to protect it\r\n window.fbAsyncInit = function () {\r\n setupFB();\r\n };\r\n \r\n // Load the Facebook SDK asynchronously since it hasn't already been loaded\r\n (function (d, s, id) {\r\n var js, fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) return;\r\n js = d.createElement(s);\r\n js.id = id;\r\n js.src = \"https://connect.facebook.net/en_US/sdk.js\";\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }(document, 'script', 'facebook-jssdk'));\r\n \r\n } else {\r\n // the Facebook SDK has already been loaded, so proceed\r\n setupFB();\r\n }\r\n\r\n // get user information\r\n service.getFBUserInfo = function( authResponse ){\r\n var response = util.lowerCaseKeys( authResponse );\r\n var data = {\r\n atId : response.accesstoken,\r\n uidId : response.userid,\r\n sigId : response.signedrequest\r\n };\r\n return util.APISyncCall( \"post\", \"\", data, \"c.getSocialMediaUser\", 15000 );\r\n };\r\n\r\n var fbResultHandler = function (result,deferred) {\r\n var r = util.lowerCaseKeys(result);\r\n if (r.status && r.status == 'connected' && r.authresponse && r.authresponse.accesstoken && r.authresponse.accesstoken.length) {\r\n setFbConnected(true);\r\n deferred.resolve(r);\r\n } else {\r\n setFbLoading(false);\r\n setFbConnected(false);\r\n deferred.reject('Error occured');\r\n }\r\n return deferred;\r\n };\r\n\r\n // facebook login\r\n service.fbLogin = function(){\r\n var deferred = $q.defer();\r\n \r\n if (!window.FB) {\r\n // still loading, can't do anything :/\r\n deferred.reject('Facebook SDK is still loading');\r\n\r\n } else {\r\n // Facebook SDK present, good to go\r\n setFbLoading(true);\r\n \r\n if (service.fbConnected) {\r\n // should still be 'connected' if this runs, but check just in case\r\n FB.getLoginStatus(function (result) {\r\n deferred = fbResultHandler(result,deferred);\r\n }, true);\r\n \r\n } else {\r\n // not connected yet, do a fresh login\r\n FB.login(function (result) {\r\n deferred = fbResultHandler(result,deferred);\r\n }, {\r\n scope: 'public_profile,email'\r\n });\r\n }\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n // return service object\r\n return service;\r\n\r\n }]);\r\n\r\n})();\r\n","(function () {\r\n\r\n /** sign up form service **/\r\n SUGApp.service('authenticationService', ['SUGUtilities', function(util){\r\n\r\n var service = {};\r\n\r\n service.logoutUser = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.logoutUser\", 15000 );\r\n };\r\n\r\n service.forgotPassword = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.forgotPassword\", 15000 );\r\n };\r\n\r\n service.loginUser = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.loginUser\", 20000 );\r\n };\r\n\r\n service.createMember = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.createMember\", 15000 );\r\n };\r\n\r\n service.verifyDisabledAccount = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.verifyDisabledAccount\", 15000 );\r\n };\r\n\r\n service.getsmappid = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.getsmappid\", 15000 );\r\n };\r\n\r\n service.getMainNavigation = function(data){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.getMainNavigation\", 15000 );\r\n };\r\n\r\n service.passwordRulesText = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.passwordRulesText\", 15000 );\r\n };\r\n\r\n service.validatePasswordRules = function(data){\r\n return util.APISyncCall( \"post\", \"\", data, \"c.validatePasswordRules\", 15000 );\r\n };\r\n\r\n\t\tservice.getLoginRateLimit = function(data){\r\n\t\t\treturn util.APISyncCall( \"post\", \"\", data, \"c.getLoginRateLimit\", 15000 );\r\n\t\t};\r\n\r\n\t\tservice.changePassword = function(data){\r\n\t\t\treturn util.APISyncCall( \"post\", \"\", data, \"c.changePassword\", 15000 );\r\n\t\t};\r\n\r\n service.resultErrorHandler = function( response ){\r\n \t\tvar Message = \"\";\r\n \t\tvar result = util.lowerCaseKeys(response);\r\n \t\tif( angular.isDefined(result.message) ){\r\n \t\t\tif( angular.isArray(result.message) ){\r\n angular.forEach( result.message, function(obj,key){\r\n Message += obj + \" \";\r\n });\r\n \t\t\t} else {\r\n \t\t\t\tMessage = result.message;\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tif( util.isDefinedNotNullNotEmpty(result.statustext) ){\r\n \t\t\t\tMessage = result.statustext;\r\n \t\t\t} else if( typeof result.status !== undefined && result.status === 0 ){\r\n \t\t\t\tMessage = 'Request timeout exceeded. Make sure you are logged in and have an active session.';\r\n \t\t\t}\r\n \t\t\telse {\r\n \t\t\t\tMessage = 'An unknown error occurred while processing your request';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn Message;\r\n \t};\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();\r\n","/** controller for login.html **/\r\n(function () {\r\n\r\n SUGApp.controller('authenticationController',\r\n ['$scope','$uibModalInstance','authenticationService','SUGUtilities','facebookService','$location','loginRequired','loginMessage','register','registerDisabled','$sce','$timeout','commonRegExService', '$window',\r\n function( l, m, svc, util, fbSvc, $location, loginRequired, loginMessage, register, registerDisabled, sce, $timeout, commonRegExService, $window ){\r\n\r\n l.processing = false;\r\n l.complete = false;\r\n l.message = '';\r\n l.register = false;\r\n l.registerDisabled = ( angular.isDefined(registerDisabled) && registerDisabled ) ? true : false;\r\n l.frm = {};\r\n l.frm.loginemail = '';\r\n l.frm.newemail = '';\r\n l.frm.pword = '';\r\n l.frm.remember = false;\r\n l.frm.firstname = '';\r\n l.frm.lastname = '';\r\n l.frm.companyname = '';\r\n l.frm.show = 'login';\r\n l.frm.verifytype = 'existing';\r\n l.errorMessages = {};\r\n l.hasErrors = false;\r\n l.btnLabel = 'Login';\r\n l.mainLabel = \"SignUpGenius Login\";\r\n l.blacklistedAddress = '';\r\n l.fbAuth = false;\r\n l.fbBtnLabel = 'Login with Facebook';\r\n l.sugAccountRequired = loginRequired;\r\n l.loginMessage = loginMessage;\r\n l.captcha = '';\r\n l.captchaValid = false;\r\n l.showrecaptcha = false;\r\n l.failedlogins = 0;\r\n\t\tl.passwordmustbechanged = false;\r\n\t\tl.passwordRules = [];\r\n l.hideForgotPassword = false;\r\n\r\n\t\tutil.getReCaptcha({})\r\n\t\t\t.then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t// captcha fail\r\n\t\t\t\t} else {\r\n\t\t\t\t\tl.captcha = sce.trustAsHtml( r.data.data.snippet );\r\n\t\t\t\t\tl.recaptchafeature = r.data.data.feature;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tsvc.getLoginRateLimit({})\r\n\t\t\t.then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t// fail\r\n\t\t\t\t} else {\r\n\t\t\t\t\tl.ratelimit = r.data.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tsvc.passwordRulesText({})\r\n\t\t\t.then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t// fail\r\n\t\t\t\t} else {\r\n\t\t\t\t\tl.passwordRules = r.data.message;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n /** method for switching between forms **/\r\n l.showForm = function( thisForm ){\r\n l.frm.show = thisForm;\r\n l.errorMessages = {};\r\n l.hasErrors = false;\r\n l.complete = false;\r\n // Clear out form fields when changing forms\r\n l.frm.loginemail = '';\r\n l.frm.newemail = '';\r\n l.frm.pword = '';\r\n l.frm.firstname = '';\r\n l.frm.lastname = '';\r\n if( thisForm == 'login' ){\r\n l.mainLabel = \"SignUpGenius Login\";\r\n l.btnLabel = 'Login';\r\n } else if(thisForm == 'register' ){\r\n l.mainLabel = \"Account Registration\";\r\n l.btnLabel = 'Register Now';\r\n }\r\n else if(thisForm == 'blacklisted' ){\r\n l.mainLabel = 'Account Login Disabled';\r\n l.btnLabel = 'Send Link';\r\n }\r\n else {\r\n l.mainLabel = \"Forgot Your Password?\";\r\n l.btnLabel = 'Submit';\r\n }\r\n };\r\n\r\n /** processing forgot password **/\r\n l.forgotPassword = function(){\r\n validateForm();\r\n if( l.hasErrors )\r\n return;\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.loginemail;\r\n svc.forgotPassword( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n errorHandler( r.data );\r\n }\r\n else {\r\n l.complete = true;\r\n l.message = sce.trustAsHtml(r.data.message);\r\n l.hideForgotPassword = true;\r\n }\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n });\r\n\r\n };\r\n\r\n\r\n /** login user **/\r\n l.loginUser = function(){\r\n validateForm();\r\n if( l.hasErrors ) {\r\n return;\r\n }\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.loginemail;\r\n data.password = l.frm.pword;\r\n\t\t\tif( l.frm.remember ) {\r\n\t\t\t\tdata.remember = l.frm.remember;\r\n\t\t\t}\r\n svc.loginUser( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n var d = 'data' in r.data ? r.data.data : {};\r\n if( angular.isDefined(d.isblacklisted) && d.isblacklisted ){\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n l.blacklistedAddress = l.frm.loginemail;\r\n l.frm.pword = '';\r\n l.showForm( 'blacklisted' );\r\n } else {\r\n // Handle failed logins\r\n\t\t\t\t\t\t\tl.failedlogins = r.data.data.failed;\r\n l.ipfailedlogins = r.data.data.recaptcha.count;\r\n\t\t\t\t\t\t\tl.showrecaptcha = l.recaptchafeature.enabled && (l.failedlogins >= l.recaptchafeature.displayafter_attempts || l.ipfailedlogins >= r.data.data.recaptcha.limit) ? true : false;\r\n errorHandler( r.data );\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n }\r\n }\r\n else {\r\n var resp = {};\r\n resp.data = r.data.data;\r\n\r\n resp.status = 'loggedin';\r\n l.failedlogins = 0;\r\n l.showrecaptcha = false;\r\n l.passwordmustbechanged = resp.data.passwordmustbechanged;\r\n l.memberID = r.data.data.memberID;\r\n\r\n // Reset the captchaValid so the user has to check the captcha on the change password view\r\n l.captchaValid = false;\r\n // utility.setCookie('SLID',resp.data.slid); - no longer needed\r\n\r\n\t\t\t\t\t\t// Redirect user to reset password in modal if password has expired\r\n if (l.passwordmustbechanged) {\r\n\t\t\t\t\t l.frm.pword = '';\r\n \tl.frm.show = 'changepassword';\r\n \tl.processing = false;\r\n \tl.mainLabel = 'Password Expired';\r\n \tl.saveresp = resp;\r\n } else {\r\n \t\tm.close( resp );\r\n }\r\n\r\n // if we are a subadmin logging back in to the wizard...\r\n if(r.data.data.showintermediatelogin && $window.location.href.indexOf('=w.manageSignUp#') > -1){\r\n // for now, just redirect, eventually we need to build out an account selection UI for the modal instead\r\n $window.location.href = '/myaccount/resetadminid/1';\r\n }\r\n }\r\n });\r\n };\r\n\r\n /** method to register a user **/\r\n l.registerUser = function(){\r\n validateForm();\r\n\r\n if( l.hasErrors )\r\n return;\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.loginemail;\r\n data.password = l.frm.pword;\r\n data.firstname = l.frm.firstname;\r\n data.lastname = l.frm.lastname;\r\n data.companyname = l.frm.companyname;\r\n // Changed to true so all new accounts bypass verification restriction (new as of 2022)\r\n data.loginuser = true;\r\n svc.createMember( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n // return to the login form\r\n oldBtn = 'Login';\r\n l.showForm('login');\r\n createMemberMessageHandler(r.data);\r\n }\r\n else {\r\n if( angular.isDefined(r.data.message) && r.data.message.toString() !== '' ){\r\n // successful - but typically happens when email verification if needed\r\n var messageTitleOverride = null;\r\n\r\n if (r.data.success) {\r\n messageTitleOverride = 'Account verification required';\r\n }\r\n\r\n createMemberMessageHandler(r.data, messageTitleOverride);\r\n\r\n l.frm.pword = '';\r\n l.frm.firstname = '';\r\n l.frm.lastname = '';\r\n l.showForm('login');\r\n oldBtn = 'Login';\r\n } else {\r\n // all good, log the user into the system\r\n if( angular.isDefined(r.data.data.memberid) && parseInt( r.data.data.memberid ) > 0 ){\r\n var resp = {};\r\n resp.data = r.data.data;\r\n resp.status = 'loggedin';\r\n // Call code to start LiveRamp ATS\r\n $window.startAts(r.data.data.email);\r\n m.close( resp );\r\n }\r\n else {\r\n util.showMagnificAlert('An unknown error occurred. If this error persists, please contact support.');\r\n }\r\n }\r\n }\r\n l.btnLabel = oldBtn;\r\n l.processing = false;\r\n });\r\n };\r\n\r\n /** method to verify blacklisted address **/\r\n l.verifyAddress = function(){\r\n if( l.frm.verifytype === 'new' ){\r\n validateForm();\r\n if( l.hasErrors )\r\n return;\r\n }\r\n\r\n l.message = '';\r\n var oldBtn = l.btnLabel;\r\n l.processing = true;\r\n l.btnLabel = 'Processing...';\r\n var data = {};\r\n data.email = l.frm.newemail;\r\n data.previousEmail = l.frm.loginemail;\r\n svc.verifyDisabledAccount( data )\r\n .then(function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n errorHandler( r.data );\r\n }\r\n else {\r\n l.complete = true;\r\n l.message = r.data.message;\r\n }\r\n l.processing = false;\r\n l.btnLabel = oldBtn;\r\n });\r\n\r\n };\r\n\r\n var originalFbButtonLabel = angular.copy(l.fbBtnLabel);\r\n var setProcessing = function(processing){\r\n if(processing){\r\n l.processing = true;\r\n l.fbBtnLabel = 'Processing...';\r\n l.fbLoading = true;\r\n } else {\r\n l.processing = false;\r\n l.fbBtnLabel = originalFbButtonLabel;\r\n l.fbLoading = false;\r\n }\r\n };\r\n\r\n /** facebook login implementation **/\r\n l.loginFBUser = function(){\r\n var fbAuthInfo = {};\r\n var fbUserInfo = {};\r\n l.fbAuth = true;\r\n l.message = '';\r\n setProcessing(true);\r\n fbSvc.fbLogin()\r\n .then( function(response){\r\n var r = util.lowerCaseKeys( response );\r\n if( r.status === 'connected' && angular.isDefined(r.authresponse) && angular.isDefined(r.authresponse.accesstoken) ){\r\n fbAuthInfo = r.authresponse;\r\n return fbSvc.getFBUserInfo( fbAuthInfo );\r\n } else {\r\n // did not authenticate\r\n setProcessing(false);\r\n }\r\n },function(err){\r\n // rejected\r\n setProcessing(false);\r\n })\r\n .then( function(userinfo){\r\n if( angular.isDefined(userinfo) ){\r\n var result = util.lowerCaseKeys( userinfo ).data;\r\n var failed = false;\r\n if( !result.success ){\r\n util.showMagnificAlert(result.message.toString());\r\n failed = true;\r\n setProcessing(false);\r\n } else {\r\n fbUserInfo = result.data;\r\n if( !angular.isDefined(fbUserInfo.email) || !fbUserInfo.email.toString().length ){\r\n util.showMagnificAlert('Invalid or missing email address. Your email address is required to log into your SignUpGenius account using Facebook.');\r\n failed = true;\r\n setProcessing(false);\r\n } else {\r\n var data = {};\r\n data.type = 'fb';\r\n data.email = fbUserInfo.email;\r\n data.firstname = fbUserInfo.first_name || '';\r\n data.lastname = fbUserInfo.last_name || '';\r\n data.userid = fbUserInfo.id;\r\n data.authToken = fbAuthInfo.accesstoken;\r\n \t\t\t\t\t\t\t\tif( l.frm.remember )\r\n \t\t\t\t\t\t\t\t\tdata.remember = l.frm.remember;\r\n return svc.loginUser( data );\r\n }\r\n }\r\n if( failed ){\r\n l.fbAuth = false;\r\n }\r\n }\r\n })\r\n .then( function( user ){\r\n if( angular.isDefined(user) ){\r\n var r = util.lowerCaseKeys( user );\r\n if( !resultCheck( r.data ) ){\r\n setProcessing(false);\r\n var d = 'data' in r.data ? r.data.data : {};\r\n if( angular.isDefined(d.isblacklisted) && d.isblacklisted ){\r\n l.blacklistedAddress = fbUserInfo.email;\r\n l.frm.loginemail = fbUserInfo.email;\r\n l.frm.pword = '';\r\n l.showForm( 'blacklisted' );\r\n } else {\r\n errorHandler( r.data );\r\n }\r\n } else {\r\n // all good, log the user into the system\r\n if( angular.isDefined(r.data.data.memberid) && parseInt( r.data.data.memberid ) > 0 ){\r\n var resp = {};\r\n resp.data = r.data.data;\r\n resp.status = 'loggedin';\r\n m.close( resp );\r\n }\r\n else {\r\n util.showMagnificAlert('An unknown error occurred. If this error persists, please contact support.');\r\n setProcessing(false);\r\n }\r\n }\r\n l.fbAuth = false;\r\n setProcessing(false);\r\n }\r\n });\r\n };\r\n\r\n l.frmDisabled = function(){\r\n return l.fbAuth;\r\n };\r\n\r\n l.errorExists = function( elem ){\r\n return (elem in l.errorMessages );\r\n };\r\n\r\n l.getError = function( elem ){\r\n return (elem in l.errorMessages ) ? l.errorMessages[elem] : '';\r\n };\r\n\r\n l.close = function(){\r\n m.dismiss();\r\n };\r\n\r\n var validateForm = function( ){\r\n l.passwordErrors = {};\r\n l.errorMessages = {};\r\n l.hasErrors = false;\r\n var errorMessages = {\r\n \"loginemail\" : \"You must enter a valid email address.\",\r\n \"pword\" : \"You must enter a password.\",\r\n \"pword2\" : \"You must confirm the password.\",\r\n \"firstname\" : \"You must enter a first name.\",\r\n \"lastname\" : \"You must enter a last name.\",\r\n \"newemail\" : \"You must enter a valid email address.\",\r\n \"passwordInvalid\" : \"The password you entered does not meet our password criteria.\",\r\n \"passwordMatch\" : \"The passwords do not match.\",\r\n \"companyname\" : \"You must enter a company name.\"\r\n };\r\n\r\n var fields = ['loginemail','pword'];\r\n var pword = '';\r\n var pwordLenError = [];\r\n var pwordminlen = 0;\r\n\r\n var key = '';\r\n if ( l.frm.show === 'register' ) {\r\n fields = ['firstname','lastname','loginemail','pword'];\r\n if( l.requirecompany ){ fields.push('companyname'); } //if company name is required check for it too\r\n pword = fields[3]; //ensures we use the same key\r\n valdiatePasswordStrength();\r\n } else if( l.frm.show === 'forgotpassword' ) {\r\n fields = ['loginemail'];\r\n if (!commonRegExService.emailRegEx().test(l.frm.loginemail)) {\r\n l.errorMessages.loginemail = errorMessages.loginemail;\r\n }\r\n } else if( l.frm.show === 'blacklisted' && l.frm.verifytype == 'new' ) {\r\n fields = ['newemail'];\r\n } else if ( l.frm.show === 'changepassword') {\r\n \tfields = ['pword','pword2'];\r\n \tvaldiatePasswordStrength();\r\n \tif ( l.frm.pword && l.frm.pword2 && l.frm.pword !== l.frm.pword2 ) {\r\n \t\tl.errorMessages.passwordMatch = errorMessages.passwordMatch;\r\n \t\tl.hasErrors = true;\r\n \t}\r\n };\r\n\r\n\r\n angular.forEach( fields, function(obj,key){\r\n if( !angular.isDefined( l.frm[obj] ) || typeof l.frm[obj] === undefined || !l.frm[obj].toString().length ){\r\n l.errorMessages[obj] = errorMessages[obj];\r\n l.hasErrors = true;\r\n }\r\n });\r\n\r\n\r\n if( ( (l.frm.show === 'forgotpassword' || l.frm.show === 'register') && !l.captchaValid) || (l.frm.show === 'login' && l.showrecaptcha && !l.captchaValid) ){\r\n util.showMagnificAlert('Invalid captcha response.');\r\n l.hasErrors = true;\r\n }\r\n\r\n };\r\n\r\n var validateRecaptcha = function (){\r\n if (!l.captchaValid) {\r\n util.showMagnificAlert('Invalid captcha response.');\r\n l.hasErrors = true;\r\n }\r\n }\r\n\r\n var resultCheck = function( response ){\r\n\t\t\tvar result = util.lowerCaseKeys( response );\r\n try {\r\n\t\t\t return (angular.isDefined(result.success) && result.success && angular.isDefined(result.data));\r\n } catch( e ){\r\n return false;\r\n }\r\n\t\t};\r\n\r\n var errorHandler = function( response ){\r\n\t\t\tvar errMessage = svc.resultErrorHandler( response );\r\n\t\t\tutil.showMagnificAlert(errMessage);\r\n\t\t};\r\n\r\n var createMemberMessageHandler = function (response, messageTitleOverride) {\r\n var overriddenTitle = messageTitleOverride || null;\r\n var heading = overriddenTitle;\r\n\t\t\tvar errMessage = svc.resultErrorHandler( response );\r\n var alertType = response.success ? 'success' : 'error';\r\n if (!heading) {\r\n if (response && response.data && response.data.messagetitle) {\r\n heading = response.data.messagetitle;\r\n } else {\r\n heading = response.success ? 'Success' : 'Error';\r\n }\r\n }\r\n\r\n\t\t\tutil.showMagnificAlert(errMessage, alertType, '', heading); \r\n };\r\n\r\n // check if we're loading the registration page first\r\n if( angular.isDefined(register) && register )\r\n l.showForm('register');\r\n\r\n // captcha callback\r\n recaptchaCallback = function( resp ){\r\n util.validateCaptcha( resp )\r\n .then( function(response){\r\n var r = util.lowerCaseKeys( response );\r\n if( !resultCheck( r.data ) ){\r\n l.captchaValid = false;\r\n }\r\n else {\r\n l.captchaValid = r.data.data;\r\n }\r\n\r\n });\r\n };\r\n\r\n // Hack to fix weird iOS input cursor positioning bug\r\n l.iosPositioningFix = function(e){\r\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n if(iOS){\r\n window.scrollTo(0,0);\r\n angular.element(e.target).focus();\r\n }\r\n };\r\n\r\n\r\n\t\tvar valdiatePasswordStrength = function() {\r\n\t\t\tvar payload = { \"password\": l.frm.pword };\r\n\t\t\tsvc.validatePasswordRules(payload)\r\n\t\t\t\t.then( function(response){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tvar passwordValidation = r.data;\r\n\r\n \t\t\t\t\tif (!passwordValidation.success) {\r\n l.passwordErrorIsString = typeof(passwordValidation.message) == 'string' ? true : false;\r\n\t\t\t\t\t\tl.passwordErrors = passwordValidation.message;\r\n\t\t\t\t\t\tl.errorMessages.passwordInvalid = \"The password you entered does not meet our password criteria.\";\r\n\t\t\t\t\t\tl.hasErrors = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\t/** method to change user password **/\r\n\t\tl.changepassword = function() {\r\n validateForm();\r\n validateRecaptcha();\r\n\r\n\t\t\t$timeout(function() {\r\n\t\t\t\tif (!l.hasErrors) {\r\n\t\t\t\t\tvar payload = { \"ID\": l.saveresp.data.memberid, \"pword\": l.frm.pword };\r\n\t\t\t\t\tsvc.changePassword(payload)\r\n\t\t\t\t\t\t.then( function(response){\r\n\t\t\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\t\t\tvar changePassword = r.data;\r\n\t\t\t\t\t\t\tif (!changePassword.success) {\r\n\t\t\t\t\t\t\t\tl.hasErrors = true;\r\n\t\t\t\t\t\t\t\tl.errorMessages = changePassword.message;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tm.close( l.saveresp );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, 2000);\r\n }\r\n\r\n /** Parse URL vars to determine if Company Name is part of Registration */\r\n var params = utility.getAllUrlParams();\r\n l.showcompany = typeof params.showcompany !== 'undefined' ? !!+params.showcompany : !!+0;\r\n l.requirecompany = typeof params.requirecompany !== 'undefined' && l.showcompany ? !!+params.requirecompany : !!+0;\r\n l.isoptional = l.requirecompany ? '' : ' (optional)';\r\n\r\n }]);\r\n\r\n})();\r\n","(function(){\r\n\r\n\tSUGApp.service('commonRegExService', ['SUGUtilities', function (SUGUtilities) {\r\n\r\n\t\tvar factory = {};\r\n\r\n\t\tfactory.addressRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9].*$\", \"i\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.bankAccountNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{3,17}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.bankRoutingNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{9}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caGSTHSTNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{9}\\s?[A-Z]{2}\\s?[0-9]{4}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caGSTHSTNumberLowerCaseRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{9}\\s?[a-z]{2}\\s?[0-9]{4}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caBankAccountNumberRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{5,12}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caBankTransitRegEx = function() {\r\n\t\t\tvar pattern = /^[0-9]{5}$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caInstitutionNumberRegEx = function() {\r\n\t\t\tvar pattern = /^[0-9]{3}$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caPostalCodeRegEx = function() {\r\n\t\t\tvar pattern = /^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1}\\s*\\d{1}[A-Z]{1}\\d{1}$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.caSinRegEx = function() {\r\n\t\t\tvar pattern = /^(\\d{3})[\\-\\s]?(\\d{3})[\\-\\s]?(\\d{3})$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\tfactory.cityRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[a-zA-Z\\- ]+$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.einRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"[0-9]{9}\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.emailRegEx = function() {\r\n\t\t\tvar pattern = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.noSpecialCharsForFileRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[a-zA-Z0-9\\- \\_]+$\");\t//= /^[a-zA-Z0-9\\ \\_\\-]*$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\tfactory.phoneRegEx = function() {\r\n\t\t\tvar pattern = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.poboxRegEx = function() {\r\n\t\t\tvar pattern = /^ *((#\\d+)|((box|bin)[-. \\/\\\\]?\\d+)|(.*p[ \\.]? ?(o|0)[-. \\/\\\\]? *-?((box|bin)|b|(#|num)?\\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\\d+)|(p *-?\\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\\d+|(num|number|#) *\\d+)/i;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.ssnFullRegEx = function() {\r\n\t\t\tvar pattern = new RegExp(\"^(?!\\b(\\d)\\1+\\b)(?!123456789|219099999|078051120)(?!666|000|9\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.ssnLast4RegEx = function() {\r\n\t\t\tvar pattern = new RegExp(\"[0-9]{4}\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.uriRegEx = function() {\r\n\t\t\tvar pattern = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\t\tfactory.zipcodeRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^[0-9]{5}(?:-[0-9]{4})?$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Validates a Canadian Postal Code using the following rules:\r\n\t\t * A Canadian postal code is a six-character string in the format A1A 1A1, where A is a letter and 1 is a digit\r\n\t\t * A space separates the third and fourth characters\r\n\t\t * Postal codes do not include the letters D, F, I, O, Q or U\r\n\t\t * The first position also does not make use of the letters W or Z\r\n\t\t * src: https://howtodoinjava.com/regex/java-regex-validate-canadian-postal-zip-codes/\r\n\t\t */\r\n\t\tfactory.canadianPostalCodeRegEx = function() {\r\n\t\t\tvar pattern = new RegExp (\"^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$\");\r\n\t\t\treturn pattern;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Validates a US Zip Code OR a Canadian Postal Code using the individual validation functions\r\n\t\t */\r\n\t\tfactory.validateZipOrPostalCode = function( code ) {\r\n\t\t\tif( typeof code == 'undefined' ){ code=0; }\r\n\t\t\tvar returnVar = false;\r\n\r\n\t\t\tif (/^\\d/.test(code)){\r\n\t\t\t\treturnVar = factory.zipcodeRegEx().test(code);\r\n\t\t\t} else {\r\n\t\t\t\treturnVar = factory.canadianPostalCodeRegEx().test(code);\r\n\t\t\t}\r\n\r\n\t\t\treturn returnVar;\r\n\t\t};\r\n\r\n\t\treturn factory;\r\n\t}]);\r\n\r\n}()); //self invoked function to keep variables/modules out of the global scope\r\n","/* Member Info Service\r\n *\r\n * This service is used to retrieve member information and should be the only gateway to member info from the AngularJS app\r\n * NOTE: The memberinfo cached data prefers the \"extended\" version and will cache/return that with priority over the \"basic\" version\r\n */\r\nSUGApp.service('memberInfoService', ['sugCacheFactory', 'SUGUtilities', '$q', function (sugCacheFactory, util, $q) {\r\n var memberInfoService = this;\r\n\r\n /**\r\n * Verifys the memberinfo is valid\r\n * \r\n * @param {Object} memberinfo - member info object to verify\r\n */\r\n var isValidMemberInfo = function (memberinfo) {\r\n return (!util.isUndefinedOrEmptyObject(memberinfo) && util.isIntegerGT0(memberinfo.memberid));\r\n };\r\n\r\n /**\r\n * Get Member Info - BASIC\r\n * \r\n * @param {Boolean} forceRefresh - whether to forceably refresh the cache with data from the server\r\n */\r\n memberInfoService.getMemberInfo = function (extended,forceRefresh,listid,urlid) {\r\n // For some reason when calling this method from the tab group flow, the urlid is not being set from the parameter passed in. This is a fix for that by retrieving the value from the arguments scope of the array when this occurs and setting it.\r\n if (typeof urlid === 'undefined' && typeof arguments[0].urlid !== 'undefined') {\r\n urlid = arguments[0].urlid;\r\n }\r\n // get member info - cache result - return cache else go to the server\r\n var memberinfo = sugCacheFactory.get('memberinfoservice_memberinfo', {});\r\n if (!forceRefresh && isValidMemberInfo(memberinfo) && (!extended || (extended && util.keyExists(memberinfo, 'datetzsettings')))) {\r\n // deferring so this can be thenable\r\n var deferred = $q.defer();\r\n deferred.resolve(memberinfo);\r\n return deferred.promise;\r\n } else if(extended) {\r\n return util.APISyncCall('post', '', {\r\n 'extendedinfo': true,\r\n 'listid': typeof listid !== 'undefined' ? listid : 0,\r\n 'urlid': typeof urlid !== 'undefined' ? urlid : ''\r\n }, 'm.getMemberInfo').then(function (response) {\r\n response = util.lowerCaseKeys(response.data);\r\n if (util.ajaxResultInvalid(response)) {\r\n // invalid response, reject with error message\r\n deferred.reject(util.resultErrorHandler(response.data));\r\n } else {\r\n // cache the data\r\n sugCacheFactory.set('memberinfoservice_memberinfo', response.data);\r\n return response.data;\r\n }\r\n });\r\n } else {\r\n return util.APISyncCall('get', '', '', 'm.getMemberInfo').then(function (response) {\r\n response = util.lowerCaseKeys(response.data);\r\n if (util.ajaxResultInvalid(response)) {\r\n // invalid response, reject with error message\r\n deferred.reject(util.resultErrorHandler(response.data));\r\n } else {\r\n // cache the data\r\n sugCacheFactory.set('memberinfoservice_memberinfo', response.data);\r\n return response.data;\r\n }\r\n });\r\n }\r\n };\r\n\r\n}]);","(function () {\r\n\r\n /** sign up form service **/\r\n SUGApp.service('loginservice', ['SUGUtilities', function(util){\r\n\r\n var service = {};\r\n\r\n service.getUserInfo = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"m.getMemberInfo\", 15000 );\r\n };\r\n\r\n service.getMainNavigation = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.getMainNavigation\", 15000 );\r\n };\r\n\r\n service.resultErrorHandler = function( response ){\r\n \t\tvar Message = \"\";\r\n \t\tvar result = util.lowerCaseKeys(response);\r\n \t\tif( angular.isDefined(result.message) ){\r\n \t\t\tif( angular.isArray(result.message) ){\r\n angular.forEach( result.message, function(obj,key){\r\n Message += obj + \" \";\r\n });\r\n \t\t\t} else {\r\n \t\t\t\tMessage = result.message;\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tif( util.isDefinedNotNullNotEmpty(result.statustext) ){\r\n \t\t\t\tMessage = result.statustext;\r\n \t\t\t} else if( typeof result.status !== undefined && result.status === 0 ){\r\n \t\t\t\tMessage = 'Request timeout exceeded. Make sure you are logged in and have an active session.';\r\n \t\t\t}\r\n \t\t\telse {\r\n \t\t\t\tMessage = 'An unknown error occurred while processing your request';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn Message;\r\n \t};\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();\r\n","(function () {\r\n\r\n // inject ui.bootstrap\r\n angular.module(\"SUGApp\").requires.push('ui.bootstrap');\r\n\r\n SUGApp.factory('loginfactory', ['SUGUtilities', '$sce', 'loginservice', '$uibModal', '$window', 'authenticationService', '$filter', '$location', '$timeout', '$q', function (util, sce, svc, modal, win, authSvc, filter, location, timeout, $q) {\r\n\r\n var service = {};\r\n service.getLogin = function (disableRegistration, showregistrationfirst) {\r\n var s = {};\r\n s.allowRegistration = disableRegistration ? false : true;\r\n s.showregistrationfirst = showregistrationfirst ? showregistrationfirst : false; //controls if it should default to registration screen instead\r\n s.h = new Date().getTime();\r\n s.user = {};\r\n s.user.loggedin = false;\r\n s.attrs = {};\r\n s.asyncSuccess = true;\r\n s.success = true;\r\n s.errorMessages = {};\r\n s.fbAppId = '';\r\n s.objForm = {};\r\n s.objForm.listid = 0;\r\n s.objForm.owner = 0;\r\n s.objForm.urlid = utility.getUrlParamValue('urlid'); // utility is available globally\r\n s.objForm.siid = '';\r\n s.objForm.imid = 0;\r\n s.objForm.usealternatename = false;\r\n s.objForm.changemembermame = false;\r\n s.objForm.displayfirstname = '';\r\n s.objForm.displaylastname = '';\r\n s.objForm.firstname = '';\r\n s.objForm.lastname = '';\r\n s.objForm.email = '';\r\n s.objForm.savecontactinfo = false;\r\n\r\n s.labels = {\r\n \"cancelBtn\": \"Cancel\",\r\n \"deleteBtn\": \"Delete\",\r\n \"breadcrumbBtn\": \"Back to \",\r\n \"contactinfo\": \"Contact info:\",\r\n \"additionalinfo\": \"Additional info:\"\r\n };\r\n\r\n s.standardErrors = {\r\n \"email_invalid\": \"You must enter a valid email address.\",\r\n \"email_length\": \"Email address must not exceed 100 characters.\",\r\n \"firstname_length\": \"First name must not exceed 50 charcters.\",\r\n \"lastname_length\": \"Last name must not exceed 100 characters.\",\r\n \"quantity_invalid\": \"The quantity must be all numeric.\",\r\n \"savecontactinfo\": \"You must populate the address and/or phone information when selecting this option.\"\r\n };\r\n\r\n s.errormessage = \"Oops! Something went wrong. We can't seem to find the sign up information you've requested. If this error persists, please contact support.\";\r\n\r\n /** helper method for updating top navigation menu **/\r\n var updateMenu = function () {\r\n svc.getMainNavigation()\r\n .then(function (response) {\r\n var r = util.lowerCaseKeys(response);\r\n if (!resultCheck(r.data)) {\r\n errorHandler(r.data);\r\n } else {\r\n var menu = angular.element(document.querySelector('#main-nav'));\r\n menu.empty(); // remove existing menu\r\n menu.append(r.data.data); // append the new menu\r\n }\r\n });\r\n };\r\n\r\n var elemLenCheck = function (elem) {\r\n return isD(s.objForm[elem]) ? s.objForm[elem].toString().trim().length : 0;\r\n };\r\n\r\n var resultCheck = function (response) {\r\n var result = util.lowerCaseKeys(response);\r\n try {\r\n return (angular.isDefined(result.success) && result.success && angular.isDefined(result.data));\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n var errorHandler = function (response) {\r\n var errMessage = svc.resultErrorHandler(response);\r\n util.showMagnificAlert(errMessage);\r\n };\r\n\r\n /** helper method for converting values to float **/\r\n var toFloat = function (val) {\r\n return typeof val !== \"undefined\" && val !== \"\" ? parseFloat(parseFloat(val.toString().replace(',', '')).toFixed(2)) : 0.00;\r\n };\r\n\r\n /** helper method for lower casing strings **/\r\n var lowerCaseIt = function (str) {\r\n return str.toString().toLowerCase().trim();\r\n };\r\n\r\n /** helper method for checking if a variable or key is defined **/\r\n var isD = function (key) {\r\n return angular.isDefined(key);\r\n };\r\n\r\n /** logout method **/\r\n s.logout = function () {\r\n s.asyncSuccess = true;\r\n authSvc.logoutUser()\r\n .then(function (response) {\r\n var r = util.lowerCaseKeys(response);\r\n if (!resultCheck(r.data)) {\r\n s.asyncSuccess = false;\r\n errorHandler(r.data);\r\n } else {\r\n s.user = {};\r\n s.user.loggedin = false;\r\n if (isD(s.attrs.thismemberid))\r\n delete s.attrs.thismemberid;\r\n if (isD(s.attrs.mid))\r\n delete s.attrs.mid;\r\n\r\n // update upper main navivation menus\r\n updateMenu();\r\n }\r\n })\r\n .finally(() => {\r\n window.sugTagManager.reset();\r\n });\r\n };\r\n\r\n s.preplogin = function ( required, destination, allowregister, showregister ) {\r\n // possible overrides for forcing user to Register (part of email gating changes)\r\n s.allowRegistration = allowregister ? allowregister : true;\r\n s.showregistrationfirst = showregister ? showregister : false;\r\n\r\n svc.getUserInfo().then(\r\n function( response ){\r\n var r = util.lowerCaseKeys( response );\r\n\r\n if ( !r.data ) {\r\n //switch to https\r\n\r\n //show login window in https\r\n s.login( required, destination, s.allowRegistration, s.showregistrationfirst );\r\n } else if (r.data.data ) {\r\n\r\n if (r.data.data.memberid > 0 && destination !== undefined && destination !== '' ) {\r\n win.location.href = destination;\r\n } else {\r\n s.login( required, destination, s.allowRegistration, s.showregistrationfirst );\r\n }\r\n } else {\r\n s.login( required, destination, s.allowRegistration, s.showregistrationfirst );\r\n }\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * login method\r\n * Spawns a modal that shows either a login form (default) or a register form\r\n *\r\n * @required - Boolean; Determines if login is required\r\n * @destination - String; location to send the user after login/registration\r\n * @allowregister - Boolean; Determines if user registration is allowed\r\n * @showregister - Boolean; Determines if the registration form is shown (allowregister must also be true)\r\n */\r\n s.login = function (required, destination, allowregister, showregister) {\r\n var deferred = $q.defer();\r\n var loginRequired = typeof required !== 'undefined' ? required : false;\r\n\r\n // possible overrides for forcing user to Register (part of email gating changes)\r\n s.allowRegistration = allowregister ? allowregister : true;\r\n s.showregistrationfirst = showregister ? showregister : false;\r\n var loginWindow = modal.open({\r\n templateUrl: '/view/templates/main/login.html',\r\n controller: 'authenticationController',\r\n resolve: {\r\n loginRequired: function () {\r\n return loginRequired;\r\n },\r\n loginMessage: function () {\r\n return '';\r\n },\r\n register: function () {\r\n return (!s.user.loggedin && s.showregistrationfirst && s.allowRegistration);\r\n },\r\n registerDisabled: function () {\r\n return !s.allowRegistration;\r\n }\r\n }\r\n\r\n });\r\n\r\n loginWindow.result.then(function (response) {\r\n var r = response;\r\n\r\n if (isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD(r.data.memberid) && parseInt(r.data.memberid) > 0) {\r\n s.user = r.data;\r\n s.user.loggedin = true;\r\n // update upper main navigation menus\r\n updateMenu();\r\n\r\n //hooray go to the destination\r\n if (destination !== undefined && destination !== '') {\r\n win.location.href = destination;\r\n }\r\n\r\n deferred.resolve(true);\r\n }\r\n }, function (e) {\r\n deferred.reject(e);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n if (s.allowRegistration) {\r\n s.register = function () {\r\n modal.open({\r\n templateUrl: '/view/templates/main/login.html',\r\n controller: 'authenticationController',\r\n resolve: {\r\n loginRequired: function () {\r\n return false;\r\n },\r\n loginMessage: function () {\r\n return '';\r\n },\r\n register: function () {\r\n return true;\r\n },\r\n registerDisabled: function () {\r\n return false;\r\n }\r\n }\r\n }).result.then(function (response) {\r\n var r = response;\r\n if (isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD(r.data.memberid) && parseInt(r.data.memberid) > 0) {\r\n s.user = r.data;\r\n s.user.loggedin = true;\r\n // update upper main navigation menus\r\n updateMenu();\r\n }\r\n });\r\n };\r\n }\r\n\r\n return s;\r\n };\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();","(function () {\r\n\r\n /** sign up form service **/\r\n SUGApp.service('signUpFormService', ['SUGUtilities', 'signupPageService', '$q', function(util, signupPageService, $q){\r\n\r\n var service = {};\r\n // Retrieve cached values from signupPageService\r\n service.cachedMemberinfo = signupPageService.getMemberInfo();\r\n //service.cachedSignup = signupPageService.getSignUpInfo();\r\n //service.cachedTheme = signupPageService.getThemeInfo(); Not needed\r\n service.cachedThemeClass = signupPageService.getThemeClassInfo();\r\n\t\tservice.cachedAttrs = signupPageService.getAttrs();\r\n \r\n service.useSinglePageApplication = false;\r\n\r\n service.getSignUpFormAttrs = function( data ){\r\n // pull first from signupPageService cache\r\n var cacheObj = signupPageService.getAttrs();\r\n // if still empty, use local service cache\r\n if(typeof(cacheObj) !== 'object' || angular.equals(cacheObj, {})) {\r\n cacheObj = service.cachedAttrs;\r\n }\r\n // If the cached object is not empty use it instead of making the XHR request to retrieve the data\r\n if (typeof(cacheObj) === 'object' && !angular.equals(cacheObj, {})) {\r\n // Wrap cached data object in dummy XHR request response format so the existing validation code doesn't fail.\r\n var returnObj = { data: cacheObj, success: true, message: [], code: '' };\r\n return { data: returnObj, status: 200 };\r\n } else {\r\n return util.APISyncCall( \"post\", \"\", data, \"s.getSignUpFormAttrs\", 15000 );\r\n }\r\n };\r\n\r\n service.getSignUpTheme = function( data ){\r\n var cacheObj = service.cachedThemeClass;\r\n if (typeof(cacheObj) === 'object' && !angular.equals(cacheObj, {})) {\r\n service.useSinglePageApplication = true;\r\n // Wrap cached data object in dummy XHR request response format so the existing validation code doesn't fail.\r\n var returnObj = { data: cacheObj, success: true, message: [], code: '' };\r\n return { data: returnObj, status: 200 };\r\n } else {\r\n return util.APISyncCall( \"post\", \"\", data, \"s.getSignUpTheme\", 15000 );\r\n }\r\n };\r\n\r\n service.getSignUpFormItems = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.getSignUpFormItems\", 15000 );\r\n };\r\n\r\n service.getUserInfo = function( data ){\r\n var cacheObj = service.cachedMemberinfo;\r\n // If the cached object is not empty use it instead of making the XHR request to retrieve the data\r\n if (typeof(cacheObj) === 'object' && !angular.equals(cacheObj, {})) {\r\n service.useSinglePageApplication = true;\r\n // Set up promise for returning cached data because that is what the controller is expecting\r\n var deferred = $q.defer(); \r\n // Wrap cached data object in dummy XHR request response format so the existing validation code doesn't fail.\r\n var returnObj = { data: cacheObj, success: true, message: [], code: '' };\r\n deferred.resolve({ data: returnObj, status: 200 });\r\n return deferred.promise;\r\n } else {\r\n return util.APISyncCall( \"post\", \"\", data, \"m.getMemberInfo\", 15000 );\r\n }\r\n };\r\n\r\n service.getMainNavigation = function(){\r\n return util.APISyncCall( \"post\", \"\", \"\", \"c.getMainNavigation\", 15000 );\r\n };\r\n\r\n service.processSignUp = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.processSignUpFormHandler\", 45000 );\r\n };\r\n\r\n service.cancelForm = function(){\r\n // reset attributes to empty\r\n signupPageService.setAttrs({});\r\n return util.APISyncCall( \"get\", \"\", \"\", \"s.cancelSignUpForm\", 15000 );\r\n };\r\n\r\n service.checkSignUpAds = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.checkSignUpAds\", 45000 );\r\n };\r\n\r\n service.getCompletedSignUpDetail = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.getCompletedSignUpDetail\", 45000 );\r\n };\r\n\r\n service.removeSignupTransaction = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.removeSignupTransaction\", 45000 );\r\n };\r\n\r\n service.completeSignupTransaction = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.completeSignupTransaction\", 45000 );\r\n };\r\n \r\n service.completeWePayPayment = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.completeWePayPayment\", 45000 );\r\n };\r\n\r\n service.completeLumaPayPayment = function( data ){\r\n return util.APISyncCall( \"post\", \"\", data, \"s.completeLumaPayPayment\", 15000 );\r\n };\r\n\r\n service.getMerchantOutage = function (data) {\r\n return util.APISyncCall('post', '', data, 't.getMerchantOutage', 15000);\r\n };\r\n\r\n service.resultErrorHandler = function( response ){\r\n \t\tvar Message = \"\";\r\n \t\tvar result = util.lowerCaseKeys(response);\r\n \t\tif( angular.isDefined(result.message) ){\r\n \t\t\tif( angular.isArray(result.message) ){\r\n angular.forEach( result.message, function(obj,key){\r\n Message += obj + \" \";\r\n });\r\n \t\t\t} else {\r\n \t\t\t\tMessage = result.message;\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tif( util.isDefinedNotNullNotEmpty(result.statustext) ){\r\n \t\t\t\tMessage = result.statustext;\r\n \t\t\t} else if( typeof result.status !== undefined && result.status === 0 ){\r\n \t\t\t\tMessage = 'Request timeout exceeded. Make sure you are logged in and have an active session.';\r\n \t\t\t}\r\n \t\t\telse {\r\n \t\t\t\tMessage = 'An unknown error occurred while processing your request';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn Message;\r\n \t};\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n})();\r\n","(function () {\r\n\r\n SUGApp.service('signupPageService', ['SUGUtilities','sugCacheFactory','$filter','$modal','$q', function(SUGUtilities,sugCacheFactory,$filter,$modal,$q){\r\n\r\n var service = {\r\n urlparts: [],\r\n urlkey : '',\r\n tabgroupurlkey : '',\r\n tabindex: 0,\r\n memberinfo : {},\r\n signupinfo : {},\r\n themeinfo : {},\r\n tabgroup : {},\r\n calendardates: {\r\n arrSignUpDates: [],\r\n displayMonth: {},\r\n },\r\n currentMonth: undefined,\r\n paginationMetadata: undefined,\r\n customThemeId: undefined,\r\n };\r\n\r\n var defaultTtl = 60000; // 1 minute\r\n\r\n /**\r\n * Toggles the default TTL for the cache to 1 ms, effectively disabling it, for a period of 1 minute.\r\n * This is used to force a refresh of the cache when the user signs up for a slot.\r\n */\r\n service.toggleDefaultTtl = function() {\r\n // toggle the default TTL to 1 ms for a period of 1 minute\r\n defaultTtl = 1;\r\n setTimeout(function() {\r\n defaultTtl = 60000;\r\n }, 60000);\r\n };\r\n\r\n // cache object url spliced into an array\r\n service.setUrlParts = function( info ){\r\n //URL array may start with // causing an empty string, so handle that here\r\n service.urlparts = info.filter(function(el){ return el === 0 || el; });\r\n };\r\n service.getUrlParts = function(){\r\n return service.urlparts;\r\n };\r\n\r\n // cache object\r\n service.setUrlKey = function( info ){\r\n service.urlkey = info;\r\n };\r\n service.getUrlKey = function(){\r\n return service.urlkey;\r\n };\r\n\r\n // cache custom theme id\r\n service.setCustomThemeId = function( themeId ){\r\n service.customThemeId = themeId;\r\n };\r\n service.getCustomThemeId = function(){\r\n return service.customThemeId;\r\n };\r\n\r\n // cache object for embedded portal Id\r\n service.setPortalId = function( info ){\r\n sugCacheFactory.set('embed_portalId', info);\r\n };\r\n service.getPortalId = function(){\r\n return sugCacheFactory.get('embed_portalId', 0);\r\n };\r\n\r\n // cache object\r\n service.setTabGroup = function( info ){\r\n service.tabgroup = info;\r\n };\r\n\r\n service.getTabGroup = function(){\r\n return service.tabgroup;\r\n };\r\n\r\n // cache object\r\n service.setTabGroupUrlKey = function( info ){\r\n service.tabgroupurlkey = info;\r\n };\r\n\r\n service.getTabGroupUrlKey = function(){\r\n return service.tabgroupurlkey;\r\n };\r\n\r\n // cache object\r\n service.setTabIndex = function( info ){\r\n service.tabindex = info;\r\n };\r\n\r\n service.getTabIndex = function(){\r\n return service.tabindex;\r\n };\r\n\r\n // cache object\r\n service.setMemberInfo = function( info ){\r\n service.memberinfo = info;\r\n };\r\n\r\n service.getMemberInfo = function(){\r\n return service.memberinfo;\r\n };\r\n\r\n // cache object\r\n service.setSignUpInfo = function( info ){\r\n service.signupinfo = info;\r\n };\r\n\r\n service.getSignUpInfo = function(){\r\n // we can potentially override and get the data from backend\r\n return service.signupinfo;\r\n };\r\n\r\n service.setThemeInfo = function( info ){\r\n service.themeinfo = info;\r\n };\r\n\r\n service.getSignUpParticipantsBySlotItem = function ( data ) {\r\n return SUGUtilities.APISyncCall('post', '', data, 's.getSignUpParticipantsBySlotItem', 30000);\r\n };\r\n\r\n service.getThemeInfo = function(){\r\n // we can potentially override and get the data from backend\r\n return service.themeinfo;\r\n };\r\n\r\n service.setThemeClassInfo = function( info ){\r\n service.themeclassinfo = info;\r\n };\r\n\r\n service.getThemeClassInfo = function(){\r\n // we can potentially override and get the data from backend\r\n return service.themeclassinfo;\r\n };\r\n\r\n // cache object\r\n service.setAttrs = function( info ){\r\n service.attrs = info;\r\n };\r\n\r\n service.getAttrs = function(){\r\n return service.attrs;\r\n };\r\n\r\n service.setCalendarDates = function( data ){\r\n service.calendardates = data;\r\n };\r\n service.getCalendarDates = function(){\r\n return service.calendardates;\r\n };\r\n service.setSignUpDates = function( data ){\r\n service.calendardates.arrSignUpDates = data;\r\n };\r\n service.getSignUpDates = function(){\r\n return service.calendardates.arrSignUpDates;\r\n };\r\n service.setDisplayMonth = function( data ){\r\n service.calendardates.displayMonth = data;\r\n };\r\n\r\n service.getDisplayMonth = function(){\r\n return service.calendardates.displayMonth;\r\n };\r\n \r\n /** Sets the curent month into the service's state so we can persist it across pages (ex. \"10-2020\")\r\n * \r\n * @param {string} data \r\n */\r\n service.setCurrentMonth = function( data ){\r\n service.currentMonth = data; \r\n };\r\n /** gets the current month string (ex. \"10-2020\") from the service\r\n * \r\n * @returns string\r\n */\r\n service.getCurrentMonth = function(){\r\n return service.currentMonth;\r\n };\r\n\r\n /** Sets the curent month into the service's state so we can persist it across pages (ex. \"10-2020\")\r\n * \r\n * @param {string} data \r\n */\r\n service.setPaginationMetadata = function( data ){\r\n data.calendarview.lastCalendarMonth = new Date(data.calendarview.lastmonthwithslots);\r\n data.calendarview.firstCalendarMonth = new Date(data.calendarview.firstmonthwithslots); \r\n service.paginationMetadata = data; \r\n };\r\n /** gets the last stored pagination metadata from the service cache\r\n * \r\n * @returns string\r\n */\r\n service.getPaginationMetadata = function(){\r\n return service.paginationMetadata;\r\n };\r\n\r\n // cache object Factory\r\n service.setEmbedPortalInfo = function( info ){\r\n sugCacheFactory.set('embed_portalBasics', info);\r\n };\r\n service.getEmbedPortalInfo = function(){\r\n return sugCacheFactory.get('embed_portalBasics',{});\r\n };\r\n\r\n //Convert params object into URLParts Array for use in the Router\r\n service.convertParamsToUrlParts = function( params ){\r\n if(typeof params == 'object'){\r\n var parts = [];\r\n Object.keys(params).map(function(key) {\r\n parts.push(key);\r\n parts.push(params[key]);\r\n });\r\n service.setUrlParts( parts );\r\n }\r\n };\r\n\r\n service.resultErrorHandler = function( response ){\r\n \t\tvar Message = \"\";\r\n \t\tvar result = SUGUtilities.lowerCaseKeys(response);\r\n \t\tif( angular.isDefined(result.message) ){\r\n \t\t\tif( angular.isArray(result.message) ){\r\n angular.forEach( result.message, function(obj,key){\r\n Message += obj + \" \";\r\n });\r\n \t\t\t} else {\r\n \t\t\t\tMessage = result.message;\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tif( SUGUtilities.isDefinedNotNullNotEmpty(result.statustext) ){\r\n \t\t\t\tMessage = result.statustext;\r\n \t\t\t} else if( typeof result.status !== undefined && result.status === 0 ){\r\n \t\t\t\tMessage = 'Request timeout exceeded. Make sure you are logged in and have an active session.';\r\n \t\t\t}\r\n \t\t\telse {\r\n \t\t\t\tMessage = 'An unknown error occurred while processing your request';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn Message;\r\n };\r\n\r\n /**\r\n * Get an object reflecting slot availability like {qtyLabel: \"1 slot available\", btnState: \"default\"}\r\n * Include a responsive version that optionally hides parts of longer labels for smaller screens\r\n * @intLimit - the quantity limit for the slot\r\n * @intTaken - the quantity taken for the slot item\r\n * @blnAddLocked {Boolean} - slotiem is locked or not\r\n * @blnSignupLocked {Boolean} - sign up is locked or not\r\n */\r\n service.getAvailability = function( intLimit, intTaken, blnAddLocked, blnSignupLocked ){\r\n // return value\r\n var stcAvailable = {\r\n qtyLabel: \"\",\r\n qtyLabelResponsive: \"\",\r\n btnState: \"default\"\r\n };\r\n\r\n var strTaken = $filter('number')(intTaken);\r\n var strLimit = $filter('number')(intLimit);\r\n\r\n // if no participants\r\n if( intTaken == 0 ){\r\n switch( intLimit ){\r\n case 1:\r\n stcAvailable.qtyLabel = '1 slot available';\r\n stcAvailable.qtyLabelResponsive = stcAvailable.qtyLabelResponsive = stcAvailable.qtyLabel;\r\n break;\r\n case 999999:\r\n break; // no label\r\n default:\r\n stcAvailable.qtyLabel = strLimit + ' slots available';\r\n stcAvailable.qtyLabelResponsive = stcAvailable.qtyLabel;\r\n break;\r\n }\r\n }\r\n else{\r\n if( intLimit == 999999 ){\r\n stcAvailable.qtyLabel = intTaken == 1 ? '1 slot filled (more available)' : strTaken + ' slots filled (more available)';\r\n stcAvailable.qtyLabelResponsive = stcAvailable.qtyLabel.replace('(more available)', '(more available)');\r\n }\r\n else{\r\n if( intLimit == intTaken ){\r\n stcAvailable.qtyLabel = intTaken == 1 ? 'All slots filled' : 'All ' + strTaken + ' slots filled';\r\n stcAvailable.qtyLabelResponsive = stcAvailable.qtyLabel;\r\n stcAvailable.btnState = \"full\";\r\n }\r\n else{\r\n stcAvailable.qtyLabel = strTaken + ' of ' + strLimit + ' slots filled';\r\n stcAvailable.qtyLabelResponsive = stcAvailable.qtyLabel;\r\n }\r\n }\r\n\r\n }\r\n // if the sign up is locked and not full (full takes precedence), set the button to the locked state\r\n if( ( blnSignupLocked || blnAddLocked ) && stcAvailable.btnState != \"full\" ){\r\n stcAvailable.btnState = \"locked\";\r\n }\r\n\r\n return stcAvailable;\r\n };\r\n\r\n\r\n service.deleteItemMember = function ( data ) {\r\n return SUGUtilities.APISyncCall('post', '', data, 's.deleteItemMember', 15000);\r\n };\r\n\r\n service.deleteItemMemberModal = function(modalInfo, itemmember){\r\n var deleteItemMemberModal = $modal.open({\r\n templateUrl: '/view/signups/incl_dspItemMemberDeleteModal.html',\r\n controller: 'deleteItemMemberModalController',\r\n resolve: {\r\n //pass data into the modal\r\n modalInfo: function(){ return modalInfo; },\r\n itemmember: function(){ return itemmember; }\r\n },\r\n });\r\n\r\n return deleteItemMemberModal.result;\r\n };\r\n\r\n service.getsignup = function (data, ttl) {\r\n // default cache ttl, if not specified\r\n ttl = ttl || defaultTtl;\r\n return SUGUtilities.APISyncCallWithCaching('post', '', data, 's.getSignupInfo', 30000, ttl);\r\n };\r\n service.gettheme = function (data) {\r\n return SUGUtilities.APISyncCallWithCaching('post', '', data, 's.getSignUpThemeByUrlId');\r\n };\r\n\r\n service.getSignupTheme = function (data) {\r\n return SUGUtilities.APISyncCallWithCaching('post', '', data, 's.getSignUpTheme');\t\r\n } \r\n\r\n service.gettabgroup = function (data) {\r\n return SUGUtilities.APISyncCallWithCaching('post', '', data, 's.getTabGroupDetails');\r\n };\r\n\r\n service.getSignUpParticipantsBySlotItem = function ( data ) {\r\n return SUGUtilities.APISyncCall('post', '', data, 's.getSignUpParticipantsBySlotItem', 30000);\r\n };\r\n\r\n /* For Embedded Signup Via Embedded Portal */\r\n service.getportalembeddata = function (data) {\r\n var deferred = $q.defer();\r\n\r\n //Try to get the embedPortalInfo from SUG cache factory\r\n var portalEmbedInfo = service.getEmbedPortalInfo();\r\n var keyCount = Object.keys(portalEmbedInfo).length;\r\n\r\n if( keyCount == 0 || (keyCount > 0 && portalEmbedInfo.portalid != data.portalid) ){\r\n SUGUtilities.APISyncCall('post', '', data, 'c.getPortalEmbedData', 15000)\r\n .then( function(response){\r\n var r = SUGUtilities.lowerCaseKeys(response.data);\r\n var portalEmbedInfo = { 'urlkey':'', 'memberid':0, 'portalid':data.portalid, 'title':'' };\r\n if (SUGUtilities.ajaxResultInvalid(response.data)) {\r\n //Silent error. If this fails backToPortal view uses default data above and handles it.\r\n //console.log('::ERROR::\\n', SUGUtilities.getAjaxResponseMessage(response));\r\n } else {\r\n portalEmbedInfo = r.data;\r\n }\r\n service.setEmbedPortalInfo( portalEmbedInfo );\r\n deferred.resolve(portalEmbedInfo);\r\n }, function(err){\r\n deferred.reject(err);\r\n });\r\n }else{\r\n deferred.resolve(portalEmbedInfo);\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Sets fee message\r\n * @param {Object} signupInfo sign up info object\r\n * @returns {String} feeMessage - either empty string or feeMessage.\r\n */\r\n service.setFeeMessage = function(signupInfo){\r\n var feeMessage = '';\r\n var wprate = signupInfo.iswp && angular.isDefined(signupInfo.wprate) ? signupInfo.wprate : {'p':0,'t':0,'fee_payer':'payer_from_app'};\r\n var cur = signupInfo.currency;\r\n var fee_payer = ( signupInfo.iswp && angular.isDefined( signupInfo.wprate.fee_payer ) ) ? signupInfo.wprate.fee_payer : 'payer_from_app';\r\n // set fee message\r\n if( fee_payer == 'payer_from_app' && $filter('number')(wprate.p * 100) > 0){\r\n feeMessage = \"A service fee of \" + $filter('number')(signupInfo.wprate.p * 100) + \"% + \" + $filter('currency')(signupInfo.wprate.t) + ' ' + cur + \" will be added to your purchase at checkout.\";\r\n }\r\n\r\n return feeMessage;\r\n };\r\n\r\n\r\n /**\r\n * Sets the initial pagination values for a sign up\r\n * @param {Object} signupInfo sign up info object\r\n * @param {Object} frmObj form object\r\n * @returns nothing\r\n */\r\n service.initializePagination = function(signupInfo, frmObj){\r\n const paginationMinimumCount = 500; // this is where pagination process begins\r\n var totalSlots = signupInfo.slotmetadata.totalslots || 0;\r\n\r\n if (isSignUpLocked(signupInfo) || isAllSignUpDatesHidden(signupInfo)) {\r\n signupInfo.allSlotsHidden = true;\r\n return signupInfo;\r\n }\r\n\r\n // Initial slice values to display the first page.\r\n var sliceStart = 0;\r\n var sliceEnd = frmObj.numPerPage;\r\n // Convert the slots object to an array so we can slice it and only return the initial page of slots\r\n signupInfo.slotsArray = Object.entries(signupInfo.slots);\r\n\r\n // For date sorted slots, we need to show slots without a location (locationid === 0) before slots with locations. \r\n if (signupInfo.itemsort === \"D\") {\r\n signupInfo.slotsArray.sort((slotA, slotB) => slotA[1].locationid > slotB[1].locationid)\r\n }\r\n signupInfo.currentSlots = signupInfo.slotsArray.slice(sliceStart, sliceEnd);\r\n\r\n signupInfo.listPagination = {\r\n itemsPerPage: frmObj.numPerPage,\r\n currentPage: 1,\r\n totalSlots: totalSlots,\r\n totalPages: Math.ceil(totalSlots * signupInfo.slotsArray.length / frmObj.numPerPage), // TODO this will need to come from the slotMetadata returned from the initial response \r\n };\r\n\r\n var allItemSlots = [];\r\n\r\n // We currently get all slots at once grouped within their parents under either a date or item property, we need to flatten those date or item properties into an array of the slots\r\n // DEV NOTE: Everything below this can eventually be replaced by an OFFSET and LIMIT on the backend\r\n signupInfo.slotsArray.forEach(function(itemSlot) {\r\n\r\n var itemDetail = itemSlot[1];\r\n // Item sorted uses a 'date' property that's an array of slots\r\n if (signupInfo.itemsort === \"I\") {\r\n for (i = 0; i < itemDetail.dates.length; i++) {\r\n\r\n var rebuiltSlot = [itemSlot[0],Object.assign({}, itemDetail, {dates: [itemDetail.dates[i]]})];\r\n // console.log({rebuiltSlot})\r\n allItemSlots.push(rebuiltSlot);\r\n }\r\n } else {\r\n // while other sign up types use an 'items' property as an array of slots\r\n for (i = 0; i < itemDetail.items.length; i++) {\r\n\r\n var rebuiltSlot = [itemSlot[0],Object.assign({}, itemDetail, {items: [itemDetail.items[i]]})];\r\n // console.log({rebuiltSlot})\r\n allItemSlots.push(rebuiltSlot);\r\n }\r\n }\r\n }) \r\n\r\n // TODO Might only be needed for date sorted \"D\"\r\n allItemSlots.sort((a, b) => {\r\n return new Date(a[1].starttime) > new Date(b[1].starttime);\r\n });\r\n\r\n // Once we have all slots we update the total number of pages based on that number. TODO: This will come from slot metadata\r\n signupInfo.listPagination.totalSlots = allItemSlots.length;\r\n signupInfo.listPagination.totalPages = Math.ceil(allItemSlots.length / frmObj.numPerPage);\r\n\r\n signupInfo.showLocation = signupInfo.slotmetadata.displaycolumns.location === true;\r\n signupInfo.showTimeColumn = signupInfo.slotmetadata.displaycolumns.time === true;\r\n signupInfo.showPagination = signupInfo.listPagination.totalSlots > paginationMinimumCount;\r\n\r\n // when not showing pagination we need to show all at once\r\n if (!signupInfo.showPagination) {\r\n signupInfo.listPagination.itemsPerPage = paginationMinimumCount;\r\n frmObj.numPerPage = paginationMinimumCount;\r\n }\r\n\r\n // Then we go back over all of the slots and build an array of pages\r\n var paginatedItemSlots = [];\r\n var page = {};\r\n var currentPage = 0;\r\n allItemSlots.forEach(function(slot,index) {\r\n\r\n var itemId = slot[0];\r\n var itemDetails = slot[1]\r\n // If the mod is 0, we're on the next page so push the current page and create a new page of slots\r\n if (index % frmObj.numPerPage === 0 && index !== 0) {\r\n\r\n paginatedItemSlots[currentPage] = page;\r\n page = {};\r\n currentPage++;\r\n }\r\n\r\n // Build a dictionary of each item on a given page and its slots that are also on that page to simulate the results returned by a paginated API\r\n if (Object.hasOwn(page, itemId)) {\r\n // If we already have that itemId in the dictionary, add current slot\r\n if (signupInfo.itemsort === \"I\") {\r\n page[itemId].dates.push(itemDetails.dates[0])\r\n } else {\r\n page[itemId].items.push(itemDetails.items[0])\r\n }\r\n } else {\r\n // Otherwise create it by adding the first slot attached to that itemId\r\n page[itemId] = itemDetails;\r\n }\r\n\r\n\r\n })\r\n // Add the last page to the list of pages when we're done\r\n paginatedItemSlots[currentPage] = page;\r\n signupInfo.slotsArray = paginatedItemSlots;\r\n\r\n if (signupInfo.showPagination) {\r\n // get the initial page from the built pages, and pass it down to each sign up controller\r\n signupInfo.currentSlots = signupInfo.slotsArray.slice(signupInfo.listPagination.currentPage - 1, signupInfo.listPagination.currentPage);\r\n }\r\n else {\r\n // get all pages\r\n signupInfo.currentSlots = signupInfo.slotsArray;\r\n }\r\n }\r\n\r\n // private methods\r\n\r\n // test if sign up is locked\r\n var isSignUpLocked = function(signupInfo){\r\n return typeof signupInfo.signuplocked !== 'undefined' && signupInfo.signuplocked ? true : false;\r\n };\r\n\r\n // test if has all dates are hidden\r\n var isAllSignUpDatesHidden = function(signupInfo){\r\n return typeof signupInfo.alldateshidden !== 'undefined' && signupInfo.alldateshidden ? true : false;\r\n };\r\n\r\n return service;\r\n\r\n }]);\r\n\r\n\r\n\r\n})();\r\n","(function () {\r\n\r\n\t// inject ui.bootstrap\r\n\tangular.module(\"SUGApp\").requires.push('ui.bootstrap');\r\n\r\n\t/** local directives that are only used here, but can certainly be used elsewhere if needed **/\r\n\tSUGApp.directive('compile',['$compile','$timeout',function(c, t){\r\n\t\treturn{\r\n\t\t\trestrict:'A',\r\n\t\t\tlink: function(scope,elem,attrs){\r\n\t\t\t\tt(function(){\r\n\t\t\t\t\tc(elem.contents())(scope);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.directive('socialShare', [function(){\r\n\t\treturn {\r\n\t\t\trestrict: 'EA',\r\n\t\t\tscope:{\r\n\t\t\t\t\"type\" : \"=\",\r\n\t\t\t\t\"destination\" : \"=\",\r\n\t\t\t\t\"class\" : \"=\",\r\n\t\t\t\t\"action\" : \"&onClick\"\r\n\t\t\t},\r\n\t\t\treplace: true,\r\n\t\t\ttemplateUrl: \"/view/templates/socialshare.html\",\r\n\t\t\tlink: function(scope, element, attrs){\r\n\t\t\t\t// not being used yet\r\n\t\t\t},\r\n\t\t\tcontroller: function(){\r\n\t\t\t\t// not being used yet\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.directive('icsDownloadIcons', [function(){\r\n\t\treturn {\r\n\t\t\trestrict: 'EA',\r\n\t\t\tscope:{\r\n\t\t\t\t\"text\" \t\t: \"=\",\r\n\t\t\t\t\"type\" \t\t: \"=\",\r\n\t\t\t\t\"destination\" : \"=\",\r\n\t\t\t\t\"class\" \t: \"=\",\r\n\t\t\t\t\"height\" \t: \"=\",\r\n\t\t\t\t\"border\" \t: \"=\",\r\n\t\t\t\t\"action\" \t: \"&onClick\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: \"/view/templates/icsdownloadicons.html\",\r\n\t\t\treplace: true,\r\n\t\t\tlink: function(scope, element, attrs){\r\n\t\t\t\t// not being used yet\r\n\t\t\t},\r\n\t\t\tcontroller: function(){\r\n\t\t\t\t// not being used yet\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.directive('iframeOnload', [function(){\r\n\t\treturn {\r\n\t\t\trestrict: 'EA',\r\n\t\t\tscope:{\r\n\t\t\t\tcallBack : '&iframeOnload'\r\n\t\t\t},\r\n\t\t\tlink: function(scope, element, attrs){\r\n\t\t\t\telement.on('load', function(){\r\n\t\t\t\t\tscope.callBack();\r\n\t\t\t\t\tscope.$apply();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}])\r\n\t.controller('signUpFormController',\r\n\t\t\t['$scope','loginfactory','SUGUtilities','$sce','$timeout','signUpFormService','$uibModal','$window','authenticationService','$filter','$location','$timeout','$filter','adService','$rootScope','$q','signupPageService','$route','globalJSService','globalService', 'sortableService',\r\n\t\t\tfunction(s, loginfactory, util,sce,$timeout,svc,modal,win,authSvc,filter,location,timeout,$filter,adService,$rootScope,$q,signupPageService,$route,globalJSService,globalService, sortableService){\r\n\r\n\t\tutil.showLoading( 'processing' );\r\n\t\t// initialize a modal\r\n\t\ts.loginModal = loginfactory.getLogin(true, false);\t// allow registration, show login by default (showregistration=false)\r\n\t\ts.initialized = false;\r\n\t\ts.signupLoaded = false;\r\n\t\ts.urlkey = signupPageService.getUrlKey();\r\n\t\ts.h = new Date().getTime();\r\n\t\ts.user = {};\r\n\t\ts.user.loggedin = false;\r\n\t\ts.attrs = {};\r\n\t\ts.signup = {};\r\n\t\ts.theme = {};\r\n\t\ts.asyncSuccess = true;\r\n\t\ts.success = true;\r\n\t\ts.errorMessages = {};\r\n\t\ts.signupTitle = '';\r\n\t\ts.formMainTitle = 'Sign Me Up';\r\n\t\ts.signupDesc = '';\r\n\t\ts.datedisplay = \"\";\r\n\t\ts.dateformat = \"\";\r\n\t\ts.shortZone = \"\";\r\n\t\ts.tbodyColCt = 4;\r\n\t\ts.nodatesignup = false;\r\n\t\ts.arrpaytypes = ['fixed','options','noset'];\r\n\t\ts.hasPayItems = false;\r\n\t\ts.paymentRequired = false;\r\n\t\ts.hasPaid = false;\r\n\t\ts.hasPaidStatus = ['paid','cash','check','other'];\r\n\t\ts.paymentIsPending = false;\r\n\t\ts.closeLock = false;\r\n\t\ts.modifyLock = 0;\r\n\t\ts.commentsRequired = false;\r\n\t\ts.emailrequired = false;\r\n\t\ts.qtyLimitEnabled = false;\r\n\t\ts.socialshare = false;\r\n\t\ts.signupQtyLimit = 0;\r\n\t\ts.itemQtyLimit = 0;\r\n\t\ts.customFields = [];\r\n\t\ts.cq_address = [];\r\n\t\ts.cq_phone = [];\r\n\t\ts.complete = false;\r\n\t\ts.totalPrice = 0;\r\n\t\ts.currency_symbol = '$';\r\n\t\ts.currency_code = 'USD';\r\n\t\ts.isrsvp = false;\r\n\t\ts.rsvpdetails = {};\r\n\t\ts.rsvpheader = '';\r\n\t\ts.editmode = false;\r\n\t\ts.showsegments = true;\r\n\t\ts.thankYouTemplate = '/view/templates/signups/form/thankyou.html';\r\n\t\ts.isProcessing = false;\r\n\t\ts.anonymous = false;\r\n\t\ts.showreturntosulink = false;\r\n\t\ts.rsvpitemsavailable = false;\r\n\t\ts.editLocked = false;\r\n\t\ts.disableState = false;\r\n\t\ts.rItemQtyLookup = {};\r\n\t\ts.winorigin = angular.isDefined( win.location.origin ) ? win.location.origin : win.location.protocol + '//' + win.location.host;\r\n\t\ts.hAdWidth = 0;\r\n\t\ts.containerWidth = win.innerWidth;\r\n\t\ts.selectedState = '';\r\n\t\ts.selectedCountry = '';\r\n\t\ts.states = [];\r\n\t\ts.filteredStates = [];\r\n\t\ts.signupiswepay = false;\r\n\t\ts.wpfeepayer = 'payer_from_app';\t// wepay fee payer default\r\n\t\ts.signupislumapay = false;\r\n\t\ts.lpfeepayer = 'payer_from_app';\t// lumapay fee payer default\r\n\t\ts.fbAppId = '';\r\n\t\ts.backtosignupLink = \"\";\r\n\t\ts.showTPCookie = true;\r\n\t\ts.wpiframesrc = '';\r\n\t\ts.disablesignup = false;\r\n\t\ts.showproductimage = false;\r\n\t\ts.usenewaddirective = false;\r\n\t\ts.adconfig = {\r\n\t\t\tnetwork : '',\r\n\t\t\tplatform : 'desktop',\r\n\t\t\tcategory : 'signups',\r\n\t\t\tsection : 'form',\r\n\t\t\ttype\t : '',\r\n\t\t\tposition : '',\r\n\t\t\ttheme : '',\r\n\t\t\tthemeid : 0\r\n\t\t};\r\n\r\n\r\n\r\n\r\n\t\t/** form object **/\r\n\t\ts.objForm = {};\r\n\t\ts.objForm.listid = 0;\r\n\t\ts.objForm.owner = 0;\r\n\t\ts.objForm.urlid = utility.getUrlParamValue('urlid'); // utility is available globally\r\n\t\ts.objForm.title = '';\r\n\t\ts.objForm.siid = '';\r\n\t\ts.objForm.rsvpid = 0;\r\n\t\ts.objForm.imid = 0;\r\n\t\ts.objForm.usealternatename = false;\r\n\t\ts.objForm.changemembermame = false;\r\n\t\ts.objForm.displayfirstname = '';\r\n\t\ts.objForm.displaylastname = '';\r\n\t\ts.objForm.firstname = '';\r\n\t\ts.objForm.lastname = '';\r\n\t\ts.objForm.email = '';\r\n\t\ts.objForm.savecontactinfo = false;\r\n\t\ts.previewOnly = utility.getUrlParamValue('previewOnly') !== 'undefined' ? utility.getUrlParamValue('previewOnly') : false;\r\n\t\ts.pidParam = '';\r\n\r\n\t\t// If invisible recaptcha is disabled on a sign up (the default), we don't need to insert any content into the DOM, so we use an empty string\r\n\t\ts.invisibleRecaptcha = '';\r\n\t\ts.recaptchaActive = s.invisibleRecaptcha.length ? true : false;\r\n\t\t// validatedData holds a scoped reference to the validated sign up info in ProcessSignUp, so that we can submit the sign up data from within the recaptcha check.\r\n\t\ts.validatedData = {};\r\n\r\n\t\t// Trigger a freestar/sortable event on the completion of a sign up. \r\n\t\ts.$watch('complete', function(newValue, oldValue) {\r\n\t\t\t// Prevent event from running on initialization of controller.\r\n\t\t\tif(newValue === oldValue){\r\n\t\t\t\treturn;\r\n\t\t\t}\t\t\t\r\n\t\t\tif (newValue === true) {\r\n\t\t\t\t// Only trigger the order confirmation event if ads are enabled on the sign up\r\n\t\t\t\tif (s.showsegments) {\r\n\t\t\t\t\tsortableService.triggerEvent('Order_confirmation');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// Used to process the sign up data from within the recaptcha calls\r\n\t\tvar submitSignupData = function(processedData) {\r\n\t\t\treturn svc.processSignUp( processedData )\r\n\t\t\t\t.then( function(response){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\tif( typeof r.data.data === \"object\" && 'errormessages' in r.data.data ){\r\n\t\t\t\t\t\t\ts.errorMessages = r.data.data.errormessages;\r\n\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ts.isProcessing = false;\r\n\t\t\t\t\t\twin.scrollTo(0,0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// toggle the default ttl for the cache, so we don't get stale data\r\n\t\t\t\t\t\tsignupPageService.toggleDefaultTtl();\r\n\t\t\t\t\t\t// Call code to start LiveRamp ATS\r\n\t\t\t\t\t\twin.startAts(r.data.data.email);\r\n\t\t\t\t\t\tprocessSignUpHander( r.data.data );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\ts.labels = {\r\n\t\t\t\"submitBtn\" : \"Sign Up Now\",\r\n\t\t\t\"cancelBtn\" : \"Cancel\",\r\n\t\t\t\"deleteBtn\" : \"Delete\",\r\n\t\t\t\"breadcrumbBtn\" : \"Back to \",\r\n\t\t\t\"signmeupfor\" : \"Sign me up for:\",\r\n\t\t\t\"contactinfo\" : \"Contact info:\",\r\n\t\t\t\"additionalinfo\" : \"Additional info:\",\r\n\t\t\t\"backtosignup\" : \"Back to Sign Up\",\r\n\t\t\t\"addtocalendar\" : \"Add to Calendar\",\r\n\t\t\t\"editmysignup\" : \"Edit My Sign Up\",\r\n\t\t\t\"editmyrsvp\" : \"Edit My RSVP\",\r\n\t\t\t\"socialshare\" : \"Share with Friends\",\r\n\t\t\t\"returntosignup\" : \"Return to Sign Up\",\r\n\t\t\t\"saveContactInfo\" : \"Save my contact info for use on future sign ups\",\r\n\t\t\t\"payLater\" : \"Sign Up & Pay Later\"\r\n\t\t};\r\n\r\n\t\ts.standardErrors = {\r\n\t\t\t\"email_invalid\" : \"You must enter a valid email address.\",\r\n\t\t\t\"email_length\" : \"Email address must not exceed 100 characters.\",\r\n\t\t\t\"firstname_length\" : \"First name must not exceed 50 charcters.\",\r\n\t\t\t\"lastname_length\" : \"Last name must not exceed 100 characters.\",\r\n\t\t\t\"quantity_invalid\" : \"The quantity must be all numeric.\",\r\n\t\t\t\"savecontactinfo\" : \"You must populate the address and/or phone information when selecting this option.\",\r\n\t\t\t\"email_disallowed\"\t: \"Please sign up with an individual email address.\",\r\n\t\t};\r\n\r\n\t\ts.errormessage = \"Oops! Something went wrong. We can't seem to find the sign up information you've requested. If this error persists, please contact support.\";\r\n\t\ts.notificationsurl = window.globalcfg.notificationsURL;\r\n\r\n\t\t// Method ot retrieve the countries list\r\n\t\tvar getCountries = function(){\r\n\t\t\tglobalService.getCountries().then( function(response){\r\n\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\terrorHandler( r );\r\n\t\t\t\t} else {\r\n\t\t\t\t\ts.countries = r.data;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfunction(result){\r\n\t\t\t\terrorHandler( result );\r\n\t\t\t});\r\n\t\t};\r\n\t\tgetCountries();\r\n\r\n\t\t/**\r\n\t\t * Method returns the Portal Id (pid) from the URL, or 0\r\n\t\t * Simulates actions that happen in the signuppage.js Service,\r\n\t\t * but here the URL is in the older format.\r\n\t\t */\r\n\t\tvar getEmbedPortalIdParam = function(){\r\n\t\t\t var urlparts = window.location.href.split('?');\r\n\t\t\t if( urlparts.length > 1){\r\n\t\t\t\tvar params = urlparts[1].split('&');\r\n\r\n\t\t\t\t//find the pid value (PortalId) and return it\r\n\t\t\t\tfor( var p=0, end=params.length; p 0);\r\n\t\t\ts.modifyLock = parseInt(s.signup.modifylockdays);\r\n\t\t\ts.commentsRequired = (parseInt(s.signup.commentrequired) === 1);\r\n\t\t\ts.emailRequired = (parseInt(s.signup.emailrequired) === 1);\r\n\t\t\ts.signupQtyLimit = s.signup.qtylimit_signup;\r\n\t\t\ts.itemQtyLimit = s.signup.qtylimit_slotitems;\r\n\t\t\ts.qtyLimitEnabled = (s.signupQtyLimit > 0 || s.itemQtyLimit > 0);\r\n\t\t\ts.isrsvp = (parseInt( s.signup.usersvp ) === 1);\r\n\t\t\ts.socialshare = (parseInt(s.signup.socialshare) === 1);\r\n\t\t\ts.showsegments = s.signup.showsegments;\r\n\t\t\ts.listid = s.signup.id;\r\n\t\t\ts.signupowner = s.signup.owner;\r\n\t\t\ts.signupcontact = s.signup.contactname;\r\n\t\t\ts.signupiswepay = s.signup.iswp;\r\n\t\t\ts.wpfeepayer = s.signupiswepay && isD( s.signup.wprate.fee_payer ) ? s.signup.wprate.fee_payer : s.wpfeepayer;\r\n\t\t\ts.wprate = s.signupiswepay && isD( s.signup.wprate ) ? s.signup.wprate : {p:0,r:0};\r\n\r\n\t\t\ts.signupislumapay = s.signup.islp;\r\n\t\t\ts.lpfeepayer = s.signupislumapay && isD( s.signup.lprate.fee_payer ) ? s.signup.lprate.fee_payer : s.lpfeepayer;\r\n\t\t\ts.lprate = s.signupislumapay && isD( s.signup.lprate ) ? s.signup.lprate : {p:0,r:0};\r\n\t\t\tif( isD( s.signup.currency ) )\r\n\t\t\t\ts.currency_code = s.signup.currency;\r\n\t\t\tif( s.signupcontact.toString().trim() === '' )\r\n\t\t\t\ts.signupcontact = \" the sign up creator \";\r\n\t\t\ts.linktowebsite = '';\r\n\t\t\ts.linktowebsitebtn = '';\r\n\t\t\tif( s.signup.linktowebsite.toString().length ){\r\n\t\t\t\tvar ltw = s.signup.linktowebsite.split('|');\r\n\t\t\t\tif( ltw.length === 2 ){\r\n\t\t\t\t\ts.linktowebsite = ltw[1];\r\n\t\t\t\t\ts.linktowebsitebtn = ltw[0];\r\n\t\t\t\t\ts.backtosignupLink = ltw[1];\r\n\t\t\t\t\ts.labels.backtosignup = ltw[0];\r\n\t\t\t\t\ts.showreturntosulink = true;\r\n\t\t\t\t\ts.returntosulink = \"/go/\" + s.signup.urlid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Only check for wepayOutage on wepay sign ups\r\n\t\t\tif (s.signupiswepay) {\r\n\t\t\t\ts.wepayOutage = {};\r\n\t\t\t\tgetMerchantOutage(\"wepayOutage\");\r\n\t\t\t}\r\n/* Not currently used. Included here commented out in case we decide to use it in the future\r\n\t\t\telse if s.signupislumapay) {\r\n\t\t\t\ts.lumapayOutage = {};\r\n\t\t\t\tgetMerchantOutage(\"lumapayOutage\");\r\n\t\t\t}\r\n*/\r\n\r\n\t\t\t/** do some randomize ad AB testing on the thank you page **/\r\n\t\t\tif( s.showsegments ){\r\n\t\t\t\ts.hAdWidth = 190;\r\n\t\t\t\ts.containerWidth = win.innerWidth;\r\n\t\t\t\tif( s.containerWidth > 1199 )\r\n\t\t\t\t\ts.hAdWidth = 330;\r\n\r\n\t\t\t\t// remove randomization\r\n\t\t\t\t// var r = Math.floor((Math.random() * 100) + 1);\r\n\t\t\t\t// if( r % 2 === 0 )\r\n\t\t\t\ts.thankYouTemplate = '/view/templates/signups/form/altthankyou.html';\r\n\t\t\t}\r\n\r\n\t\t\t// if sign up is RSVP\r\n\t\t\tif( s.isrsvp ){\r\n\t\t\t\ts.formMainTitle = 'My RSVP';\r\n\t\t\t\ts.labels.submitBtn = \"RSVP Now\";\r\n\t\t\t\tif( isD(s.attrs.rsvpid) && s.attrs.rsvpid !== '' ){\r\n\t\t\t\t\ts.editmode = true;\r\n\t\t\t\t\ts.labels.submitBtn = \"Update My RSVP\";\r\n\r\n\t\t\t\t}\r\n\t\t\t\t// defaults\r\n\t\t\t\ts.objForm.rsvpresponse = '';\r\n\t\t\t\ts.objForm.rsvpadult = 0;\r\n\t\t\t\ts.objForm.rsvpchildren = 0;\r\n\t\t\t\ts.objForm.rsvpitems = [];\r\n\t\t\t\ts.objForm.rsvpcomments = '';\r\n\r\n\t\t\t\t// header\r\n\t\t\t\tif( s.objForm.rsvpid > 0 && isD(s.signup.rsvp) ){\r\n\t\t\t\t\ts.objForm.rsvpresponse = s.signup.rsvp.rsvp.toString().toLowerCase();\r\n\t\t\t\t\ts.objForm.rsvpadult = angular.isNumber(s.signup.rsvp.rsvpcount) ? parseInt(s.signup.rsvp.rsvpcount) : 0;\r\n\t\t\t\t\ts.objForm.rsvpchildren = angular.isNumber(s.signup.rsvp.rsvpchildcount) ? parseInt(s.signup.rsvp.rsvpchildcount) : 0;\r\n\t\t\t\t\ts.objForm.rsvpcomments = s.signup.rsvp.comment;\r\n\t\t\t\t\t// if editing and name is different\r\n\t\t\t\t\tif( s.editmode && s.user.loggedin ){\r\n\t\t\t\t\t\tif( s.signup.rsvp.displayfirstname !== '' && (s.user.firstname.toString().trim() != s.signup.rsvp.displayfirstname.toString().trim() || s.user.lastname.toString().trim() != s.signup.rsvp.displaylastname.toString().trim()) ){\r\n\t\t\t\t\t\t\ts.objForm.usealternatename = true;\r\n\t\t\t\t\t\t\ts.objForm.displayfirstname = s.signup.rsvp.displayfirstname;\r\n\t\t\t\t\t\t\ts.objForm.displaylastname = s.signup.rsvp.displaylastname;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( s.editmode && !s.user.loggedin && s.anonymous ){\r\n\t\t\t\t\t\ts.objForm.displayfirstname = s.signup.rsvp.displayfirstname;\r\n\t\t\t\t\t\ts.objForm.displaylastname = s.signup.rsvp.displaylastname;\r\n\t\t\t\t\t\ts.objForm.firstname = s.signup.rsvp.displayfirstname;\r\n\t\t\t\t\t\ts.objForm.lastname = s.signup.rsvp.displaylastname;\r\n\t\t\t\t\t\ts.objForm.email = s.signup.rsvp.email;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// details\r\n\t\t\t\tif( isD(s.signup.rsvpdetails) ){\r\n\t\t\t\t\ts.rsvpdetails = s.signup.rsvpdetails;\r\n\t\t\t\t\ts.rsvpdetails.usetime = (parseInt(s.rsvpdetails.usetime) === 1);\r\n\t\t\t\t\ts.rsvpdetails.dtstarttime = \"\";\r\n\t\t\t\t\ts.rsvpdetails.dtendtime = \"\";\r\n\t\t\t\t\ts.rsvpheader = \"Will you be attending on\";\r\n\t\t\t\t\tif( s.rsvpdetails.starttime !== '' ){\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtstarttime = new Date( s.rsvpdetails.starttime );\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtstarttime = Date.parse( s.rsvpdetails.dtstarttime );\r\n\t\t\t\t\t\t\ts.rsvpheader += \" \" + filter('date')(s.rsvpdetails.dtstarttime, 'EEE') + '., ' + filter('date')(s.rsvpdetails.dtstarttime, s.dateformat );\r\n\t\t\t\t\t\t\tif( s.rsvpdetails.usetime ){\r\n\t\t\t\t\t\t\t\tvar hdrPronouns = s.rsvpdetails.endtime === '' ? \" at \" : \" from \";\r\n\t\t\t\t\t\t\t\ts.rsvpheader += hdrPronouns + (filter('date')(s.rsvpdetails.dtstarttime, 'h:mma' )).toLowerCase();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( s.rsvpdetails.endtime !== '' ){\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtendtime = new Date( s.rsvpdetails.endtime );\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtendtime = Date.parse( s.rsvpdetails.dtendtime );\r\n\t\t\t\t\t\t\tif( s.rsvpdetails.usetime )\r\n\t\t\t\t\t\t\t\ts.rsvpheader += ' - ' + (filter('date')(s.rsvpdetails.dtendtime, 'h:mma' )).toLowerCase();\r\n\r\n\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif( s.editmode ){\r\n\t\t\t\t\t\tvar moddate = new Date();\r\n\t\t\t\t\t\tif( s.signup.closedateutc !== '' && s.closeLock > 0 ){\r\n\t\t\t\t\t\t\tvar lockdatetime = new Date( s.signup.closedateutc );\r\n\t\t\t\t\t\t\ts.editLocked = ( lockdatetime < moddate );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/** for RSVP - this is not available\r\n\t\t\t\t\t\telse if( s.modifyLock > 0 ){\r\n\t\t\t\t\t\t\tvar eventStartTime = new Date( s.rsvpdetails.starttime );\r\n\t\t\t\t\t\t\t\tmoddate.setDate( moddate.getDate() + s.modifyLock );\r\n\t\t\t\t\t\t\ts.editLocked = (moddate > eventStartTime);\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\r\n\t\t\t\t\ts.rsvpheader = s.rsvpheader.trim();\r\n\t\t\t\t\tif( s.rsvpdetails.usetime )\r\n\t\t\t\t\t\ts.rsvpheader += \" \" + s.shortZone + \"?\";\r\n\r\n\t\t\t\t\t\t// check if there are items associated with the rsvp\r\n\t\t\t\t\t\ts.items = isD(s.signup.rsvpdetails.rsvpitems) && angular.isArray(s.signup.rsvpdetails.rsvpitems) ? s.signup.rsvpdetails.rsvpitems : [];\r\n\t\t\t\t\t\titemHandler();\r\n\r\n\t\t\t\t\t\t// if there are items, build the list\r\n\t\t\t\t\t\tif( s.items.length ){\r\n\r\n\t\t\t\t\t\t\t// let's record the initial available quantities\r\n\t\t\t\t\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\t\t\t\t\t// if quantity limit is enabled for items\r\n\t\t\t\t\t\t\t\tif( s.qtyLimitEnabled && s.itemQtyLimit > 0 )\r\n\t\t\t\t\t\t\t\t\ts.rItemQtyLookup[obj.slotitemid] = ( s.itemQtyLimit < obj.availableqty ) ? s.itemQtyLimit : obj.availableqty;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\ts.rItemQtyLookup[obj.slotitemid] = obj.availableqty;\r\n\r\n\t\t\t\t\t\t\t\tif( s.rItemQtyLookup[obj.slotitemid] > 0 )\r\n\t\t\t\t\t\t\t\t\ts.rsvpitemsavailable = true;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif( s.objForm.rsvpid === 0 ){\r\n\t\t\t\t\t\t\t\tif( s.rsvpitemsavailable )\r\n\t\t\t\t\t\t\t\t\ts.addMoreRSVPItem();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tif( isD(s.signup.rsvpdetails.memberitems) && angular.isArray(s.signup.rsvpdetails.memberitems) ){\r\n\r\n\t\t\t\t\t\t\t\t\tangular.forEach( s.signup.rsvpdetails.memberitems, function(obj,key){\r\n\t\t\t\t\t\t\t\t\t\tvar thisAvailableQty = (parseInt(obj.myqty) + s.rItemQtyLookup[obj.slotitemid]);\r\n\t\t\t\t\t\t\t\t\t\tvar temp = {};\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.slotError = '';\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.qtyError = '';\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.commentError = false;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.items = [getItemBySlotItemID( obj.slotitemid )];\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.item = lookupItemBySlotItemID(obj.slotitemid);\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.itemmemberid = obj.itemmemberid;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.slotitemid = obj.slotitemid;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.itemid = lookupItemIdBySlotItemID(obj.slotitemid);\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.mycomment = obj.mycomment;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.myqty = obj.myqty;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.deleted = false;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.availableqty = ( s.qtyLimitEnabled && s.itemQtyLimit > 0 && thisAvailableQty > s.itemQtyLimit ) ? s.itemQtyLimit : thisAvailableQty;\r\n\t\t\t\t\t\t\t\t\t\t\ttemp.qty = qtyLookupBySlotItemID( obj.slotitemid );\r\n\t\t\t\t\t\t\t\t\t\ts.objForm.rsvpitems.push(temp);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif( !s.objForm.rsvpitems.length ){\r\n\t\t\t\t\t\t\t\t\tif( s.rsvpitemsavailable )\r\n\t\t\t\t\t\t\t\t\t\ts.addMoreRSVPItem();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\ts.rsvpitemsavailable = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t} // end rsvpdetails\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// standard sign up\r\n\t\t\t\tif( isD(s.attrs.imid) && s.attrs.imid !== '' ){\r\n\t\t\t\t\ts.editmode = true;\r\n\t\t\t\t\ts.labels.submitBtn = \"Update My Sign Up\";\r\n\t\t\t\t\ts.labels.payLater = \"Update & Pay Later\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// basic form object\r\n\t\t\ts.objForm.listid = s.signup.id;\r\n\t\t\ts.objForm.owner = s.signup.owner;\r\n\t\t\ts.objForm.urlid = s.signup.urlid;\r\n\t\t\ts.objForm.title = s.signup.title;\r\n\r\n\t\t\tif( s.signup.hascustomfields && isD(s.signup.customfields) && angular.isArray(s.signup.customfields) )\r\n\t\t\t\tcustomQuestionHander();\r\n\t\t};\r\n\r\n\t /* Get merchant Outage Info */\r\n\t var getMerchantOutage = function(feature) {\r\n\t var data = { \"feature\": feature };\r\n\t svc.getMerchantOutage(data)\r\n\t .then(function(result){\r\n\t result = util.lowerCaseKeys(result.data);\r\n\t if (result.success){\r\n\t // Handle success\r\n\t s.wepayOutage = result.data;\r\n\t } else {\r\n\t util.showAlert(result.message[0]);\r\n\t }\r\n\t });\r\n\t };\r\n\r\n\r\n\t\t/** requests to get all the sign up information **/\r\n\t\tsvc.getUserInfo()\r\n\t\t\t.then( function( member ){\r\n\t\t\t\tvar r = util.lowerCaseKeys( member );\r\n\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ts.user = r.data.data;\r\n\t\t\t\t\ts.user.loggedin = ( angular.isDefined( s.user.memberid ) && parseInt(s.user.memberid) > 0 );\r\n\t\t\t\t\tvar d = {};\r\n\t\t\t\t\td.fuse = 's.ProcessSignup';\r\n\t\t\t\t\treturn globalService.checkNewAdDirective(d);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then( function( newad ) {\r\n\t\t\t\tvar r = util.lowerCaseKeys( newad );\r\n\t\t\t\tif( resultCheck( r.data ) ){\r\n\t\t\t\t\ts.usenewaddirective = r.data.data;\r\n\r\n\t\t\t\t\tif( s.usenewaddirective ){\r\n\t\t\t\t\t\ts.adconfig.themeid = s.signup.themeid;\r\n\t\t\t\t\t\tvar adnetworks = typeof $rootScope.adnetworkdatafile !== 'undefined' && typeof $rootScope.adnetworkdatafile.networks !== 'undefined' ? $rootScope.adnetworkdatafile.networks : {};\r\n\t\t\t\t\t\ts.adconfig.network = adService.getAdNetwork(s.adconfig,adnetworks);\r\n\t\t\t\t\t}\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t// get attrs\r\n\t\t\t\tvar d = {};\r\n\t\t\t\tif( s.previewOnly ){\r\n\t\t\t\t\td.success = true;\r\n\t\t\t\t\td.message = [];\r\n\t\t\t\t\td.data = {};\r\n\t\t\t\t\td.data.listid = utility.getUrlParamValue('listid') !== 'undefined' ? utility.getUrlParamValue('listid') : 0;\r\n\t\t\t\t\td.data.siid = utility.getUrlParamValue('siid') !== 'undefined' ? utility.getUrlParamValue('siid') : 0;\r\n\t\t\t\t\tvar resp = {};\r\n\t\t\t\t\t\tresp.data = d;\r\n\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\tdeferred.resolve( resp );\r\n\t\t\t\t\treturn deferred.promise;\r\n\t\t\t\t} else {\r\n\t\t\t\t\td.urlid = s.objForm.urlid;\r\n\t\t\t\t\treturn svc.getSignUpFormAttrs(d);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then(function( attrs ){\r\n\t\t\t\tif( s.asyncSuccess ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( attrs );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ts.attrs = r.data.data;\r\n\t\t\t\t\t\ts.objForm.siid = isD( s.attrs.siid ) && s.attrs.siid !== '' ? s.attrs.siid.toString().split(',') : ( isD(s.attrs.siids) && s.attrs.siids !== '' ? s.attrs.siids.toString().split(',') : [] );\r\n\r\n\t\t\t\t\t\tvar d = {};\r\n\t\t\t\t\t\t\td.includeAdvanceDetails = true;\r\n\t\t\t\t\t\tif( s.previewOnly ){\r\n\t\t\t\t\t\t\td.previewOnly = true;\r\n\t\t\t\t\t\t\td.listid = s.attrs.listid;\r\n\t\t\t\t\t\t\td.urlid = '';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\td.urlid = s.attrs.urlid;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( isD(s.attrs.rsvpid) && s.attrs.rsvpid !== '' ){\r\n\t\t\t\t\t\t\td.rsvpid = s.attrs.rsvpid;\r\n\t\t\t\t\t\t\ts.objForm.rsvpid = d.rsvpid;\r\n\t\t\t\t\t\t\tif( isD(s.attrs.token) && s.attrs.token !== '' ){\r\n\t\t\t\t\t\t\t\ts.anonymous = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if( !s.user.loggedin ){\r\n\t\t\t\t\t\t\t\t// will only reach this if the session timed out\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( isD(s.attrs.imid) && s.attrs.imid !== '' ){\r\n\t\t\t\t\t\t\td.imid = s.attrs.imid;\r\n\t\t\t\t\t\t\ts.objForm.imid = d.imid;\r\n\t\t\t\t\t\t\tif( isD(s.attrs.token) && s.attrs.token !== '' ){\r\n\t\t\t\t\t\t\t\ts.anonymous = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if( !s.user.loggedin ){\r\n\t\t\t\t\t\t\t\t// will only reach this if the session timed out\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( s.asyncSuccess )\r\n\t\t\t\t\t\t\treturn signupPageService.getsignup( d );\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tutil.showMagnificAlert('Your session has expired. Login again to edit your sign up.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then( function( signup ){\r\n\t\t\t\tif( s.asyncSuccess ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( signup );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ts.signup = r.data.data;\r\n\r\n\t\t\t\t\t\tif( !angular.isDefined(s.signup.id) || parseInt(s.signup.id) === 0 ){\r\n\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\tutil.showMagnificAlert('The sign up is no longer available.');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// If the sign up is valid, fetch the script tag for the invisible info as soon as possible, and mount it into the dom\r\n\t\t\t\t\t\t\tif (s.signup.signupprotection) {\r\n\t\t\t\t\t\t\t\tglobalService.getInvisibleReCaptcha(s.signup.owner).then(function(recaptchaResponse) {\r\n\t\t\t\t\t\t\t\t\tvar response = util.lowerCaseKeys( recaptchaResponse );\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tif (util.ajaxResultInvalid(response)) {\r\n\t\t\t\t\t\t\t\t\t\t// If we fail to get the recaptcha script from the server, we just let the user sign up as usual.\t\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ts.invisibleRecaptcha = sce.trustAsHtml(response.data.data.snippet);\r\n\t\t\t\t\t\t\t\t\t\ts.recaptchaActive = response.data.data.snippet.length ? true : false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tsetFormElements();\r\n\t\t\t\t\t\t\tif( !s.objForm.siid.length && !s.isrsvp ){\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t\ts.noSlotSelected();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\ts.signupLoaded = true;\r\n\t\t\t\t\t\t\t\tvar theme = {};\r\n\t\t\t\t\t\t\t\t\ttheme.themeID = s.signup.themeid;\r\n\t\t\t\t\t\t\t\t\ttheme.listid = s.signup.id;\r\n\t\t\t\t\t\t\t\t\ttheme.returnType = 'class';\r\n\t\t\t\t\t\t\t\treturn signupPageService.getSignupTheme( theme );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then( function( theme ){\r\n\t\t\t\tif( s.asyncSuccess ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( theme );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ts.theme = r.data.data;\r\n\t\t\t\t\t\t/** build dynamic classes **/\r\n\t\t\t\t\t\ts.createSignUpStyle();\r\n\t\t\t\t\t\t/** get the items the member is sign up for **/\r\n\t\t\t\t\t\tif( parseInt(s.signup.usersvp) !== 1 ){\r\n\t\t\t\t\t\t\tvar d = {};\r\n\t\t\t\t\t\t\t\td.listid = s.signup.id;\r\n\t\t\t\t\t\t\t\td.siid = s.objForm.siid;\r\n\t\t\t\t\t\t\t\td.hasProductImages = typeof s.signup.productimages !== 'undefined' ? s.signup.productimages : false;\r\n\t\t\t\t\t\t\tif( isD(s.attrs.imid) && s.attrs.imid !== '' ){\r\n\t\t\t\t\t\t\t\td.imid = s.attrs.imid;\r\n\t\t\t\t\t\t\t\ts.objForm.imid = d.imid;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn svc.getSignUpFormItems( d );\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\t.then( function( items ){\r\n\t\t\t\tif( s.asyncSuccess && typeof items !== \"undefined\" ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( items );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ts.items = angular.isArray(r.data.data) ? r.data.data : [];\r\n\t\t\t\t\t\titemHandler();\r\n\r\n\t\t\t\t\t\t// if wepay and have paymentitems\r\n\t\t\t\t\t\tif( s.signupiswepay && s.hasPayItems ){\r\n\t\t\t\t\t\t\tif( navigator.userAgent.indexOf(\"MSIE 7\") >= 0 || navigator.userAgent.indexOf(\"MSIE 8\") >= 0 || navigator.userAgent.indexOf(\"MSIE 9\") >= 0 ){\r\n\t\t\t\t\t\t\t\ts.errormessage = 'Your browser is not currently supported. The minimum version of Internet Explorer we support is version 10. Alternately, you can use other browsers like Chrome or FireFox.';\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t\ts.signupLoaded = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if( !navigator.cookieEnabled ){\r\n\t\t\t\t\t\t\t\ts.errormessage = \"Oops! Looks like your browser's cookies are turned off. Our application requires that the cookie functionality must be turned on.\";\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t\ts.signupLoaded = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if( s.signupislumapay && s.hasPayItems ) {\r\n\t\t\t\t\t\t\t// if lumapay and have paymentitems\r\n/* TO DO: Check for incompatibale browsers */\r\n\t\t\t\t\t\t\tif( navigator.userAgent.indexOf(\"MSIE \") >= 0 ){\r\n\t\t\t\t\t\t\t\ts.errormessage = 'Your browser is not currently supported. LumaPay payments are not supported in Internet Explorer. You can use other browsers like Chrome or FireFox.';\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t\ts.signupLoaded = false;\r\n\t\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}\r\n\t\t\t})\r\n\t\t\t.then( function( wpresponse ){\r\n\t\t\t\tif( s.asyncSuccess ){\r\n\t\t\t\t\tif( typeof wpresponse !== \"undefined\" ){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( wpresponse );\r\n\t\t\t\t\t\tif( resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\tsetWePayCookie( r.data.data );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// If the sign up owner requires the user to have an account launch the registration modal.\r\n\t\t\t\t\t\tif( !s.user.loggedin && s.signup.accountrequired ){\r\n\t\t\t\t\t\t\ts.login( true );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ts.initialized = true;\r\n\t\t\t\t\t\trefreshSelectPicker();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ts.initialized = true;\r\n\t\t\t\t\trefreshSelectPicker();\r\n\t\t\t\t}\r\n\t\t\t\twin.scrollTo(0,0);\r\n\t\t\t});\r\n\r\n\t\t/** helper method **/\r\n\r\n\r\n\t\t/** watch rsvp response **/\r\n\t\ts.$watch(\"objForm.rsvpresponse\",function(nval,oval){\r\n\t\t\ts.labels.signmeupfor = ( nval === 'n' ) ? \"I am not attending the event, but sign me up for:\" : \"Sign me up for:\";\r\n\t\t});\r\n\r\n\t\ts.noSlotSelected = function(){\r\n\t\t\tvar alertWindow = modal.open({\r\n\t\t\t\ttemplateUrl : '/view/templates/signups/form/alert.html',\r\n\t\t\t\tcontroller : 'alertController',\r\n\t\t\t\tresolve : {\r\n\t\t\t\t\tmessage : function(){\r\n\t\t\t\t\t\treturn 'You must select one or more slots to sign up for.';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessagetitle : function(){\r\n\t\t\t\t\t\treturn 'Invalid Request';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\talertWindow.result.then(\r\n\t\t\t\tfunction(){\r\n\t\t\t\t\twin.location.href = s.winorigin + \"/go/\" + s.attrs.urlid;\r\n\t\t\t\t},\r\n\t\t\t\tfunction(){\r\n\t\t\t\t\twin.location.href = s.winorigin + \"/go/\" + s.attrs.urlid;\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\ts.signup_Template = function(){\r\n\t\t\tvar template = s.isrsvp ? 'signupformrsvp' : 'signupformstandard';\r\n\t\t\treturn \"/view/templates/signups/form/\" + lowerCaseIt(template) + \".html\";\r\n\t\t};\r\n\r\n\t\t/** method to create dynamic sign up styles **/\r\n\t\ts.createSignUpStyle = function(){\r\n\t\t\t// this is where our dynamic style container will be\r\n\t\t\tvar styleContainer = angular.element( document.querySelector( '#styleContainer' ) );\r\n\t\t\t// create a style tag containing all the classes\r\n\t\t\tvar dStyles = angular.element( '' );\r\n\t\t\t// append the style to the container\r\n\t\t\tstyleContainer.append( dStyles );\r\n\t\t};\r\n\r\n\t\t/** helper method to create a numeric item array for quantity dropdown **/\r\n\t\ts.getQtyArray = function( item, includezero ){\r\n\t\t\tvar qty = 0;\r\n\t\t\tvar i = [];\r\n\t\t\tvar j = isD( includezero ) ? 0 : 1;\r\n\t\t\tif( angular.isNumber(item) ){\r\n\t\t\t\tqty = item;\r\n\t\t\t} else {\r\n\t\t\t\tqty = item.availableqty;\r\n\t\t\t\tif( item.itemmemberid > 0 && item.myqty > 0 )\r\n\t\t\t\t\tqty = item.myqty + item.availableqty;\r\n\t\t\t\tif( s.qtyLimitEnabled && s.itemQtyLimit > 0 )\r\n\t\t\t\t\tqty = s.itemQtyLimit < qty ? s.itemQtyLimit : qty;\r\n\t\t\t}\r\n\t\t\t// create array\r\n\t\t\tfor( j; j <= qty; j++ )\r\n\t\t\t\ti.push( j );\r\n\r\n\t\t\treturn i;\r\n\t\t};\r\n\r\n\r\n\t\t/** helper method to calculate line item price when applicable **/\r\n\t\ts.calculateLinePrice = function(){\r\n\t\t\ts.totalPrice = 0;\r\n\t\t\ts.servicefee = 0;\r\n\r\n\t\t\tvar numMatch = /^\\d+$/;\r\n\t\t\t// if sign up has a quantity discount, calculate aggregate items\r\n\t\t\tvar calcAggregate = false;\t// flag to determine if calculating aggregates is required\r\n\t\t\tvar qtyArr = [];\t// variable to store aggregate quantities by itemid\r\n\t\t\t// iterate items to determine if quantity discount applicable; set calc flag if so\r\n\t\t\tfor( var i = 0; i < s.items.length; i++ ){\r\n\t\t\t\tif( s.items[i].discountisavailable && s.items[i].discounttype == 'Q'){\r\n\t\t\t\t\tcalcAggregate = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// if flag set, get aggregate quantities selected\r\n\t\t\tif( calcAggregate ){\r\n\t\t\t\tqtyArr = getTotalQuantities(s.items);\r\n\t\t\t}\r\n\r\n\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\tvar _thisPrice,_thisminprice,tempPrice = 0;\r\n\t\t\t\tdelete s.errorMessages['itemqtylimit_' + obj.id];\r\n\t\t\t\tdelete s.errorMessages['priceminimum_' + obj.id];\r\n\t\t\t\tobj.priceError = false;\r\n\t\t\t\tobj.qtyError = false;\r\n\t\t\t\tif( !isD(obj.myqty) || obj.myqty === \"\" || obj.myqty < 0 ){\r\n\t\t\t\t\tobj.qtyError = true;\r\n\t\t\t\t\ts.errorMessage['itemqtylimit_' + obj.id] = 'Quantity must be between 1 and 999999.';\r\n\t\t\t\t}\r\n\t\t\t\telse if( s.arrpaytypes.indexOf( obj.paymenttype ) >= 0 ){\r\n\t\t\t\t\t_thisminprice = isD(obj.minimumamount) ? toFloat(obj.minimumamount).toFixed(2) : 0.00;\r\n\t\t\t\t\t_thisPrice = isD(obj.price) && obj.price !== '' ? toFloat(obj.price) : 0;\r\n\t\t\t\t\ttempPrice = obj.price.toString().replace('$','').replace('.','');\r\n\t\t\t\t\t// verify price is valid\r\n\t\t\t\t\tif( tempPrice.match(numMatch) === null || ( typeof _thisPrice === 'number' && isNaN(_thisPrice) ) ){\r\n\t\t\t\t\t\t// obj.price = null;\r\n\t\t\t\t\t\ts.errorMessages['priceminimum_' + obj.id] = 'Invalid amount. Value must be numeric.';\r\n\t\t\t\t\t\tobj.priceError = true;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif( obj.paymenttype === 'options' ){\r\n\t\t\t\t\t\tobj.price = angular.isObject(obj.paymentOptionSelected) && isD(obj.paymentOptionSelected.value) ? toFloat(obj.paymentOptionSelected.value) : 0.00;\r\n\t\t\t\t\t\t_thisPrice = isD(obj.price) && obj.price !== '' ? toFloat(obj.price) : 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( obj.paymenttype === 'noset' ){\r\n\t\t\t\t\t\t// obj.price = toFloat(obj.price).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( _thisPrice < _thisminprice ){\r\n\t\t\t\t\t\ts.errorMessages['priceminimum_' + obj.id] = 'A minimum amount of ' + s.currency_symbol + _thisminprice + ' is required.';\r\n\t\t\t\t\t\tobj.priceError = true;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// if discount applies, adjust price and total\r\n\t\t\t\t\tif( obj.discountisavailable ){\r\n\t\t\t\t\t\t// if product has a quantity criteria, test to see if it applies\r\n\t\t\t\t\t\tif( obj.discounttype == 'Q' ){\r\n\t\t\t\t\t\t\t// variable to store aggregate quantity for item\r\n\t\t\t\t\t\t\tvar itemTotalQty = 0;\r\n\t\t\t\t\t\t\t// get aggregate quantity being purchased\r\n\t\t\t\t\t\t\tqtyArr.forEach( function(itm){\r\n\t\t\t\t\t\t\t\tif(itm.itemid == obj.itemid){\r\n\t\t\t\t\t\t\t\t\titemTotalQty = itm.myqty;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t// meets quantity criteria\r\n\t\t\t\t\t\t\tif( itemTotalQty >= obj.discountcriteria ){\r\n\t\t\t\t\t\t\t\tobj.paymentAmount = parseInt(obj.myqty) * obj.discountprice;\r\n\t\t\t\t\t\t\t\ts.totalPrice += obj.paymentAmount;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tobj.paymentAmount = parseInt(obj.myqty) * _thisPrice;\r\n\t\t\t\t\t\t\t\ts.totalPrice += obj.paymentAmount;\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// if product has date criteria, apply discount price\r\n\t\t\t\t\t\tif( obj.discounttype == 'D' ){\r\n\t\t\t\t\t\t\t// *****\r\n\t\t\t\t\t\t\t// testing expiration date is overkill here since it is already assessed when setting discountisavailable = true\r\n\t\t\t\t\t\t\t// but adding it in case the date has changed since first page load\r\n\t\t\t\t\t\t\t// *****\r\n\t\t\t\t\t\t\t// if expiration date in the future\r\n\t\t\t\t\t\t\tvar currentDate = new Date();\r\n\t\t\t\t\t\t\t//convert db date into js date - db format is like {d '2018-01-31'}\r\n\t\t\t\t\t\t\tvar temp = obj.discountcriteria.replace(/[{d' }]/g,\"\").split(/[- :]/);\r\n\t\t\t\t\t\t\tvar expirationDate = new Date(temp[0], temp[1]-1, temp[2], \"23\", \"59\", \"59\");\r\n\r\n\t\t\t\t\t\t\t// if discount meets date criteria\r\n\t\t\t\t\t\t\tif( typeof expirationDate.getTime() === 'number' && !isNaN(expirationDate.getTime()) && expirationDate >= currentDate ){\r\n\t\t\t\t\t\t\t\tobj.paymentAmount = parseInt(obj.myqty) * obj.discountprice;\r\n\t\t\t\t\t\t\t\ts.totalPrice += obj.paymentAmount;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\t// no discount applies\r\n\t\t\t\t\t\tobj.paymentAmount = parseInt(obj.myqty) * _thisPrice;\r\n\t\t\t\t\t\ts.totalPrice += obj.paymentAmount;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t// if this is a wepay sign up and there's a rate\r\n\t\t\tif( s.signupiswepay && s.wprate.p > 0 && s.totalPrice > 0){\r\n\t\t\t\t// s.wprate.p & s.wprate.t\r\n\t\t\t\t// if fees being paid by buyer, add service fee\r\n\t\t\t\tif( s.wpfeepayer == 'payer_from_app' ){\r\n\t\t\t\t\ts.servicefee = s.wprate.t + (s.totalPrice * s.wprate.p);\r\n\t\t\t\t}\r\n\t\t\t\ts.totalPrice += s.servicefee;\r\n\t\t\t}\r\n\t\t\t// if this is a lumapay sign up and there's a rate\r\n\t\t\tif( s.signupislumapay && s.lprate.p > 0 && s.totalPrice > 0){\r\n\t\t\t\t// s.lprate.p & s.wlprate.t\r\n\t\t\t\t// if fees being paid by buyer, add service fee\r\n\t\t\t\tif( s.lpfeepayer == 'payer_from_app' ){\r\n\t\t\t\t\ts.servicefee = s.lprate.t + (s.totalPrice * s.lprate.p);\r\n\t\t\t\t}\r\n\t\t\t\ts.totalPrice += s.servicefee;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\ts.setPriceTwoDecimals = function() {\r\n\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\t// convert only when there are no errors\r\n\t\t\t\tif( !obj.priceError && !obj.qtyError ){\r\n\t\t\t\t\tobj.price = toFloat(obj.price).toFixed(2);\r\n\t\t\t\t\tobj.minimumamount = toFloat(obj.minimumamount).toFixed(2);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/** method to check if an error exist for a given form element **/\r\n\t\ts.errorExists = function( elem ){\r\n\t\t\treturn (elem in s.errorMessages );\r\n\t\t};\r\n\r\n\t\t/** method returns the error message for a given element **/\r\n\t\ts.getError = function( elem ){\r\n\t\t\treturn (elem in s.errorMessages ) ? s.errorMessages[elem] : '';\r\n\t\t};\r\n\r\n\t\t/** logout method **/\r\n\t\ts.logout = function(){\r\n\t\t\tif(s.previewOnly )\r\n\t\t\t\treturn;\r\n\t\t\ts.asyncSuccess = true;\r\n\t\t\tauthSvc.logoutUser()\r\n\t\t\t\t.then( function( response ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ts.user = {};\r\n\t\t\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t\t\tsignupPageService.setMemberInfo({});\r\n\t\t\t\t\t\t\tsvc.cachedMemberinfo = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ts.user.loggedin = false;\r\n\t\t\t\t\t\tif( isD(s.attrs.thismemberid) )\r\n\t\t\t\t\t\t\tdelete s.attrs.thismemberid;\r\n\t\t\t\t\t\tif( isD(s.attrs.mid) )\r\n\t\t\t\t\t\t\tdelete s.attrs.mid;\r\n\r\n\t\t\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\t\t\tif( isD(s.attrs.rsvpid) && s.attrs.rsvpid !== '' )\r\n\t\t\t\t\t\t\t\tdelete s.attrs.rsvpid;\r\n\t\t\t\t\t\t\tif( isD(s.objForm.rsvpid) && s.objForm.rsvpid > 0 )\r\n\t\t\t\t\t\t\t\ts.objForm.rsvpid = 0;\r\n\r\n\t\t\t\t\t\t\tif( isD(s.objForm.rsvpitems) && angular.isArray(s.objForm.rsvpitems) ){\r\n\t\t\t\t\t\t\t\tangular.forEach(s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\t\t\t\t\t\tif( isD(obj.itemmemberid) && obj.itemmemberid > 0 )\r\n\t\t\t\t\t\t\t\t\t\tobj.itemmemberid = 0;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// update upper main navivation menus\r\n\t\t\t\t\t\tupdateMenu();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\twindow.sugTagManager.reset();\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\t/** login method **/\r\n\t\ts.login = function( required ){\r\n\t\t\t// if the sign up is white-labeled, then we don't want the user to login at all\r\n\t\t\tif( typeof s.signupinfo == 'undefined' || s.signupinfo.removebranding == false ){\r\n\t\t\t\tvar loginRequired = typeof required !== 'undefined' ? required : false;\r\n\t\t\t\tvar loginWindow = modal.open({\r\n\t\t\t\t\ttemplateUrl : '/view/templates/main/login.html',\r\n\t\t\t\t\tcontroller : 'authenticationController',\r\n\t\t\t\t\tresolve : {\r\n\t\t\t\t\t\tloginRequired : function(){\r\n\t\t\t\t\t\t\treturn loginRequired;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tloginMessage: function(){\r\n\t\t\t\t\t\t\treturn 'For added security, the sign up creator requires you to have an account at SignUpGenius to sign up. Login or register below to continue.';\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tregister: function(){\r\n\t\t\t\t\t\t\treturn ( !s.user.loggedin && s.signup.accountrequired );\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tregisterDisabled: function () {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tloginWindow.result.then(\r\n\t\t\t\t\tfunction( response ){\r\n\t\t\t\t\t\tvar r = response;\r\n\t\t\t\t\t\tif( isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD( r.data.memberid ) && parseInt(r.data.memberid) > 0 ){\r\n\t\t\t\t\t\t\ts.user = r.data;\r\n\t\t\t\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t\t\t\t// Updated cached member info\r\n\t\t\t\t\t\t\t\tsignupPageService.setMemberInfo(s.user);\r\n\t\t\t\t\t\t\t\tsvc.cachedMemberinfo = s.user;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ts.user.loggedin = true;\r\n\t\t\t\t\t\t\t// update upper main navivation menus\r\n\t\t\t\t\t\t\tupdateMenu();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\ts.register = function(){\r\n\t\t\tvar loginWindow = modal.open({\r\n\t\t\t\ttemplateUrl : '/view/templates/main/login.html',\r\n\t\t\t\tcontroller : 'authenticationController',\r\n\t\t\t\tresolve : {\r\n\t\t\t\t\tloginRequired : function(){\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tloginMessage: function(){\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tregister: function(){\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tregisterDisabled: function () {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tloginWindow.result.then(\r\n\t\t\t\tfunction( response ){\r\n\t\t\t\t\tvar r = response;\r\n\t\t\t\t\tif( isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD( r.data.memberid ) && parseInt(r.data.memberid) > 0 ){\r\n\t\t\t\t\t\ts.user = r.data;\r\n\t\t\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t\t\t// Updated cached member info\r\n\t\t\t\t\t\t\tsignupPageService.setMemberInfo(s.user);\r\n\t\t\t\t\t\t\tsvc.cachedMemberinfo = s.user;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\ts.user.loggedin = true;\r\n\t\t\t\t\t\t// update upper main navivation menus\r\n\t\t\t\t\t\tupdateMenu();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\t/** select input handlers **/\r\n\t\ts.selectHandler = function( q ){\r\n\t\t\tvar id = q.myvalue;\r\n\t\t\tvar cid = 0;\r\n\r\n\t\t\t// the only handler we have for now is the state/country selection\r\n\t\t\tif( lowerCaseIt(q.fieldname) === 'state' ){\r\n\t\t\t\tid = q.myvalue;\r\n\t\t\t\tcid = 0;\r\n\t\t\t\ts.selectedState = q.myvalue;\r\n\t\t\t\tangular.forEach( q.fieldvalues, function(obj,key){\r\n\t\t\t\t\tif( id == obj.optionval )\r\n\t\t\t\t\t\tcid = obj.countryid;\r\n\t\t\t\t});\r\n\t\t\t\tif( cid !== undefined && cid > 0 ){\r\n\t\t\t\t\tangular.forEach( s.cq_address, function(obj,key){\r\n\t\t\t\t\t\tif( obj.fieldname.toString().toLowerCase() === 'country' )\r\n\t\t\t\t\t\t\tobj.myvalue = cid;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if( lowerCaseIt(q.fieldname) === 'country' ){\r\n\t\t\t\tcid = q.myvalue;\r\n\t\t\t\ts.selectedCountry = cid;\r\n\t\t\t\ts.filterStates();\r\n\t\t\t\t// hard exception for US and Canada\r\n\t\t\t\tif( cid == 37 || cid == 223 ){\r\n\t\t\t\t\ts.disableState = false;\r\n\t\t\t\t\tangular.forEach( s.cq_address, function(obj,key){\r\n\t\t\t\t\t\tif( obj.fieldname.toString().toLowerCase() === 'state' && obj.myvalue !== '' ){\r\n\t\t\t\t\t\t\tif( obj.myvalue == 'NA' ){\r\n\t\t\t\t\t\t\t\tobj.myvalue = '';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if( cid == 37 ){\r\n\t\t\t\t\t\t\t\t// validate against canada states\r\n\t\t\t\t\t\t\t\tif( s.canadianStates.indexOf(obj.myvalue) < 0 )\r\n\t\t\t\t\t\t\t\t\tobj.myvalue = '';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if( cid == 223 ){\r\n\t\t\t\t\t\t\t\t// validate against us states\r\n\t\t\t\t\t\t\t\tif( s.usStates.indexOf(obj.myvalue) < 0 )\r\n\t\t\t\t\t\t\t\t\tobj.myvalue = '';\r\n\t\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}\r\n\t\t\t\telse {\r\n\t\t\t\t\ts.disableState = true;\r\n\t\t\t\t\tangular.forEach( s.cq_address, function(obj,key){\r\n\t\t\t\t\t\tif( obj.fieldname.toString().toLowerCase() === 'state' ){\r\n\t\t\t\t\t\t\tobj.myvalue = 'NA';\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\trefreshSelectPicker();\r\n\t\t};\r\n\r\n\t\t/** helper method to filter states **/\r\n\t\ts.filterStates = function(){\r\n\t\t\ts.filteredStates = [];\r\n\t\t\tif( s.selectedCountry == 37 || s.selectedCountry == 223 ){\r\n\t\t\t\tangular.forEach( s.states, function(obj,key){\r\n\t\t\t\t\tif( obj.optionval === '' )\r\n\t\t\t\t\t\ts.filteredStates.unshift( obj );\r\n\t\t\t\t\telse if( obj.optionval === 'NA' )\r\n\t\t\t\t\t\ts.filteredStates.splice( 1,0,obj );\r\n\t\t\t\t\telse if( obj.countryid == s.selectedCountry )\r\n\t\t\t\t\t\ts.filteredStates.push( obj );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tangular.copy( s.states, s.filteredStates );\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/** method for transposing some specific labels **/\r\n\t\ts.cq_label = function( label ){\r\n\t\t\tvar field_name = label;\r\n\t\t\tswitch ( lowerCaseIt(field_name) ){\r\n\t\t\t\tcase 'address1':\r\n\t\t\t\t\tfield_name = 'Address 1';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'address2':\r\n\t\t\t\t\tfield_name = 'Address 2';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'phonetype':\r\n\t\t\t\t\tfield_name = 'Phone Type';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'zipcode':\r\n\t\t\t\t\tfield_name = 'Postal Code';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'state':\r\n\t\t\t\t\tfield_name = 'State/Province';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn field_name;\r\n\t\t};\r\n\r\n\t\t/** form presentation for some specific types **/\r\n\t\ts.showHorizontal = function( label ){\r\n\t\t\tvar fields = ['address1','address2','city','state','zipcode','country','phone','phonetype'];\r\n\t\t\treturn fields.indexOf( lowerCaseIt(label) ) >= 0 ? true : false;\r\n\t\t};\r\n\r\n\t\ts.cq_Template = function( type ){\r\n\t\t\tif( type.toLowerCase() === 'address1' || type.toLowerCase() === 'address2' || type.toLowerCase() === 'city' || type.toLowerCase() === 'zipcode' )\r\n\t\t\t\ttype = 'Text';\r\n\t\t\telse if( type.toLowerCase() === 'country' || type.toLowerCase() === 'state' )\r\n\t\t\t\ttype = 'Select';\r\n\t\t\treturn \"/view/templates/signups/form/cq_\" + lowerCaseIt(type) + \".html\";\r\n\t\t};\r\n\r\n\t\ts.getMaxVal = function( val ){\r\n\t\t\treturn ( parseInt(val) === 0 ) ? \"\" : val;\r\n\t\t};\r\n\r\n\t\t/** sign up process **/\r\n\t\ts.ProcessSignUp = function( paylater ){\t\t\t\r\n\t\t\tif(s.previewOnly )\r\n\t\t\t\treturn;\r\n\t\t\t// reset\r\n\t\t\ts.errorMessages = {};\r\n\t\t\ts.success = true;\r\n\t\t\ts.isProcessing = true;\r\n\r\n\t\t\t// On page load, launch registration modal if the sign up requires an account.\r\n\t\t\tif( !s.user.loggedin && s.signup.accountrequired ){\r\n\t\t\t\ts.login( true );\r\n\t\t\t\ts.isProcessing = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// client-side form validations first\r\n\t\t\tvalidateForm();\r\n\t\t\tif( !s.success ){\r\n\t\t\t\tif (s.recaptchaActive) {\r\n\t\t\t\t\twin.grecaptcha.reset()\r\n\t\t\t\t}\r\n\t\t\t\ts.isProcessing = false;\r\n\t\t\t\twin.scrollTo(0,0);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// validate custom fields if applicable\r\n\t\t\tif( s.signup.hascustomfields ){\r\n\t\t\t\tvalidateCustomFields();\r\n\t\t\t\tif( !s.success ){\r\n\t\t\t\t\ts.isProcessing = false;\r\n\t\t\t\t\twin.scrollTo(0,0);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\r\n\r\n\t\t\t// all valid? sign up!!!\r\n\t\t\tvar data = {};\r\n\t\t\t\tdata = s.objForm;\r\n\t\t\t\tdata.type = (s.isrsvp) ? 'rsvp' : 'standard';\r\n\t\t\t\tdata.source = 'main';\r\n\t\t\t\tif( !s.isrsvp )\r\n\t\t\t\t\tdata.items = s.items;\r\n\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\tdata.slotid = s.rsvpdetails.slotid;\r\n\t\t\t\t\tif( data.rsvpresponse.toString().toLowerCase() === 'n' ){\r\n\t\t\t\t\t\ts.objForm.rsvpadult = 0;\r\n\t\t\t\t\t\ts.objForm.rsvpchildren = 0;\r\n\t\t\t\t\t\tdata.rsvpadult = 0;\r\n\t\t\t\t\t\tdata.rsvpchildren = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tdata.member = s.user;\r\n\t\t\t\tdata.isLoggedin = false;\r\n\t\t\t\tif( s.user.loggedin ){\r\n\t\t\t\t\tdata.isLoggedin = true;\r\n\t\t\t\t\tdata.firstname = s.user.firstname;\r\n\t\t\t\t\tdata.lastname = s.user.lastname;\r\n\t\t\t\t\tif( !s.objForm.usealternatename ){\r\n\t\t\t\t\t\tdata.displayfirstname = s.objForm.firstname;\r\n\t\t\t\t\t\tdata.displaylastname = s.objForm.lastname;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif( !s.objForm.displayfirstname.toString().length )\r\n\t\t\t\t\t\t\tdata.displayfirstname = s.user.firstname;\r\n\t\t\t\t\t\tif( !s.objForm.displaylastname.toString().length )\r\n\t\t\t\t\t\t\tdata.displaylastname = s.user.lastname;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// if the user is not logged in\r\n\t\t\t\t\tdata.displayfirstname = s.objForm.firstname;\r\n\t\t\t\t\tdata.displaylastname = s.objForm.lastname;\r\n\t\t\t\t}\r\n\t\t\t\tif( s.signup.hascustomfields ){\r\n\t\t\t\t\tdata.customFields = [];\r\n\t\t\t\t\tif( s.customFields.length )\r\n\t\t\t\t\t\tdata.customFields = data.customFields.concat(s.customFields);\r\n\t\t\t\t\tif( s.cq_address.length )\r\n\t\t\t\t\t\tdata.customFields = data.customFields.concat(s.cq_address);\r\n\t\t\t\t\tif( s.cq_phone.length ){\r\n\t\t\t\t\t\tvar tmp_cq_phone = [];\r\n\t\t\t\t\t\tangular.copy(s.cq_phone,tmp_cq_phone);\r\n\t\t\t\t\t\tangular.forEach(tmp_cq_phone,function(obj,key){\r\n\t\t\t\t\t\t\tobj.fieldtype = obj.fieldname;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdata.customFields = data.customFields.concat(tmp_cq_phone);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tdata.payLater = false;\r\n\t\t\t\tif( s.hasPayItems && !s.paymentRequired && typeof paylater !== 'undefined' )\r\n\t\t\t\t\tdata.payLater = true;\r\n\r\n\t\t\t\t// SUG-6585: Turning this off for now - per the requirements, it needs to be so that it can be renabled if needed\r\n\t\t\t\t// data.page_experience = win.sug_data.page_experience;\r\n\t\t\t// move the validated data up to the controller scope so that the callback for the recaptcha has access to it\r\n\t\t\ts.validatedData = data;\t\t\t\r\n\t\t\t// Call the recaptcha library\r\n\t\t\ts.executeRecaptcha();\r\n\r\n\t\t};\r\n\r\n\t\t/** When invoking the invisible recaptcha programatically, you need to call the execute() method on the grecaptcha object on the Window object.\r\n\t\t * \r\n\t\t*/\r\n\t\ts.executeRecaptcha = function(data) {\r\n\t\t\t// If the invisible recaptcha feature is enabled, execute the recaptcha\r\n\t\t\tif (s.recaptchaActive) {\r\n\t\t\t\twin.grecaptcha.execute();\r\n\t\t\t} else {\r\n\t\t\t\t// If recaptcha isn't present, submit the validated data as normal.\t\t\t\t\r\n\t\t\t\tsubmitSignupData(s.validatedData)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/** Callback for invisible recaptcha where the user's token is verified and then if accepted, the sign up process is completed. This is attached to the the window object as a global function as the invisible recaptcha requires a globally scoped callback function that it can invoke with a token after the recaptcha service has been contacted.\r\n\t\t * \r\n\t\t * @param {string} token - string token returned passed into the callback by Google's invisible recaptcha client\r\n\t\t */\r\n\t\twin.invokeCallback = function (token) { \r\n\t\t\t// validate the token that the invisible recaptcha passes into this callback function\r\n\t\t\tglobalService.validateInvisibleReCaptcha(token).then(function(validationResponse) {\r\n\t\t\t\tvar response = util.lowerCaseKeys(validationResponse);\r\n\t\t\t\tif (util.ajaxResultInvalid(response)) {\r\n\t\t\t\t\tutil.showMagnificAlert('Invalid captcha response.');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// If the token is valid, process the sign up\r\n\t\t\t\t\tif (response.data.data) {\t\t\t\t\t\r\n\t\t\t\t\t\tsubmitSignupData(s.validatedData)\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Otherwise throw an error modal and prevent the sign up from happening for the user.\r\n\t\t\t\t\t\tutil.showMagnificAlert('Invalid captcha response.');\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\r\n\t\t/** if user is cancelling out of the form - clean up the items in their \"cart\" **/\r\n\t\ts.cancel = function(){\r\n\t\t\tif(s.previewOnly)\r\n\t\t\t\treturn;\r\n\t\t\tsvc.cancelForm()\r\n\t\t\t\t.then( function(response){\r\n\t\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t\t// When using the SPA, return user to base route\r\n\t\t\t\t\t\tlocation.path(\"/\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twin.location.href = s.signup.fullurl + s.pidParam;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\t/** helper method to set item name of the selected item **/\r\n\t\ts.updateSelectedItem = function( item ){\r\n\t\t\tvar deletedItems = [];\r\n\t\t\tvar idx = '';\r\n\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\tif( obj.slotitemid == item.slotitemid ){\r\n\t\t\t\t\titem.item = obj.item;\r\n\t\t\t\t\titem.availableqty = s.rItemQtyLookup[item.slotitemid];\r\n\t\t\t\t\titem.qty = obj.qty;\r\n\t\t\t\t\tif( item.availableqty === 1 )\r\n\t\t\t\t\t\titem.myqty = 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tangular.forEach( s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\tif( obj.deleted && item.slotitemid === obj.slotitemid && obj.itemmemberid > 0 && item.itemmemberid === 0 ){\r\n\t\t\t\t\tidx = key;\r\n\t\t\t\t\titem.itemmemberid = obj.itemmemberid;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif( idx !== '' && idx >= 0 )\r\n\t\t\t\ts.objForm.rsvpitems.splice(idx, 1);\r\n\r\n\t\t\trefreshSelectPicker();\r\n\t\t};\r\n\r\n\t\t/** helper method to create proper label **/\r\n\t\ts.getPaymentOptionLabel = function(option){\r\n\t\t\treturn option.label + ' - ' + s.currency_symbol + toFloat( option.value );\r\n\t\t};\r\n\r\n\t\t/** method for adding empty rows to the rsvp item rows **/\r\n\t\ts.addMoreRSVPItem = function(){\r\n\r\n\t\t\tvar insert = true;\r\n\t\t\tvar arrUnfilled = [];\r\n\t\t\tvar finalUnfilled = [];\r\n\t\t\tvar lookup = {};\r\n\r\n\t\t\t// let's make sure there's only 1 empty row at a time\r\n\t\t\tangular.forEach( s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\tif( !obj.deleted )\r\n\t\t\t\t\tlookup[obj.slotitemid] = true;\r\n\t\t\t\tif( obj.slotitemid === 0 )\r\n\t\t\t\t\tinsert = false;\r\n\t\t\t});\r\n\r\n\t\t\tif( insert ){\r\n\t\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\t\tif( obj.availableqty > 0 )\r\n\t\t\t\t\t\tarrUnfilled.push( obj );\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif( arrUnfilled.length ){\r\n\t\t\t\t\tvar temp = {};\r\n\t\t\t\t\t\ttemp.items = arrUnfilled;\r\n\t\t\t\t\t\ttemp.item = '';\r\n\t\t\t\t\t\ttemp.itemmemberid = 0;\r\n\t\t\t\t\t\ttemp.slotitemid = 0;\r\n\t\t\t\t\t\ttemp.itemid = 0;\r\n\t\t\t\t\t\ttemp.mycomment = '';\r\n\t\t\t\t\t\ttemp.myqty = 0;\r\n\t\t\t\t\t\ttemp.deleted = false;\r\n\t\t\t\t\t\ttemp.availableqty = 0;\r\n\t\t\t\t\t\ttemp.qty = 0;\r\n\t\t\t\t\t\ttemp.slotError = '';\r\n\t\t\t\t\t\ttemp.qtyError = '';\r\n\t\t\t\t\t\ttemp.commentError = false;\r\n\t\t\t\t\ts.objForm.rsvpitems.push(temp);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvar slottitle = s.signup.slottitle.toString().trim() !== '' ? s.signup.slottitle.toString().trim() : \"Available slots\";\r\n\t\t\t\t\tutil.showMagnificAlert( slottitle + ' filled.' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\trefreshSelectPicker();\r\n\t\t};\r\n\r\n\t\t/** method for removing rsvp related items **/\r\n\t\ts.removeRSVPItem = function(item){\r\n\t\t\tvar moreItems = false;\r\n\t\t\tvar idx = s.objForm.rsvpitems.indexOf(item);\r\n\t\t\tif( idx >= 0 ){\r\n\t\t\t\t// if this is an edit and itemmember is defined, we just mark it so we can delete it from the database\r\n\t\t\t\tif( s.objForm.rsvpitems[idx].itemmemberid > 0 )\r\n\t\t\t\t\ts.objForm.rsvpitems[idx].deleted = true;\r\n\t\t\t\telse\r\n\t\t\t\t\ts.objForm.rsvpitems.splice(idx, 1); // we remove the record from the array. no need to do anything in the backend side\r\n\t\t\t}\r\n\r\n\t\t\t// if all elements are removed, insert a blank one.\r\n\t\t\tangular.forEach( s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\tif( !obj.deleted )\r\n\t\t\t\t\tmoreItems = true;\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// create at least a blank item\r\n\t\t\tif( !moreItems )\r\n\t\t\t\ts.addMoreRSVPItem();\r\n\t\t};\r\n\r\n\t\t/** helper method to set rsvp response **/\r\n\t\ts.rsvpMe = function(r){\r\n\t\t\ts.objForm.rsvpresponse = r;\r\n\t\t\tif( r !== 'n' ){\r\n\t\t\t\ttimeout(function(){\r\n\t\t\t\t\tangular.element('.rsvpnumadult').selectpicker('refresh');\r\n\t\t\t\t\tangular.element('.rsvpnumchild').selectpicker('refresh');\r\n\t\t\t\t},0);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/** method for social media sharing **/\r\n\t\ts.share = function( media ){\r\n\t\t\tvar signupurl = isD(s.signup.fullurl) && s.signup.fullurl !== '' ? s.signup.fullurl : encodeURIComponent(s.winorigin + \"/go/\" + s.attrs.urlid);\r\n\t\t\tvar signupimage = s.signup.signupimage !== '' ? encodeURIComponent(s.signup.signupimage) : encodeURIComponent(s.winorigin + \"/images/theme/\" + s.signup.themeid + \"-large.jpg\");\r\n\t\t\tvar mediaurl = '';\r\n\t\t\tvar winsize = '';\r\n\t\t\tvar py = 0;\r\n\t\t\tvar px = 0;\r\n\t\t\tvar tweettext = encodeURIComponent(\"I just signed up on the \" + s.signup.title.toString().trim() + \" page - \");\r\n\t\t\tif( media === 'fb' ){\r\n\t\t\t\twinsize = \"width=640,height=400\";\r\n\t\t\t\tpy = win.top.outerHeight / 2 + win.top.screenY - ( 400 / 2);\r\n\t\t\t\tpx = win.top.outerWidth / 2 + win.top.screenX - ( 640 / 2);\r\n\t\t\t\tmediaurl = \"http://www.facebook.com/sharer/sharer.php?u=\" + signupurl + \"&src=sp\";\r\n\t\t\t}\r\n\t\t\telse if( media === 'pinterest' ){\r\n\t\t\t\twinsize = \"width=740,height=700\";\r\n\t\t\t\tpy = win.top.outerHeight / 2 + win.top.screenY - ( 700 / 2);\r\n\t\t\t\tpx = win.top.outerWidth / 2 + win.top.screenX - ( 740 / 2);\r\n\t\t\t\tmediaurl = \"http://pinterest.com/pin/create/button/?url=\" + signupurl + \"&media=\" + signupimage + \"&description=\" + tweettext + '%20' + signupurl;\r\n\t\t\t}\r\n\t\t\telse if( media === 'twitter' ){\r\n\t\t\t\twinsize = \"width=640,height=320\";\r\n\t\t\t\tpy = win.top.outerHeight / 2 + win.top.screenY - ( 320 / 2);\r\n\t\t\t\tpx = win.top.outerWidth / 2 + win.top.screenX - ( 640 / 2);\r\n\t\t\t\tmediaurl = \"https://twitter.com/share?text=\" + tweettext + \"&url=\" + signupurl;\r\n\t\t\t}\r\n\r\n\t\t\t// open the window\r\n\t\t\twinsize += \",top=\" + py + \",left=\" + px;\r\n\t\t\twin.open(mediaurl,'_blank',winsize);\r\n\t\t};\r\n\r\n\r\n\r\n\r\n\t\t/** method to get ics **/\r\n\t\ts.getICS = function( cal ){\r\n\t\t\tvar icalLink = '';\r\n\t\t\tif( s.isrsvp ){\r\n\t\t\t\ticalLink = cal in s.calLinks ? s.calLinks[cal] : '';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif( cal === 'ical' ){\r\n\t\t\t\t\ticalLink = cal in s.calLinks ? s.calLinks[cal] : '';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif( s.myitems.length === 1 ){\r\n\t\t\t\t\t\ticalLink = s.myitems[0].callink || '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// we will need to do a modal window to show the list of calendars\r\n\t\t\t\t\t\tvar calendarWindow = modal.open({\r\n\t\t\t\t\t\t\ttemplateUrl : '/view/templates/signups/form/multicalendardownload.html',\r\n\t\t\t\t\t\t\tcontroller : 'multicalendarController',\r\n\t\t\t\t\t\t\tresolve : {\r\n\t\t\t\t\t\t\t\titems : function(){\r\n\t\t\t\t\t\t\t\t\treturn s.myitems;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\ticsCal : function(){\r\n\t\t\t\t\t\t\t\t\treturn isD(s.calLinks.ical) ? s.calLinks.ical : '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tcalendarWindow.result.then(\r\n\t\t\t\t\t\t\tfunction( response ){\r\n\t\t\t\t\t\t\t\t// do nothing\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t} // end\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif( icalLink.length )\r\n\t\t\t\twin.open(icalLink);\r\n\t\t};\r\n\r\n\t\ts.getContactInfoValue = function( fieldtype ){\r\n\t\t\tvar contactInfo = s.user.membercontact || {'address1':'','address2':'','city':'','state':'','zipcode':'','country':'','phonetype':'','phone':''};\r\n\t\t\tvar ftype = fieldtype.toString().toLowerCase();\r\n\t\t\treturn isD( contactInfo[ftype] ) ? contactInfo[ftype] : \"\";\r\n\t\t};\r\n\r\n\t\ts.deleteSignUp = function(){\r\n\t\t\tif(s.previewOnly )\r\n\t\t\t\treturn;\r\n\t\t\tvar delUrl = \"/index.cfm?go=s.DeletePerson&id=\" + s.signup.id;\r\n\t\t\tif( s.anonymous )\r\n\t\t\t\tdelUrl += \"&token=\" + s.attrs.token;\r\n\t\t\telse if( s.user.loggedin && s.objForm.imid > 0 )\r\n\t\t\t\tdelUrl += \"&imid=\" + s.objForm.imid + \"&mid=\" + s.user.memberid;\r\n\r\n\t\t\telse\r\n\t\t\t\treturn; // not sure about this scenario yet\r\n\r\n\t\t\t// redirect to the delete page - at some point we'll need to refactor the delete to use a reusable method\r\n\t\t\twin.location.href = delUrl;\r\n\t\t};\r\n\r\n\t\ts.goBackTo = function(){\r\n\t\t\tif(s.previewOnly )\r\n\t\t\t\treturn;\r\n\r\n\t\t\tif( s.showreturntosulink ){\r\n\t\t\t\tvar url = s.backtosignupLink.indexOf('http') == -1 ? \"http://\" + s.backtosignupLink : s.backtosignupLink;\r\n\r\n\t\t\t\tvar alertWindow = modal.open({\r\n\t\t\t\t\ttemplateUrl : '/view/templates/signups/form/backtowebsiteconfirm.html',\r\n\t\t\t\t\tcontroller : 'backToWebsiteController',\r\n\t\t\t\t\tresolve : {\r\n\t\t\t\t\t\tredirect : function(){\r\n\t\t\t\t\t\t\treturn url;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\talertWindow.result.then(\r\n\t\t\t\t\tfunction(){\r\n\t\t\t\t\t\twin.location.href = url;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t// When using the SPA, return user to base route\r\n\t\t\t\t\tlocation.path(\"/\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\twin.location.href = s.winorigin + s.backtosignupLink;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// set/recycle ads\r\n\t\t\tif( s.showsegments && typeof deployads !== 'undefined' ){\r\n\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\tdeployads.push();\r\n\t\t\t\t}, 500);\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\t/** helper method to check if item can be deleted **/\r\n\t\ts.canDelete = function(){\r\n\t\t\tif( s.isrsvp )\r\n\t\t\t\treturn false;\r\n\r\n\t\t\tif( s.anonymous )\r\n\t\t\t\treturn ( !s.hasPayItems || (s.hasPayItems && !s.hasPaid ) );\r\n\t\t\telse\r\n\t\t\t\treturn ( s.hasPayItems && s.paymentIsPending && !s.hasPaid );\r\n\t\t};\r\n\r\n\t\t/** helper method for converting values to float **/\r\n\t\tvar toFloat = function( val ){\r\n\t\t\treturn typeof val !== \"undefined\" && val !== \"\" ? parseFloat( parseFloat(val.toString().replace(',','')).toFixed(2) ) : 0.00;\r\n\t\t};\r\n\r\n\t\t/** helper method for lower casing strings **/\r\n\t\tvar lowerCaseIt = function( str ){\r\n\t\t\treturn str.toString().toLowerCase().trim();\r\n\t\t};\r\n\r\n\t\t/** helper method for checking if a variable or key is defined **/\r\n\t\tvar isD = function( key ){\r\n\t\t\treturn angular.isDefined( key );\r\n\t\t};\r\n\r\n\t\t/** helper method for creating an input element **/\r\n\t\tvar createInput = function( type, name, value ){\r\n\t\t\tvar input = document.createElement('input');\r\n\t\t\t\tinput.type = type;\r\n\t\t\t\tinput.name = name;\r\n\t\t\t\tinput.value = value;\r\n\t\t\treturn input;\r\n\t\t};\r\n\r\n\t\t/** sign up process response handler **/\r\n\t\tvar processSignUpHander = function( resp ){\r\n\r\n\t\t\t/**\r\n\t\t\t* shared private method for processing completed sign up - this controls presentation of the thank you page\r\n\t\t\t* @param extendedattrs - extendedattributes object for rokt ads, passed through only on wepay signups\r\n\t\t\t**/\r\n\t\t\tvar showThankYou = function(extendedattrs){\r\n\t\t\t\t// Fix the missing extendedattributes in the response from the updated wepay workflow\r\n\t\t\t\tif (isD(extendedattrs) && !isD(resp.extendedattributes)) {\r\n\t\t\t\t\tresp.extendedattributes = extendedattrs;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ts.complete = true;\r\n\t\t\t\ts.containerWidth = win.innerWidth;\r\n\t\t\t\tif( s.containerWidth > 1199 )\r\n\t\t\t\t\ts.hAdWidth = 330;\r\n\r\n\t\t\t\ts.isProcessing = false;\r\n\t\t\t\ts.complete = true;\r\n\t\t\t\ts.name = s.objForm.displayfirstname !== '' ? s.objForm.displayfirstname : s.objForm.firstname;\r\n\t\t\t\ts.memberid = isD(resp.memberid) ? resp.memberid : 0;\r\n\t\t\t\ts.confirmationsent = s.memberid > 0;\r\n\t\t\t\ts.showCalendar = (s.memberid > 0 && !s.nodatesignup);\r\n\t\t\t\ts.calLinks = isD(resp.icals) ? resp.icals : {};\r\n\t\t\t\ts.slotids = '';\r\n\t\t\t\ts.listid = s.signup.id;\r\n\t\t\t\ts.signupowner = s.signup.owner;\r\n\t\t\t\ts.signupcontact = s.signup.contactname;\r\n\t\t\t\ts.isfullmember = isD(resp.fullmember) ? resp.fullmember : ( s.user.loggedin ? true : false );\r\n\t\t\t\t// defaults\r\n\t\t\t\ts.ty = {\r\n\t\t\t\t\t\"response\": \"You're all singed up for \"\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// if there is a retargeting script\r\n\t\t\t\tif( isD(resp.retargetingscripts) && resp.retargetingscripts !== '' ){\r\n\t\t\t\t\tdocument.getElementById(\"retargeting\").innerHTML = '';\r\n\t\t\t\t\tdocument.getElementById(\"retargeting\").innerHTML = resp.retargetingscripts;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\t// rsvp sign up\r\n\t\t\t\t\ts.attending = false;\r\n\t\t\t\t\ts.showrsvpguests = false;\r\n\t\t\t\t\ts.guestString = '';\r\n\t\t\t\t\ts.slotids = resp.slotid;\r\n\t\t\t\t\tvar myresp = lowerCaseIt(s.objForm.rsvpresponse);\r\n\t\t\t\t\tif( myresp === 'y' )\r\n\t\t\t\t\t\ts.ty.response = \"You have responded 'Yes' to \";\r\n\t\t\t\t\telse if( myresp === 'n' )\r\n\t\t\t\t\t\ts.ty.response = \"You have responded 'No' to \";\r\n\t\t\t\t\telse if( myresp === 'm' )\r\n\t\t\t\t\t\ts.ty.response = \"You have responded 'Maybe' to \";\r\n\r\n\t\t\t\t\tif( myresp === 'm' || myresp === 'y' ){\r\n\t\t\t\t\t\ts.attending = true;\r\n\t\t\t\t\t\ts.showrsvpguests = true;\r\n\t\t\t\t\t\tif( s.signup.childrsvp == 1 ){\r\n\t\t\t\t\t\t\tvar adultString = parseInt(s.objForm.rsvpadult) > 1 ? 'Adults' : 'Adult';\r\n\t\t\t\t\t\t\ts.guestString += '(' + s.objForm.rsvpadult + ') ' + adultString + ', ' + '(' + s.objForm.rsvpchildren + ') Children';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\ts.guestString += '(' + s.objForm.rsvpadult + ')';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// build rsvp date/time\r\n\t\t\t\t\ts.editrsvplink = \"/index.cfm?go=s.PreProcessSignup&urlid=\" + s.signup.urlid + \"&RSVPid=\" + resp.rsvpid + \"&ref=\" + s.h;\r\n\t\t\t\t\tif( s.anonymous )\r\n\t\t\t\t\t\ts.editrsvplink += \"&token=\" + s.attrs.token;\r\n\t\t\t\t\ts.rsvpitems = isD( resp.rsvpitems ) && angular.isArray( resp.rsvpitems ) ? resp.rsvpitems : [];\r\n\t\t\t\t\ts.haslocation = (isD(s.rsvpdetails.location) && s.rsvpdetails.location !== '');\r\n\t\t\t\t\ts.rsvplocation = s.haslocation ? s.rsvpdetails.location.toString().trim() : \"\";\r\n\t\t\t\t\ts.rsvpdatetime = \"\";\r\n\t\t\t\t\tif( s.rsvpdetails.starttime !== '' ){\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtstarttime = new Date( s.rsvpdetails.starttime );\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtstarttime = Date.parse( s.rsvpdetails.dtstarttime );\r\n\t\t\t\t\t\t\ts.rsvpdatetime += \" \" + filter('date')(s.rsvpdetails.dtstarttime, 'EEE') + '., ' + filter('date')(s.rsvpdetails.dtstarttime, s.dateformat );\r\n\t\t\t\t\t\t\tif( s.rsvpdetails.usetime ){\r\n\t\t\t\t\t\t\t\tvar hdrPronouns = s.rsvpdetails.endtime === '' ? \" at \" : \" from \";\r\n\t\t\t\t\t\t\t\ts.rsvpdatetime += hdrPronouns + (filter('date')(s.rsvpdetails.dtstarttime, 'h:mma' )).toLowerCase();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( s.rsvpdetails.endtime !== '' ){\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtendtime = new Date( s.rsvpdetails.endtime );\r\n\t\t\t\t\t\t\ts.rsvpdetails.dtendtime = Date.parse( s.rsvpdetails.dtendtime );\r\n\t\t\t\t\t\t\tif( s.rsvpdetails.usetime )\r\n\t\t\t\t\t\t\t\ts.rsvpdatetime += ' - ' + (filter('date')(s.rsvpdetails.dtendtime, 'h:mma' )).toLowerCase();\r\n\r\n\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ts.rsvpdatetime = s.rsvpdatetime.trim();\r\n\t\t\t\t\tif( s.rsvpdetails.usetime )\r\n\t\t\t\t\t\ts.rsvpdatetime += \" \" + s.shortZone;\r\n\r\n\r\n\t\t\t\t\t// ROKT\r\n\t\t\t\t\tif(resp.extendedattributes) {\r\n\t\t\t\t\t\t// Display Rokt Ad\r\n\t\t\t\t\t\tif (resp.extendedattributes.email){\r\n\t\t\t\t\t\t\tadService.initRoktSnippet(resp.extendedattributes);\r\n\t\t\t\t\t\t\tadService.initAdsPostXSnippet(resp.extendedattributes);\r\n\t\t\t\t\t\t\ts.hideBannerAdsForRokt = true; // set this to true moving forward\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Hide Banner Ads\r\n\t\t\t\t\t\t// SUG-6585: Turning this off for now - per the requirements, it needs to be so that it can be renabled if needed\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\tif (resp.extendedattributes.page_experience && resp.extendedattributes.page_experience.indexOf(\"split_segment_off_\") > -1){\r\n\t\t\t\t\t\t\ts.hideBannerAdsForRokt = true;\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\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// standard sign up\r\n\t\t\t\t\tvar gc = isD(s.calLinks.google) ? s.calLinks.google : {};\r\n\t\t\t\t\tvar temp = {};\r\n\t\t\t\t\ts.slotids = [];\r\n\t\t\t\t\tfor( var i in resp.items )\r\n\t\t\t\t\t\ts.slotids.push( resp.items[i].slotid );\r\n\t\t\t\t\ts.slotids = s.slotids.toString();\r\n\t\t\t\t\ts.myitems = [];\r\n\t\t\t\t\tangular.forEach( resp.items, function(obj,key){\r\n\t\t\t\t\t\ttemp = {};\r\n\t\t\t\t\t\ttemp.item = obj.item;\r\n\t\t\t\t\t\ttemp.itemhelp = obj.itemcomment;\r\n\t\t\t\t\t\ttemp.myqty = obj.myqty;\r\n\t\t\t\t\t\ttemp.mycomment = obj.mycomment;\r\n\t\t\t\t\t\ttemp.slotid = obj.slotid;\r\n\t\t\t\t\t\ttemp.slotitemid = obj.slotitemid;\r\n\t\t\t\t\t\ttemp.itemmemberid = obj.itemmemberid;\r\n\t\t\t\t\t\ttemp.location = obj.location;\r\n\t\t\t\t\t\ttemp.slotdatestring = '';\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\ttemp.slotdatestring = filter('date')(obj.dtstarttime, 'EEE') + '., ' + filter('date')(obj.dtstarttime, s.dateformat );\r\n\t\t\t\t\t\t\tif( obj.usetime === 1 )\r\n\t\t\t\t\t\t\t\ttemp.slotdatestring += ' ' + (filter('date')(obj.dtstarttime, 'h:mma' )).toLowerCase();\r\n\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t\tif( obj.usetime === 1 && obj.dtendtime !== '' && obj.dtendtime !== obj.dtstarttime ){\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\ttemp.slotdatestring += ' - ' + (filter('date')(obj.dtendtime, 'h:mma' )).toLowerCase();\r\n\t\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( temp.slotdatestring !== '' && obj.usetime === 1 )\r\n\t\t\t\t\t\t\ttemp.slotdatestring += ' ' + s.shortZone;\r\n\t\t\t\t\t\t// trim it just in case\r\n\t\t\t\t\t\ttemp.slotdatestring = temp.slotdatestring.trim();\r\n\t\t\t\t\t\ttemp.callink = obj.slotid in gc ? gc[obj.slotid] : '';\r\n\t\t\t\t\t\ts.myitems.push( temp );\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif( s.myitems.length == 1 ){\r\n\t\t\t\t\t\ts.editsignuplink = \"/index.cfm?go=s.PreProcessSignup&urlid=\" + s.signup.urlid + \"&siid=\" + s.myitems[0].slotitemid + \"&imid=\" + s.myitems[0].itemmemberid + \"&ref=\" + s.h;\r\n\t\t\t\t\t\tif( s.anonymous )\r\n\t\t\t\t\t\t\ts.editsignuplink += \"&token=\" + s.attrs.token;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t// ROKT\r\n\t\t\t\t\tif(resp.extendedattributes) {\r\n\t\t\t\t\t\t// Display Rokt Ad\r\n\t\t\t\t\t\tif (resp.extendedattributes.email){\r\n\t\t\t\t\t\t\tadService.initRoktSnippet(resp.extendedattributes);\r\n\t\t\t\t\t\t\tadService.initAdsPostXSnippet(resp.extendedattributes);\r\n\t\t\t\t\t\t\ts.hideBannerAdsForRokt = true; // set this to true moving forward\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Hide Banner Ads\r\n\t\t\t\t\t\t// SUG-6585: Turning this method into a private function to disable it - per the requirements, it needs to be so that it can be renabled if needed\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\tif (resp.extendedattributes.page_experience && resp.extendedattributes.page_experience.indexOf(\"split_segment_off_\") > -1){\r\n\t\t\t\t\t\t\ts.hideBannerAdsForRokt = true;\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\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// set/recycle ads\r\n\t\t\t\tif( s.showsegments && typeof deployads !== 'undefined' ){\r\n\t\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\t\tdeployads.push();\r\n\t\t\t\t\t}, 500);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// scroll to top\r\n\t\t\t\twin.scrollTo( 0, 0 );\r\n\t\t\t};\r\n\r\n\t\t\t// helper method for removing incomplete sign up process - typically happens when a payment is cancelled or times out.\r\n\t\t\tvar removeSignupTransaction = function(){\r\n\r\n\t\t\t\t// we should not delete the item when on edit mode\r\n\t\t\t\tif( s.editmode )\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\ts.complete = false;\r\n\t\t\t\tvar arrItems = isD( resp.items ) ? resp.items : s.items;\r\n\t\t\t\tvar data = {}; // get checkoutid, itemmemberids, siids\r\n\t\t\t\tvar paymentConfig = {};\r\n\t\t\t\tif (typeof resp.wepay !== 'undefined') {\r\n\t\t\t\t\tpaymentConfig = resp.wepay;\r\n\t\t\t\t\tdata.signuppaymentid = paymentConfig.signuppaymentid;\r\n\t\t\t\t} else if (typeof resp.lumapay !== 'undefined') {\r\n\t\t\t\t\tpaymentConfig = resp.lumapay;\r\n\t\t\t\t\tdata.signuppaymentid = paymentConfig.signuppaymentid;\r\n\t\t\t\t}\r\n\t\t\t\tdata.listid = isD( resp.listid ) ? resp.listid : s.signup.id;\r\n\t\t\t\tdata.imid = [];\r\n\t\t\t\t// retrieve the itemmberids\r\n\t\t\t\tangular.forEach( arrItems, function(obj,key){\r\n\t\t\t\t\tif( isD(obj.itemmemberid) )\r\n\t\t\t\t\t\tdata.imid.push( obj.itemmemberid );\r\n\t\t\t\t});\r\n\r\n\t\t\t\tsvc.removeSignupTransaction( data )\r\n\t\t\t\t\t.then( function( response ){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// everything is removed. do nothing at this point.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/**\r\n\t\t\t * Helper method to complete the WePay payment sign up transaction\r\n\t\t\t * @param wePayModal {uibModal} - modal instance for the WePay checkout\r\n\t\t\t * @param wepay - wepay return obejct from completeWePayPayment call\r\n\t\t\t * @param extendedattrs - extendedattributes return object fromcompleteWePayPayment call\r\n\t\t\t * */\r\n\t\t\ts.completeWePaySignUp = function( wePayModal, wepay, extendedattrs ){\r\n\r\n\t\t\t\tvar arrItems = isD( resp.items ) ? resp.items : s.items;\r\n\t\t\t\tvar data = {}; // get checkoutid, itemmemberids, siids\r\n\t\t\t\t\tdata.signuppaymentid = wepay.signuppaymentid;\r\n\t\t\t\t\tdata.listid = isD( resp.listid ) ? resp.listid : s.signup.id;\r\n\t\t\t\t\tdata.imid = [];\r\n\r\n\r\n\t\t\t\t// retrieve the itemmberids\r\n\t\t\t\tangular.forEach( arrItems, function(obj,key){\r\n\t\t\t\t\tif( isD(obj.itemmemberid) )\r\n\t\t\t\t\t\tdata.imid.push( obj.itemmemberid );\r\n\t\t\t\t});\r\n\r\n\t\t\t\tsvc.completeSignupTransaction( data )\r\n\t\t\t\t\t.then( function( response ){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\twePayModal.close({success:false});\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\twePayModal.close({success:true});\r\n\t\t\t\t\t\t\tshowThankYou(extendedattrs);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/**\r\n\t\t\t * Helper method to complete the LumaPay payment sign up transaction\r\n\t\t\t * @param LumaPayModal {uibModal} - modal instance for the LumaPay checkout\r\n\t\t\t * @param lumapay - LumaPay return obejct from completeLumaPayPayment call\r\n\t\t\t * @param extendedattrs - extendedattributes return object from completeLumaPayPayment call\r\n\t\t\t * */\r\n\t\t\t s.completeLumaPaySignUp = function( LumaPayModal, lumapay, extendedattrs ){\r\n\r\n\t\t\t\tvar arrItems = isD( resp.items ) ? resp.items : s.items;\r\n\t\t\t\tvar data = {}; // get checkoutid, itemmemberids, siids\r\n\t\t\t\t\tdata.signuppaymentid = lumapay.signuppaymentid;\r\n\t\t\t\t\tdata.listid = isD( resp.listid ) ? resp.listid : s.signup.id;\r\n\t\t\t\t\tdata.imid = [];\r\n\r\n\r\n\t\t\t\t// retrieve the itemmberids\r\n\t\t\t\tangular.forEach( arrItems, function(obj,key){\r\n\t\t\t\t\tif( isD(obj.itemmemberid) )\r\n\t\t\t\t\t\tdata.imid.push( obj.itemmemberid );\r\n\t\t\t\t});\r\n\r\n\t\t\t\tsvc.completeSignupTransaction( data )\r\n\t\t\t\t\t.then( function( response ){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\tLumaPayModal.close({success:false});\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tLumaPayModal.close({success:true});\r\n\t\t\t\t\t\t\tshowThankYou(extendedattrs);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).catch(function(err){\t\t\t\t\t\r\n\t\t\t\t\t\tLumaPayModal.close({success:false});\r\n\t\t\t\t\t\terrorHandler(err);\r\n\t\t\t\t\t\tconsole.err(err);\t\t\t\t\t\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/**\r\n\t\t\t * Helper method to complete the WePay payment\r\n\t\t\t * @param payload - payload returned from the wepay modal containing the credit_card_id needed to complete the checkout process\r\n\t\t\t * @param wePayMoal {uibModal} - modal instance for the WePay checkout\r\n\t\t\t * */\r\n\t\t\ts.completeWePayPayment = function (payload, wePayModal) {\r\n\t\t\t\tvar data = {};\r\n\t\t\t\tdata.iFrameConfig = payload;\r\n\t\t\t\tsvc.completeWePayPayment( data )\r\n\t\t\t\t.then( function( response ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t// Failed checkout attempt.\r\n\t\t\t\t\t\t// Dismiss modal to prevent infinite spinner that prevents user from closing modal\r\n\t\t\t\t\t\twePayModal.dismiss();\r\n\t\t\t\t\t\tutil.showMagnificAlert( 'This sign up cannot process payments at this time. Please contact the sign up creator.');\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t// Set the resposne wepay object to a variable so it easily passed into the completeWePaySignUp call\r\n\t\t\t\t\t\tvar wepay = r.data.data.wepay;\r\n\t\t\t\t\t\tvar extendedattrs = r.data.data.extendedattributes;\r\n\t\t\t\t\t\ts.completeWePaySignUp(wePayModal, wepay, extendedattrs);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/**\r\n\t\t\t * Helper method to complete the LumaPay payment\r\n\t\t\t * @param payload - payload returned from the lumaPay modal needed to complete the checkout process\r\n\t\t\t * @param lumaPayModal {uibModal} - modal instance for the lumaPay checkout\r\n\t\t\t * */\r\n\t\t\t s.completeLumaPayPayment = function (payload, lumaPayModal) {\r\n\t\t\t\tvar data = {};\r\n\t\t\t\tdata.paymentConfig = payload;\r\n\t\t\t\tsvc.completeLumaPayPayment( data )\r\n\t\t\t\t.then( function( response ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t// Failed checkout attempt.\r\n\t\t\t\t\t\t// Dismiss modal to prevent infinite spinner that prevents user from closing modal\r\n\t\t\t\t\t\tlumaPayModal.dismiss();\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t// Set the response lumapay object to a variable so it easily passed into the completeLumaPaySignUp call\r\n\t\t\t\t\t\tvar lumapay = r.data.data.lumapay;\r\n\t\t\t\t\t\tvar extendedattrs = r.data.data.extendedattributes;\r\n\t\t\t\t\t\ts.completeLumaPaySignUp(lumaPayModal, lumapay, extendedattrs);\r\n\t\t\t\t\t}\r\n\t\t\t\t}).catch(function(err){\t\t\t\t\t\r\n\t\t\t\t\t// Failed checkout attempt.\r\n\t\t\t\t\t// Dismiss modal to prevent infinite spinner that prevents user from closing modal\r\n\t\t\t\t\tlumaPayModal.dismiss();\r\n\t\t\t\t\terrorHandler( err );\r\n\t\t\t\t\tconsole.err(err);\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t// LumaPay checkout\r\n\t\t\tif( isD(resp.dopayment) && resp.dopayment && isD(resp.lumapay) ){\r\n\t\t\t\tvar payload = resp.lumapay;\r\n\t\t\t\t// Set payload fields for populating form in iframe\r\n\t\t\t\tpayload.nameOnCard = payload.payerinfo.name;\r\n\t\t\t\tpayload.email = payload.payerinfo.email;\r\n\t\t\t\tpayload.zip = payload.payerinfo.address.postal_code.replace('$strip$_','');\r\n\t\t\t\tpayload.amount = payload.amount;\r\n\t\t\t\tpayload.serviceFee = payload.fee_payer == \"payer_from_app\" ? 1 : 0;\r\n\t\t\t\tpayload.stripeapikey = globalJSService.lumapay.sugpublickey;\r\n\t\t\t\tpayload.stripeapiversion = globalJSService.lumapay.APIVersion;\r\n\r\n\t\t\t\t// Set LumaPay variables for pass through in scope\r\n\t\t\t\ts.environment = globalJSService.secureURL;\r\n\t\t\t\t// Fix environment value for staging environment so desktop checkout modal will load correctly\r\n\t\t\t\tif (s.environment == 'https://www.signupgenius.com' && win.location.hostname == 'staging.signupgenius.com') {\r\n\t\t\t\t\ts.environment = 'https://staging.signupgenius.com';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmodal.open({\r\n\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\tkeyboard: false,\r\n\t\t\t\t\ttemplateUrl: '/view/tools/dsplumapaymodal.html?v=1617022515',\r\n\t\t\t\t\tcontroller: 'lumaPayModalController',\r\n\t\t\t\t\tresolve: {\r\n\t\t\t\t\t\tpayload: function () {\r\n\t\t\t\t\t\t\treturn payload;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tmainScope: function(){\r\n\t\t\t\t\t\t\treturn s; // pass it - don't reach it.\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\t.result.then(function (r) {\r\n\t\t\t\t\t// closed / complete\r\n\t\t\t\t\ts.isProcessing = false;\r\n\t\t\t\t\tif( !r.success )\r\n\t\t\t\t\t\tremoveSignupTransaction();\r\n\r\n\t\t\t\t}, function(r) {\r\n\t\t\t\t\t// x button\r\n\t\t\t\t\ts.isProcessing = false;\r\n\t\t\t\t\tif( typeof r != 'undefined' && !r.success )\r\n\t\t\t\t\t\tremoveSignupTransaction();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t// WePay checkout\r\n\t\t\telse if( isD(resp.dopayment) && resp.dopayment && isD(resp.wepay) ){\r\n\t\t\t\tvar payload = resp.wepay;\r\n\t\t\t\t// Set payload fields for populating form in iframe\r\n\t\t\t\tpayload.nameOnCard = payload.payerinfo.name;\r\n\t\t\t\tpayload.email = payload.payerinfo.email;\r\n\t\t\t\tpayload.zip = payload.payerinfo.address.postal_code.replace('$strip$_','');\r\n\t\t\t\tpayload.amount = payload.amount;\r\n\t\t\t\tpayload.serviceFee = payload.fee_payer == \"payer_from_app\" ? 1 : 0;\r\n\t\t\t\t// Set WePay variables for pass through in scope\r\n\t\t\t\ts.wepayclientid = globalJSService.wepayclientid;\r\n\t\t\t\ts.wepayendpoint = globalJSService.oauthenvironment;\r\n\t\t\t\ts.environment = globalJSService.secureURL;\r\n\t\t\t\t// Fix environment value for staging environment so desktop checkout modal will load correctly\r\n\t\t\t\tif (s.environment == 'https://www.signupgenius.com' && win.location.hostname == 'staging.signupgenius.com') {\r\n\t\t\t\t\ts.environment = 'https://staging.signupgenius.com';\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tmodal.open({\r\n\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\tkeyboard: false,\r\n\t\t\t\t\ttemplateUrl: '/view/tools/dspwepaymodal.html?v=1617022515',\r\n\t\t\t\t\tcontroller: 'wePayModalController',\r\n\t\t\t\t\tresolve: {\r\n\t\t\t\t\t\tpayload: function () {\r\n\t\t\t\t\t\t\treturn payload;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tmainScope: function(){\r\n\t\t\t\t\t\t\treturn s; // pass it - don't reach it.\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\t.result.then(function (r) {\r\n\t\t\t\t\t// closed / complete\r\n\t\t\t\t\ts.isProcessing = false;\r\n\t\t\t\t\tif( !r.success )\r\n\t\t\t\t\t\tremoveSignupTransaction();\r\n\r\n\t\t\t\t}, function(r) {\r\n\t\t\t\t\t// x button\r\n\t\t\t\t\ts.isProcessing = false;\r\n\t\t\t\t\tif( typeof r != 'undefined' && !r.success )\r\n\t\t\t\t\t\tremoveSignupTransaction();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if( isD(resp.dopayment) && resp.dopayment && isD(resp.pobj) ){ // PayPal\r\n\t\t\t\tvar input = '';\r\n\t\t\t\tvar pobj = resp.pobj;\r\n\t\t\t\tvar pdata = pobj.pp_data;\r\n\t\t\t\tvar sanbox = pdata.sandbox.toString().trim();\r\n\t\t\t\t/** create basic form structure **/\r\n\t\t\t\tvar pp_form = document.createElement('FORM');\r\n\t\t\t\t\tpp_form.id = 'paypal';\r\n\t\t\t\t\tpp_form.name = '_xclick';\r\n\t\t\t\t\tpp_form.method = 'POST';\r\n\t\t\t\t\tpp_form.action = 'https://www' + sanbox + '.paypal.com/cgi-bin/webscr';\r\n\t\t\t\t\tif( sanbox !== '' ){\r\n\t\t\t\t\t\tinput = createInput('hidden','test_ipn','1');\r\n\t\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tinput = createInput('hidden','cmd','_cart');\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','upload','1');\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','business',pobj.paypalemailaddress);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','currency_code',pdata.currency_code);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','solutiontype','Sole');\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','custom',pdata.custom);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','cancel_return',pdata.cancel_return);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','return',pdata['return']);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','notify_url',pdata.notify_url);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\tinput = createInput('hidden','cbt',pdata.cbt);\r\n\t\t\t\t\tpp_form.appendChild( input );\r\n\r\n\t\t\t\t/** create member inputs **/\r\n\t\t\t\tif( isD(pobj.member) ){\r\n\t\t\t\t\tvar m = pobj.member;\r\n\t\t\t\t\tvar arrKeys = ['first_name','last_name','address1','address2','city','state','zip','night_phone_a','night_phone_b','night_phone_c','email','bn'];\r\n\t\t\t\t\tangular.forEach( arrKeys, function(obj,key){\r\n\t\t\t\t\t\tif( obj in m ){\r\n\t\t\t\t\t\t\tinput = createInput('hidden',obj,m[obj]);\r\n\t\t\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/** create item inputs **/\r\n\t\t\t\tvar items = isD(pobj.pp_data.items) ? pobj.pp_data.items : []; // shouldn't be empty.\r\n\t\t\t\tangular.forEach( items, function(item,key){\r\n\t\t\t\t\tfor( var k in item ){\r\n\t\t\t\t\t\tinput = createInput('hidden',k,item[k]);\r\n\t\t\t\t\t\tpp_form.appendChild( input );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// submit form\r\n\t\t\t\tdocument.body.appendChild(pp_form);\r\n\t\t\t\tpp_form.submit();\r\n\t\t\t\t// s.isProcessing = false;\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// no payment stuff\r\n\t\t\t\tshowThankYou();\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\r\n\r\n\t\t/** helper method for retrieving item name by slotitemid **/\r\n\t\tvar lookupItemBySlotItemID = function( siid ){\r\n\t\t\tfor( var i in s.items ){\r\n\t\t\t\tif( s.items[i].slotitemid === siid ){\r\n\t\t\t\t\treturn s.items[i].item;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/** helper method for retrieving item id by slotitemid **/\r\n\t\tvar lookupItemIdBySlotItemID = function( siid ){\r\n\t\t\tfor( var i in s.items ){\r\n\t\t\t\tif( s.items[i].slotitemid === siid ){\r\n\t\t\t\t\treturn s.items[i].itemid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar getItemBySlotItemID = function( siid ){\r\n\t\t\tfor( var i in s.items ){\r\n\t\t\t\tif( s.items[i].slotitemid === siid ){\r\n\t\t\t\t\treturn s.items[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar qtyLookupBySlotItemID = function( siid ){\r\n\t\t\tfor( var i in s.items ){\r\n\t\t\t\tif( s.items[i].slotitemid === siid ){\r\n\t\t\t\t\treturn s.items[i].qty;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar getUnfilledRSVPItems = function(){\r\n\t\t\t var retItems = [];\r\n\t\t\t// let's loop through the available items and their quantities and what is applicable to be shown\r\n\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\tif( obj.availableqty > 0 )\r\n\t\t\t\t\tretItems.push( obj );\r\n\t\t\t});\r\n\r\n\t\t\treturn retItems;\r\n\t\t};\r\n\r\n\t\t/** helper method for items **/\r\n\t\tvar itemHandler = function(){\r\n\r\n\t\t\t/** if applicable, loop through items and restructure for output **/\r\n\t\t\tangular.forEach(s.items, function(obj,key){\r\n\t\t\t\tvar _thisptype = '';\r\n\t\t\t\tvar _thisoptions = [];\r\n\t\t\t\tvar _thisprices = [];\r\n\t\t\t\tvar moddate = new Date();\r\n\t\t\t\tobj.itemname = sce.trustAsHtml( obj.item.toString() );\r\n\t\t\t\tif( !isD(obj.myqty) )\r\n\t\t\t\t\tobj.myqty = 0;\r\n\t\t\t\tif( !isD(obj.mycomment) )\r\n\t\t\t\t\tobj.mycomment = '';\r\n\t\t\t\tobj.mydonation = '';\r\n\t\t\t\tobj.priceError = false;\r\n\t\t\t\tobj.commentError = false;\r\n\t\t\t\tobj.slotError = false;\r\n\t\t\t\tobj.paymentAmount = 0;\r\n\t\t\t\tobj.paymentOptions = [];\r\n\t\t\t\tobj.paymentOptionSelected = {};\r\n\t\t\t\tobj.dtstarttime = '';\r\n\t\t\t\tobj.dtendtime = '';\r\n\r\n\t\t\t\t// can show product image if signup is wepay or lumapay or owner has the product images feature; not allowed for rsvp sign ups\r\n\t\t\t\tif( !s.showproductimage && ( (s.signupiswepay || s.signupislumapay) || typeof s.signup.productimages !== 'undefined' && s.signup.productimages ) && !s.isrsvp )\r\n\t\t\t\t\ts.showproductimage = (obj.itemimage.toString().trim() !== '');\t// s.signup.productimages\r\n\t\t\t\tif(obj.starttime !== ''){\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tobj.dtstarttime = new Date( obj.starttime );\r\n\t\t\t\t\t\tobj.dtstarttime = Date.parse( obj.dtstarttime );\r\n\r\n\t\t\t\t\t\tif( !s.isrsvp && s.editmode){\r\n\t\t\t\t\t\t\tif( s.signup.closedateutc !== '' && s.closeLock > 0 && !s.editLocked ){\t//Sign Up Start / Stop Dates\r\n\t\t\t\t\t\t\t\tvar lockdatetime = new Date( s.signup.closedateutc );\r\n\t\t\t\t\t\t\t\ts.editLocked = ( lockdatetime < moddate );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif( s.modifyLock > 0 && !s.editLocked){\t\t\t//Sign Up Locking\r\n\t\t\t\t\t\t\t\tvar eventStartTime = new Date( obj.starttime );\r\n\t\t\t\t\t\t\t\t\tmoddate.setDate( moddate.getDate() + s.modifyLock );\r\n\t\t\t\t\t\t\t\ts.editLocked = (moddate > eventStartTime);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t}\r\n\t\t\t\tif( obj.endtime !== '' ){\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tobj.dtendtime = new Date( obj.endtime );\r\n\t\t\t\t\t\tobj.dtendtime = Date.parse( obj.dtendtime );\r\n\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_thisptype = obj.paymenttype.toString().toLowerCase();\r\n\t\t\t\tif( s.arrpaytypes.indexOf( _thisptype ) >= 0 ){\r\n\t\t\t\t\ts.hasPayItems = true;\r\n\r\n\t\t\t\t\tif( obj.paymentrequired === 1 )\r\n\t\t\t\t\t\ts.paymentRequired = true;\r\n\r\n\t\t\t\t\tif( _thisptype === 'options' && isD(obj.optionnamelist) && isD(obj.optionpricelist) ){\r\n\t\t\t\t\t\t_thisoptions = obj.optionnamelist.split(',');\r\n\t\t\t\t\t\t// make encoded commas readable\r\n\t\t\t\t\t\tfor(var oidx=0;oidx<_thisoptions.length;oidx++){\r\n\t\t\t\t\t\t\tif(_thisoptions[oidx].toString().length){\r\n\t\t\t\t\t\t\t\t_thisoptions[oidx] = _thisoptions[oidx].toString().replace(new RegExp(',','g'),',');\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_thisprices = obj.optionpricelist.split(',');\r\n\t\t\t\t\t\tangular.forEach( _thisoptions, function( opt, key){\r\n\t\t\t\t\t\t\tobj.paymentOptions.push({value:_thisprices[key],label:opt});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif( s.editmode && obj.optionselected !== '' )\r\n\t\t\t\t\t\t\tobj.paymentOptionSelected = obj.paymentOptions[ parseInt(obj.optionselected) - 1 ];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( _thisptype === 'noset' && !s.editmode && (obj.price === '' || obj.price === 0) ){\r\n\t\t\t\t\t\tobj.price = isD(obj.minimumamount) ? toFloat(obj.minimumamount).toFixed(2) : 0.00;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif( s.editmode ){\r\n\t\t\t\t\t\ts.hasPaid = s.hasPaidStatus.indexOf( obj.status.toString().trim().toLowerCase() ) >= 0 ? true : false;\r\n\t\t\t\t\t\ts.paymentIsPending = obj.status.toString().toLowerCase().indexOf('pending') >= 0 ? true : false;\r\n\t\t\t\t\t\tif( _thisptype === 'noset' && angular.isNumber(obj.amountpaid) && (!angular.isNumber(obj.price) || obj.price === 0) && angular.isNumber(obj.myqty) )\r\n\t\t\t\t\t\t\tobj.price = obj.amountpaid / obj.myqty;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( s.editmode && s.user.loggedin && !s.isrsvp ){\r\n\t\t\t\t\tvar dfn = obj.displayfirstname.toString().trim();\r\n\t\t\t\t\tvar dln = obj.displaylastname.toString().trim();\r\n\t\t\t\t\tvar sfn = s.user.firstname.toString().trim();\r\n\t\t\t\t\tvar sln = s.user.lastname.toString().trim();\r\n\t\t\t\t\tif( dfn !== '' && ( sfn != dfn || sln != dln ) ){\r\n\t\t\t\t\t\ts.objForm.usealternatename = true;\r\n\t\t\t\t\t\ts.objForm.displayfirstname = obj.displayfirstname;\r\n\t\t\t\t\t\ts.objForm.displaylastname = obj.displaylastname;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif( s.editmode && !s.user.loggedin && s.anonymous && !s.isrsvp){\r\n\t\t\t\t\ts.objForm.displayfirstname = obj.displayfirstname;\r\n\t\t\t\t\ts.objForm.displaylastname = obj.displaylastname;\r\n\t\t\t\t\ts.objForm.firstname = obj.displayfirstname;\r\n\t\t\t\t\ts.objForm.lastname = obj.displaylastname;\r\n\t\t\t\t\ts.objForm.email = obj.email;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( !s.isrsvp ){\r\n\t\t\t\t\tobj.availableqty = obj.myqty + obj.availableqty;\r\n\t\t\t\t\tif( obj.myqty === 0 || obj.myqty === '' || obj.myqty === null && obj.availableqty > 0 )\r\n\t\t\t\t\t\tobj.myqty = 1;\r\n\t\t\t\t\tif( s.qtyLimitEnabled ){\r\n\t\t\t\t\t\tif( s.itemQtyLimit > 0 )\r\n\t\t\t\t\t\t\tobj.availableqty = ( s.itemQtyLimit < obj.availableqty ) ? s.itemQtyLimit : obj.availableqty;\r\n\t\t\t\t\t\telse if( s.signupQtyLimit > 0 )\r\n\t\t\t\t\t\t\tobj.availableqty = ( s.signupQtyLimit < obj.availableqty ) ? s.signupQtyLimit : obj.availableqty;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// pre-process discount information\r\n\t\t\t\t// set default values\r\n\t\t\t\tobj.discountisavailable = false;\r\n\t\t\t\tobj.discountlabel = \"\";\r\n\r\n\t\t\t\t// if date based discount\r\n\t\t\t\tif( obj.discounttype == 'D' ){\r\n\t\t\t\t\t// if expiration date in the future\r\n\t\t\t\t\tvar currentDate = new Date();\r\n\t\t\t\t\t//convert db date into js date - db format is like {d '2018-01-31'}\r\n\t\t\t\t\tvar temp = obj.discountcriteria.replace(/[{d' }]/g,\"\").split(/[- :]/);\r\n\t\t\t\t\tvar expirationDate = new Date(temp[0], temp[1]-1, temp[2], \"23\", \"59\", \"59\");\r\n\r\n\t\t\t\t\t// if discount meets date criteria\r\n\t\t\t\t\tif( typeof expirationDate.getTime() === 'number' && !isNaN(expirationDate.getTime()) && expirationDate >= currentDate ){\r\n\t\t\t\t\t\tobj.discountisavailable = true;\r\n\t\t\t\t\t\tobj.discountlabel = \"Discount: \" + $filter('currency')( obj.discountprice );\t// + ' ' + s.signup.currency;\r\n\t\t\t\t\t\tobj.discountlabel += \" until \" + $filter('date')(expirationDate,'MM/dd/yyyy');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// if quantity based discount - has no date expiration\r\n\t\t\t\tif( obj.discounttype == 'Q' ){\r\n\t\t\t\t\tobj.discountisavailable = true;\r\n\t\t\t\t\tobj.discountlabel = \"Discount: \" + $filter('currency')( obj.discountprice );\t// + ' ' + s.signup.currency;\r\n\t\t\t\t\tobj.discountlabel += \" for \" + obj.discountcriteria + \" or more\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// let's get the available quantity here - only applicable to items that are not unlimited\r\n\t\t\t\tif( obj.qty > 1 && obj.qty < 999999 ){\r\n\t\t\t\t\tobj.dropdownqty = s.getQtyArray( obj.availableqty );\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\tif( s.hasPayItems ){\r\n\t\t\t\t// if sign up has payment and the creator does not have wepay or paypal\r\n\t\t\t\ts.disablesignup = (!s.signup.ispp && !s.signup.iswp && !s.signup.islp);\r\n\r\n\t\t\t\tif( s.disablesignup ){\r\n\t\t\t\t\ts.signupLoaded = false;\r\n\t\t\t\t\ts.errormessage = 'This sign up cannot process items which require payments at this time. Please contact the sign up creator.';\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ts.tbodyColCt = s.nodatesignup ? 4 : 5;\r\n\t\t\t\ts.labels.submitBtn = \"Sign Up & Pay Now\";\r\n\t\t\t\tif( s.editmode ){\r\n\t\t\t\t\tif( s.paymentIsPending ){\r\n\t\t\t\t\t\ts.labels.submitBtn = !s.hasPaid ? \"Update & Retry Payment\" : \"Update My Sign Up\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ts.labels.submitBtn = !s.hasPaid ? \"Update & Pay Now\" : \"Update My Sign Up\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\ts.labels.payLater = \"Update & Pay Later\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif( s.hasPayItems ){\r\n\t\t\t\ts.tbodyColCt = s.nodatesignup ? 4 : 5;\r\n\t\t\t\tif( s.showproductimage )\r\n\t\t\t\t\ts.tbodyColCt++;\r\n\t\t\t\ts.labels.submitBtn = \"Sign Up & Pay Now\";\r\n\t\t\t\tif( s.editmode ){\r\n\t\t\t\t\tif( s.paymentIsPending ){\r\n\t\t\t\t\t\ts.labels.submitBtn = !s.hasPaid ? \"Update & Retry Payment\" : \"Update My Sign Up\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ts.labels.submitBtn = !s.hasPaid ? \"Update & Pay Now\" : \"Update My Sign Up\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\ts.labels.payLater = \"Update & Pay Later\";\r\n\t\t\t\t}\r\n\t\t\t\t// Force price and minimumprice to display 2 decimal points when page loads.\r\n\t\t\t\ts.setPriceTwoDecimals();\r\n\t\t\t}\r\n\r\n\t\t\t// calculate initial line prices and grand total\r\n\t\t\tif( !s.isrsvp && s.items.length )\r\n\t\t\t\ts.calculateLinePrice();\r\n\r\n\t\t\tif( !s.isrsvp && !s.items.length ){\r\n\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\tutil.showMagnificAlert('The item(s) you are signing up for are no longer available.');\r\n\t\t\t}\r\n\r\n\t\t\t// load the select picker\r\n\t\t\t// refreshSelectPicker();\r\n\t\t};\r\n\r\n\t\t/** helper method for custom questions - we will separate the address and phone from the custom fields array to make it cleaner **/\r\n\t\tvar customQuestionHander = function(){\r\n\t\t\ts.addressRequired = false;\r\n\t\t\ts.phoneRequired = false;\r\n\t\t\ts.canadianStates = [];\r\n\t\t\ts.usStates = [];\r\n\t\t\t// create a deep copy\r\n\t\t\tangular.copy(s.signup.customfields , s.customFields);\r\n\t\t\tvar i = s.customFields.length - 1;\r\n\t\t\tvar type = '';\r\n\t\t\tvar address = ['address1','address2','city','state','zipcode','country'];\r\n\t\t\tvar phone = ['phone','phonetype'];\r\n\t\t\tvar fieldtype = '';\r\n\t\t\tvar fieldvalues = '';\r\n\t\t\tvar temp = {};\r\n\t\t\tvar thisval = '';\r\n\t\t\tvar newitem = true;\r\n\t\t\tvar cq = 0;\r\n\t\t\tfor( i; i >= 0; i-- ){\r\n\t\t\t\ttype = s.customFields[i].fieldname.toString().toLowerCase();\r\n\t\t\t\tfieldtype = s.customFields[i].fieldtype.toString().toLowerCase();\r\n\t\t\t\tfieldvalues = s.customFields[i].fieldvalues;\r\n\r\n\t\t\t\tif( address.indexOf(type) !== -1 ){\r\n\t\t\t\t\tif( type === 'address1' && s.customFields[i].required )\r\n\t\t\t\t\t\ts.addressRequired = true;\r\n\r\n\t\t\t\t\ts.customFields[i].fieldorder = address.indexOf(type);\r\n\t\t\t\t\ts.cq_address.unshift( s.customFields[i] );\r\n\t\t\t\t\ts.customFields.splice(i,1);\r\n\t\t\t\t}\r\n\t\t\t\telse if( phone.indexOf(type) !== -1 ){\r\n\t\t\t\t\tif( type === 'phone' ){\r\n\t\t\t\t\t\ts.customFields[i].fieldtype = 'Text';\r\n\t\t\t\t\t\ts.phoneRequired = s.customFields[i].required;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( type === 'phonetype' ){\r\n\t\t\t\t\t\ts.customFields[i].fieldtype = 'Select';\r\n\t\t\t\t\t}\r\n\t\t\t\t\ts.customFields[i].fieldorder = phone.indexOf(type);\r\n\t\t\t\t\ts.cq_phone.unshift( s.customFields[i] );\r\n\t\t\t\t\ts.customFields.splice(i,1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif( s.cq_address.length ){\r\n\t\t\t\tangular.forEach( s.cq_address, function(obj,key){\r\n\t\t\t\t\tthisval = isD(obj.myvalue) ? obj.myvalue.toString().trim() : \"\";\r\n\t\t\t\t\tnewitem = isD(obj.customdataid) && parseInt(obj.customdataid) > 0 ? false : true;\r\n\t\t\t\t\tif( thisval === '' && !s.editmode && newitem ){\r\n\t\t\t\t\t\tobj.myvalue = s.getContactInfoValue( obj.fieldtype );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( lowerCaseIt(obj.fieldname) === 'state' ){\r\n\t\t\t\t\t\ts.selectedState = thisval;\r\n\t\t\t\t\t\tangular.forEach( obj.fieldvalues, function(o,k){\r\n\t\t\t\t\t\t\tif( isD(o.countryid) && o.countryid !== '' && parseInt(o.countryid) > 0 ){\r\n\t\t\t\t\t\t\t\tif( o.countryid == 223 )\r\n\t\t\t\t\t\t\t\t\ts.usStates.push( o.optionval );\r\n\t\t\t\t\t\t\t\telse if( o.countryid == 37 )\r\n\t\t\t\t\t\t\t\t\ts.canadianStates.push( o.optionval );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\ts.states = obj.fieldvalues;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( lowerCaseIt(obj.fieldname) === 'country' ){\r\n\t\t\t\t\t\ts.selectedCountry = thisval;\r\n\t\t\t\t\t\ts.filterStates();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif( s.cq_phone.length ){\r\n\t\t\t\tangular.forEach( s.cq_phone, function(obj,key){\r\n\t\t\t\t\tthisval = isD(obj.myvalue) ? obj.myvalue.toString().trim() : \"\";\r\n\t\t\t\t\tnewitem = isD(obj.customdataid) && parseInt(obj.customdataid) > 0 ? false : true;\r\n\t\t\t\t\tif( thisval === '' && newitem ){\r\n\t\t\t\t\t\tobj.myvalue = s.getContactInfoValue( obj.fieldname );\r\n\t\t\t\t\t\tif( obj.myvalue === '' && lowerCaseIt(obj.fieldname) === 'phonetype' )\r\n\t\t\t\t\t\t\tobj.myvalue = 'Mobile';\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/** helper method for updating top navigation menu **/\r\n\t\tvar updateMenu = function(){\r\n\t\t\tsvc.getMainNavigation()\r\n\t\t\t\t.then( function(response){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar menu = angular.element( document.querySelector( '#main-nav' ) );\r\n\t\t\t\t\t\t\tmenu.empty(); // remove existing menu\r\n\t\t\t\t\t\t\tmenu.append( r.data.data ); // append the new menu\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\t/** custom questions validations **/\r\n\t\tvar validateCustomFields = function(){\r\n\t\t\tvar reqkeyes = [];\r\n\t\t\tvar addressPopulated = true;\r\n\t\t\tvar phonePopulated = true;\r\n\t\t\tvar stateValue = '';\r\n\t\t\tvar thisValue = '';\r\n\t\t\t// address\r\n\t\t\tif( s.cq_address.length ){\r\n\t\t\t\treqkeyes = ['address1','city','state','zipcode'];\r\n\t\t\t\tangular.forEach( s.cq_address, function(obj,key){\r\n\t\t\t\t\tthisValue = obj.myvalue !== null ? obj.myvalue.toString().trim() : '';\r\n\t\t\t\t\tif( reqkeyes.indexOf( lowerCaseIt(obj.fieldname) ) !== -1 ){\r\n\t\t\t\t\t\t// if value is null\r\n\t\t\t\t\t\tif( thisValue === '' ){\r\n\t\t\t\t\t\t\taddressPopulated = false;\r\n\t\t\t\t\t\t\tif( s.addressRequired ){\r\n\t\t\t\t\t\t\t\ts.errorMessages[obj.id] = '';\r\n\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t\tif( lowerCaseIt(obj.fieldname) === 'state' || lowerCaseIt(obj.fieldname) === 'zipcode' )\r\n\t\t\t\t\t\t\t\t\ts.errorMessages.state_zip = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if( lowerCaseIt(obj.fieldname) === 'state' && thisValue == 'NA' && s.addressRequired && (s.selectedCountry == 37 || s.selectedCountry == 223) ){\r\n\t\t\t\t\t\t\taddressPopulated = false;\r\n\t\t\t\t\t\t\ts.errorMessages.state_zip = true;\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'You must select a valid Sate.';\r\n\t\t\t\t\t\t\ts.success = false;\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\r\n\t\t\t// phone\r\n\t\t\tif( s.cq_phone.length ){\r\n\t\t\t\treqkeyes = ['phone','phonetype'];\r\n\t\t\t\tangular.forEach( s.cq_phone, function(obj,key){\r\n\t\t\t\t\tif( reqkeyes.indexOf( lowerCaseIt(obj.fieldname) ) !== -1 ){\r\n\t\t\t\t\t\tif( obj.myvalue !== null && obj.myvalue.toString().trim() === '' ){\r\n\t\t\t\t\t\t\tif( s.phoneRequired ){\r\n\t\t\t\t\t\t\t\ts.errorMessages.phone = '';\r\n\t\t\t\t\t\t\t\ts.errorMessages[obj.id] = '';\r\n\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tphonePopulated = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/* removing phone validation for now\r\n\t\t\t\t\t\telse if( lowerCaseIt(obj.fieldname) === 'phone' && obj.myvalue !== '' && !util.validatePhone( obj.myvalue ) ){\r\n\t\t\t\t\t\t\ts.errorMessages.phone = '';\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'The phone number you entered is invalid.';\r\n\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\tphonePopulated = false;\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});\r\n\t\t\t}\r\n\r\n\t\t\tif( s.objForm.savecontactinfo && !s.phoneRequired && !phonePopulated ){\r\n\t\t\t\ts.errorMessages.savecontactinfo = s.standardErrors.savecontactinfo;\r\n\t\t\t\ts.success = false;\r\n\t\t\t}\r\n\r\n\t\t\t// others\r\n\t\t\tif( s.customFields.length ){\r\n\t\t\t\tvar ftype, myvalue = '';\r\n\t\t\t\tvar minlen, maxlen = 0;\r\n\t\t\t\tvar matched = false;\r\n\t\t\t\tangular.forEach( s.customFields, function(obj,key){\r\n\t\t\t\t\tftype = lowerCaseIt(obj.fieldtype);\r\n\t\t\t\t\tminlen = angular.isNumber(obj.minval) ? parseInt(obj.minval) : 0;\r\n\t\t\t\t\tmaxlen = angular.isNumber(obj.maxval) ? parseInt(obj.maxval) : 0;\r\n\t\t\t\t\tif( ftype === 'text' ){ // text validations\r\n\t\t\t\t\t\tmyvalue = angular.isDefined(obj.myvalue) && obj.myvalue !== null ? obj.myvalue.toString().trim() : '';\r\n\t\t\t\t\t\tif( obj.required && myvalue === '' )\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = '';\r\n\t\t\t\t\t\telse if( minlen > 0 && myvalue.length < minlen )\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'Your response must be at least ' + minlen + ' characters.';\r\n\t\t\t\t\t\telse if( maxlen > 0 && myvalue.length > maxlen )\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'Your response must not exceed ' + maxlen + ' characters.';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( ftype === 'number' ){ // numeric validations\r\n\t\t\t\t\t\tif( !isD(obj.myvalue) ){\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'Value must be numeric.';\r\n\t\t\t\t\t\t\tobj.myvalue = '';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tmyvalue = obj.myvalue;\r\n\t\t\t\t\t\t\tif( obj.required && myvalue === '' )\r\n\t\t\t\t\t\t\t\ts.errorMessages[obj.id] = '';\r\n\t\t\t\t\t\t\telse if( myvalue !== '' && !angular.isNumber(myvalue) )\r\n\t\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'Value must be numeric.';\r\n\t\t\t\t\t\t\telse if( myvalue !== '' && ( minlen > myvalue || ( maxlen > 0 && myvalue > maxlen ) ) )\r\n\t\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'The value must be numeric and between ' + minlen + ' and ' + maxlen + '.';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( ftype === 'option' || ftype === 'select' ){ // option,select validations\r\n\t\t\t\t\t\tmyvalue = angular.isDefined(obj.myvalue) && obj.myvalue !== null ? obj.myvalue.toString().trim() : '';\r\n\t\t\t\t\t\tif( obj.required && myvalue === '' ){\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = '';\r\n\t\t\t\t\t\t} else if( myvalue !== '' ){\r\n\t\t\t\t\t\t\tangular.forEach( obj.fieldvalues, function( val, key){\r\n\t\t\t\t\t\t\t\tif( myvalue === val.optionval.toString().trim() )\r\n\t\t\t\t\t\t\t\t\tmatched = true;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif( !matched )\r\n\t\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'The option you have selected is invalid.';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( ftype === 'checkbox' ){ // checkbox validations\r\n\t\t\t\t\t\tminlen = obj.minval !== '' ? parseInt(obj.minval) : '';\r\n\t\t\t\t\t\tmaxlen = obj.maxval !== '' ? parseInt(obj.maxval) : '';\r\n\t\t\t\t\t\tvar checked = 0;\r\n\t\t\t\t\t\tangular.forEach( obj.fieldvalues, function( val, key){\r\n\t\t\t\t\t\t\tif( val.ischecked )\r\n\t\t\t\t\t\t\t\tchecked++;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif( obj.required && checked === 0 )\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = '';\r\n\t\t\t\t\t\telse if( minlen !== '' && checked > 0 && checked < minlen )\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'You must select at least ' + minlen + ' item' + (minlen > 1 ? 's.' : '.');\r\n\t\t\t\t\t\telse if( maxlen !== '' && checked > 0 && checked > maxlen )\r\n\t\t\t\t\t\t\ts.errorMessages[obj.id] = 'You must select no more than ' + maxlen + ' item' + (maxlen > 1 ? 's.' : '.');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif( obj.id in s.errorMessages )\r\n\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\t/** standard form validations **/\r\n\t\tvar validateForm = function(){\r\n\t\t\tvar totalQty = 0;\r\n\t\t\tvar hasEmptyRows = false;\r\n\t\t\ts.success = true;\r\n\t\t\ts.errorMessages = {};\r\n\t\t\t// this shouldn't happen, but verify that sign up information is avaialble\r\n\t\t\tif( parseInt(s.objForm.listid) === 0 || parseInt(s.objForm.owner) === 0 || s.objForm.urlid === '' ){\r\n\t\t\t\ts.errorMessages.signup = 'Invalid sign up. Please refresh your page or start the sign up process.';\r\n\t\t\t\ts.success = false;\r\n\t\t\t}\r\n\r\n\t\t\tif( !s.isrsvp && !s.objForm.siid.length ){\r\n\t\t\t\ts.errorMessages.items = 'Invalid sign up. You must select a slot.';\r\n\t\t\t\ts.success = false;\r\n\t\t\t}\r\n\r\n\t\t\t// validate name if not logged in\r\n\t\t\tif( !s.user.loggedin ){\r\n\t\t\t\tif( s.objForm.firstname === '' || elemLenCheck( 'firstname' ) > 50 ){\r\n\t\t\t\t\ts.errorMessages.firstname = elemLenCheck( 'firstname' ) > 50 ? s.standardErrors.firstname_length : '';\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\t\t\t\tif( elemLenCheck( 'lastname' ) > 100 ){\r\n\t\t\t\t\ts.errorMessages.lastname = s.standardErrors.lastname_length;\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\t\t\t\tif( s.emailRequired ){\r\n\t\t\t\t\tif( s.objForm.email === '' ) {\r\n\t\t\t\t\t\ts.errorMessages.email = '';\r\n\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( !angular.isDefined(s.objForm.email) || !utility.validateEmail( s.objForm.email ) ){\r\n\t\t\t\t\t\ts.errorMessages.email = s.standardErrors.email_invalid;\r\n\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if( elemLenCheck( 'email' ) > 100 ){\r\n\t\t\t\t\t\ts.errorMessages.email = s.standardErrors.email_length;\r\n\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// test for google or yahoo groups email address\r\n\t\t\t\tif( typeof s.objForm.email !== 'undefined' && (s.objForm.email.search(/googlegroups.com/i) > -1 || s.objForm.email.search(/yahoogroups.com/i) > -1) ){\r\n\t\t\t\t\ts.errorMessages.email = s.standardErrors.email_disallowed;\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// validate alternate display name\r\n\t\t\tif( s.objForm.usealternatename ){\r\n\t\t\t\tif( s.objForm.displayfirstname === '' || elemLenCheck( 'displayfirstname' ) > 50 ){\r\n\t\t\t\t\ts.errorMessages.displayfirstname = elemLenCheck( 'displayfirstname' ) > 50 ? s.standardErrors.firstname_length : '';\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\t\t\t\tif( elemLenCheck( 'displaylastname' ) > 100 ){\r\n\t\t\t\t\ts.errorMessages.displaylastname = s.standardErrors.lastname_length;\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// if signup is rsvp\r\n\t\t\tif( s.isrsvp ){\r\n\t\t\t\tvar validRSVPs = ['y','n','m'];\r\n\t\t\t\tvar adult = isD(s.objForm.rsvpadult) ? parseInt(s.objForm.rsvpadult) : 0;\r\n\t\t\t\tvar children = isD(s.objForm.rsvpchildren) ? parseInt(s.objForm.rsvpchildren) : 0;\r\n\t\t\t\tif( validRSVPs.indexOf(s.objForm.rsvpresponse) < 0 ){\r\n\t\t\t\t\ts.errorMessages.rsvpresponse = '';\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\t\t\t\t// validate adult count if children is not an option\r\n\t\t\t\tif( (s.objForm.rsvpresponse === 'y' || s.objForm.rsvpresponse === 'm' ) && (adult === 0 && children === 0) ){\r\n\t\t\t\t\ts.errorMessages.rsvpadults = '';\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( isD(s.objForm.rsvpitems) && angular.isArray(s.objForm.rsvpitems) ){\r\n\t\t\t\t\tangular.forEach( s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\t\t\tobj.qtyError = '';\r\n\t\t\t\t\t\tobj.slotError = '';\r\n\t\t\t\t\t\tobj.commentError = false;\r\n\t\t\t\t\t\tif( (obj.slotitemid === null || !isD(obj.slotitemid)) && !obj.deleted && ( obj.myqty > 0 || obj.mycomment.toString().trim().length) ){\r\n\t\t\t\t\t\t\tobj.slotError = 'You must select an item.';\r\n\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( obj.slotitemid > 0 && (!angular.isNumber(obj.myqty) || parseInt(obj.myqty) === 0) ){\r\n\t\t\t\t\t\t\tobj.qtyError = 'Invalid quantity.';\r\n\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( s.commentsRequired && obj.slotitemid > 0 && !obj.deleted && !obj.mycomment.toString().trim().length ){\r\n\t\t\t\t\t\t\tobj.commentError = true;\r\n\t\t\t\t\t\t\ts.success = false;\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\r\n\t\t\tif( !s.success )\r\n\t\t\t\treturn;\r\n\r\n\t\t\t// basic quantity and comments check\r\n\t\t\tif( !s.isrsvp ){\r\n\t\t\t\tangular.forEach(s.items, function(obj,key){\r\n\t\t\t\t\tobj.commentError = false;\r\n\t\t\t\t\tobj.qtyError = false;\r\n\t\t\t\t\tif( !isD(obj.myqty) || obj.myqty === null ){\r\n\t\t\t\t\t\tobj.qtyError = true;\r\n\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( s.commentsRequired && !obj.mycomment.toString().trim().length ){\r\n\t\t\t\t\t\tobj.commentError = true;\r\n\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif( !s.success )\r\n\t\t\t\treturn;\r\n\r\n\t\t\t// comments or qty limit checks\r\n\t\t\tif( s.qtyLimitEnabled || s.hasPayItems ){\r\n\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\thasEmptyRows = false;\r\n\t\t\t\t\t// RSVP\r\n\t\t\t\t\tangular.forEach( s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\t\t\tobj.slotError = '';\r\n\t\t\t\t\t\tif( obj.slotitemid === 0 ){\r\n\t\t\t\t\t\t\thasEmptyRows = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// quantity limit\r\n\t\t\t\t\t\t\tif( s.qtyLimitEnabled ){\r\n\t\t\t\t\t\t\t\tif( s.signupQtyLimit > 0 ){\r\n\t\t\t\t\t\t\t\t\ttotalQty += parseInt(obj.myqty);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if( s.itemQtyLimit > 0 && obj.qtyError === '' ){\r\n\t\t\t\t\t\t\t\t\tobj.qtyError = '';\r\n\t\t\t\t\t\t\t\t\tif( parseInt(obj.myqty) > s.itemQtyLimit ){\r\n\t\t\t\t\t\t\t\t\t\tobj.qtyError = \"Quantity limit is set to \" + s.itemQtyLimit + \".\";\r\n\t\t\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// remove any empty rows the user added\r\n\t\t\t\t\tif( hasEmptyRows ){\r\n\t\t\t\t\t\tvar i = s.objForm.rsvpitems.length - 1;\r\n\t\t\t\t\t\tfor( i; i >= 0; i-- ){\r\n\t\t\t\t\t\t\tif( s.objForm.rsvpitems[i].slotitemid === 0 && s.objForm.rsvpitems[i].item === '' )\r\n\t\t\t\t\t\t\t\ts.objForm.rsvpitems.splice(i,1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( !s.objForm.rsvpitems.length )\r\n\t\t\t\t\t\t\ts.addMoreRSVPItem();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Standard\r\n\t\t\t\t\tangular.forEach(s.items, function(obj,key){\r\n\t\t\t\t\t\tvar _thisminprice = 0;\r\n\r\n\t\t\t\t\t\t// quantity limit\r\n\t\t\t\t\t\tif( s.qtyLimitEnabled ){\r\n\t\t\t\t\t\t\tif( s.signupQtyLimit > 0 ){\r\n\t\t\t\t\t\t\t\ttotalQty += parseInt(obj.myqty);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if( s.itemQtyLimit > 0 ){\r\n\t\t\t\t\t\t\t\tobj.qtyError = false;\r\n\t\t\t\t\t\t\t\tif( parseInt(obj.myqty) > s.itemQtyLimit ){\r\n\t\t\t\t\t\t\t\t\tobj.qtyError = true;\r\n\t\t\t\t\t\t\t\t\ts.errorMessages['itemqtylimit_' + obj.id] = \"Quantity limit is set to \" + s.itemQtyLimit + \".\";\r\n\t\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// minimum amount\r\n\t\t\t\t\t\tobj.priceError = false;\r\n\t\t\t\t\t\tif( s.arrpaytypes.indexOf( obj.paymenttype ) >= 0 ){\r\n\t\t\t\t\t\t\t_thisminprice = isD(obj.minimumamount) ? toFloat(obj.minimumamount).toFixed(2) : 0.00;\r\n\t\t\t\t\t\t\tif( toFloat(obj.price) < _thisminprice ){\r\n\t\t\t\t\t\t\t\ts.errorMessages['priceminimum_' + obj.id] = 'A minimum amount of ' + s.currency_symbol + _thisminprice + ' is required.';\r\n\t\t\t\t\t\t\t\tobj.priceError = true;\r\n\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// verify that when payment type use choices, the user must select one option.\r\n\t\t\t\t\t\t\tif( !obj.priceError && obj.paymenttype.toString().toLowerCase() === 'options' ){\r\n\t\t\t\t\t\t\t\tif( !angular.isObject(obj.paymentOptionSelected) || !isD(obj.paymentOptionSelected.value) ){\r\n\t\t\t\t\t\t\t\t\ts.errorMessages['priceminimum_' + obj.id] = 'You must select one of the options.';\r\n\t\t\t\t\t\t\t\t\tobj.priceError = true;\r\n\t\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t} // end standard\r\n\r\n\t\t\t\tif( s.qtyLimitEnabled && s.signupQtyLimit > 0 && totalQty > s.signupQtyLimit ){\r\n\t\t\t\t\ts.errorMessages.signupqtylimit = true;\r\n\t\t\t\t\ts.success = false;\r\n\t\t\t\t\tutil.showMagnificAlert('You have exceeded the quantity limit set up by the sign up creator. You are not allowed to sign up for more than ' + s.signupQtyLimit + ' ' + (s.signupQtyLimit == 1 ? 'item' : 'total items') + ' on this sign up.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\thasEmptyRows = false;\r\n\t\t\t\t\t// RSVP\r\n\t\t\t\t\tangular.forEach( s.objForm.rsvpitems, function(obj,key){\r\n\t\t\t\t\t\tif( obj.slotitemid === 0 ){\r\n\t\t\t\t\t\t\thasEmptyRows = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tobj.commentError = false;\r\n\t\t\t\t\t\t\tif( (obj.slotitemid === null || !isD(obj.slotitemid)) && !obj.deleted && ( obj.myqty > 0 || obj.mycomment.toString().trim().length) ){\r\n\t\t\t\t\t\t\t\tobj.slotError = 'You must select an item.';\r\n\t\t\t\t\t\t\t\ts.errorMessages.slotitemid = 'You must select an item.';\r\n\t\t\t\t\t\t\t\ts.success = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// remove any empty rows the user added\r\n\t\t\t\t\tif( hasEmptyRows ){\r\n\t\t\t\t\t\tvar i = s.objForm.rsvpitems.length - 1;\r\n\t\t\t\t\t\tfor( i; i >= 0; i-- ){\r\n\t\t\t\t\t\t\tif( s.objForm.rsvpitems[i].slotitemid === 0 && s.objForm.rsvpitems[i].item === '' )\r\n\t\t\t\t\t\t\t\ts.objForm.rsvpitems.splice(i,1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( !s.objForm.rsvpitems.length )\r\n\t\t\t\t\t\t\ts.addMoreRSVPItem();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} // end checks\r\n\r\n\t\t};\r\n\r\n\t\tvar elemLenCheck = function( elem ){\r\n\t\t\treturn isD( s.objForm[elem] ) ? s.objForm[elem].toString().trim().length : 0;\r\n\t\t};\r\n\r\n\t\tvar resultCheck = function( response ){\r\n\t\t\tvar result = util.lowerCaseKeys( response );\r\n\t\t\ttry {\r\n\t\t\t\treturn (angular.isDefined(result.success) && result.success && angular.isDefined(result.data));\r\n\t\t\t} catch( e ){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar errorHandler = function( response ){\r\n\t\t\tvar errMessage = svc.resultErrorHandler( response );\r\n\t\t\tutil.showMagnificAlert(errMessage);\r\n\t\t};\r\n\r\n\t\t/* helper method to calculate total quantity selected by itemid */\r\n\t\tvar getTotalQuantities = function( itemsArr ){\r\n\t\t\t// array of aggregate quantities selected by item to be returned\r\n\t\t\tvar totalQtyByItem = [];\r\n\t\t\t// iterate items obj and create array of itemids\r\n\t\t\titemsArr.forEach( function(obj){\r\n\t\t\t\t// get current row\r\n\t\t\t\tvar row = {\r\n\t\t\t\t\t\"itemid\": obj.itemid,\r\n\t\t\t\t\t\"myqty\": obj.myqty\r\n\t\t\t\t};\r\n\t\t\t\t// if array empty add first item\r\n\t\t\t\tif( totalQtyByItem.length === 0){\r\n\t\t\t\t\ttotalQtyByItem.push(row);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t// scan array to see if itemid already exists\r\n\t\t\t\t\tvar itemFound = false;\r\n\t\t\t\t\ttotalQtyByItem.forEach( function(itm){\r\n\t\t\t\t\t\t// if itemid is found, add to total\r\n\t\t\t\t\t\tif(itm.itemid == obj.itemid){\r\n\t\t\t\t\t\t\titm.myqty += obj.myqty;\r\n\t\t\t\t\t\t\titemFound = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// if itemid isn't found, insert row for it\r\n\t\t\t\t\tif( !itemFound ){\r\n\t\t\t\t\t\ttotalQtyByItem.push(row);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// return array of quantites by itemid\r\n\t\t\treturn totalQtyByItem;\r\n\r\n\t\t};\r\n\r\n\t\ts.editSignup = function(memberid,id,urlid,listformat,itemmemberid,slotitemid){\r\n var attrsObj = {};\r\n attrsObj.imid = itemmemberid;\r\n attrsObj.mid = memberid;\r\n attrsObj.siid = slotitemid;\r\n attrsObj.urlid = urlid;\r\n signupPageService.setAttrs(attrsObj);\r\n\r\n\t\t\t$route.reload();\r\n\t\t};\r\n\r\n\t\tvar refreshSelectPicker = function(){\r\n\t\t\t$timeout(function() {\r\n\t\t\t\tangular.element('.selectpicker').selectpicker('refresh');\r\n\t\t\t}, 200);\r\n\t\t};\r\n\r\n\t\t// this picker refresh is specific to silly quantity selection\r\n\t\ts.refreshPicker = function( strclass ){\r\n\t\t\tvar classname = typeof strclass !== 'undefined' ? strclass : 'qtyselection';\r\n\t\t\t$timeout(function(){\r\n\t\t\t\t$('.selectpicker.' + classname ).selectpicker('refresh');\r\n\t\t\t},50);\r\n\t\t};\r\n\r\n\t}])\r\n\t.controller('multicalendarController',['$scope', '$modalInstance','items','icsCal','$sce', function( l, modal, items, cal, sce ){\r\n\r\n\t\tl.items = items;\r\n\t\tl.ical = cal;\r\n\t\tl.locationexist = false;\r\n\t\tangular.forEach( l.items, function(obj,key){\r\n\t\t\tobj.itemname = sce.trustAsHtml( obj.item.toString() );\r\n\t\t\tif( obj.location !== '' )\r\n\t\t\t\tlocationexist = true;\r\n\t\t});\r\n\t\tl.close = function(){\r\n\t\t\tmodal.dismiss();\r\n\t\t};\r\n\r\n\t}])\r\n\t.controller('signUpFormCompleteController',\r\n\t\t\t\t['$scope','SUGUtilities','$sce','signUpFormService','$uibModal','$window','$filter','$location','adService','$rootScope',\r\n\t\t\t\tfunction(s,util,sce,svc,modal,win,filter,location,adService,$rootScope){\r\n\r\n\t\t/** this controller is only triggered when there is a paypal payment that requires redirect and comes back to the thank you page\r\n\t\t\t\tFor the thank you page look at the showThankYou() function **/\r\n\t\tutil.showLoading( 'processing' );\r\n\t\ts.initialized = false;\r\n\t\ts.signupLoaded = false;\r\n\t\ts.h = new Date().getTime();\r\n\t\ts.user = {};\r\n\t\ts.user.loggedin = false;\r\n\t\ts.signup = {};\r\n\t\ts.theme = {};\r\n\t\ts.asyncSuccess = true;\r\n\t\ts.success = true;\r\n\t\ts.signupTitle = '';\r\n\t\ts.signupDesc = '';\r\n\t\ts.datedisplay = \"\";\r\n\t\ts.dateformat = \"\";\r\n\t\ts.shortZone = \"\";\r\n\t\ts.editLocked = false;\r\n\t\ts.nodatesignup = false;\r\n\t\ts.socialshare = false;\r\n\t\ts.isrsvp = false;\r\n\t\ts.showsegments = true;\r\n\t\ts.thankYouTemplate = '/view/templates/signups/form/thankyou.html';\r\n\t\ts.isProcessing = false;\r\n\t\ts.urlid = utility.getUrlParamValue('urlid');\r\n\t\ts.sl = utility.getUrlParamValue('sl');\r\n\t\ts.checkoutid = angular.isDefined(utility.getUrlParamValue('checkout_id')) ? utility.getUrlParamValue('checkout_id') : '';\r\n\t\ts.wp = angular.isDefined(utility.getUrlParamValue('wp')) ? utility.getUrlParamValue('wp') : false;\r\n\t\ts.myitems = [];\r\n\t\ts.showreturntosulink = false;\r\n\t\ts.winorigin = angular.isDefined( win.location.origin ) ? win.location.origin : win.location.protocol + '//' + win.location.host;\r\n\t\ts.hAdWidth = 0;\r\n\t\ts.errormessage = \"Oops! Something went terribly wrong. We can't seem to find the sign up information you've requested. If this error persists, please contact support.\";\r\n\t\ts.usenewaddirective = false;\r\n\t\ts.adconfig = {\r\n\t\t\tnetwork : '',\r\n\t\t\tplatform : 'desktop',\r\n\t\t\tcategory : 'signups',\r\n\t\t\tsection : 'confirmation',\r\n\t\t\ttype\t : '',\r\n\t\t\tposition : ''\r\n\t\t};\r\n\r\n\t\ts.labels = {\r\n\t\t\t\"backtosignup\" : \"Back to Sign Up\",\r\n\t\t\t\"addtocalendar\" : \"Add to Calendar\",\r\n\t\t\t\"editmysignup\" : \"Edit My Sign Up\",\r\n\t\t\t\"editmyrsvp\" : \"Edit My RSVP\",\r\n\t\t\t\"socialshare\" : \"Share with Friends\",\r\n\t\t\t\"returntosignup\" : \"Return to Sign Up\",\r\n\t\t\t\"accountregistration\" : sce.trustAsHtml('One more thing! Want to make it easier to sign up or edit your items in the future?
        Create a free SignUpGenius account')\r\n\t\t};\r\n\r\n\t\tif( s.wp && !s.checkoutid.toString().length ){\r\n\t\t\ts.errormessage = 'The checkout process has either expired or been cancelled. If this error persists, please contact support.';\r\n\t\t\ts.initialized = true;\r\n\t\t\twin.scrollTo( 0, 0 );\r\n\t\t}\r\n\t\telse {\r\n\t\t\t/** requests to get all the sign up information **/\r\n\t\t\tsvc.getUserInfo()\r\n\t\t\t\t.then( function( member ){\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( member );\r\n\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ts.user = r.data.data;\r\n\t\t\t\t\t\ts.user.loggedin = ( angular.isDefined( s.user.memberid ) && parseInt(s.user.memberid) > 0 );\r\n\r\n\t\t\t\t\t\tvar d = {};\r\n\t\t\t\t\t\t\td.fuse = 's.ProcessSignupComplete';\r\n\t\t\t\t\t\treturn globalService.checkNewAdDirective(d);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.then( function( newad ) {\r\n\t\t\t\t\tvar r = util.lowerCaseKeys( newad );\r\n\t\t\t\t\tif( resultCheck( r.data ) ){\r\n\t\t\t\t\t\ts.usenewaddirective = r.data.data;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// get sign up details\r\n\t\t\t\t\tvar d = {};\r\n\t\t\t\t\t\td.urlid = s.urlid;\r\n\t\t\t\t\t\td.sl = s.sl;\r\n\t\t\t\t\t\td.wp = s.wp === \"\" ? false : s.wp;\r\n\t\t\t\t\t\tif( s.checkoutid.toString().length > 0 )\r\n\t\t\t\t\t\t\td.checkoutid = s.checkoutid;\r\n\t\t\t\t\treturn svc.getCompletedSignUpDetail(d);\r\n\t\t\t\t})\r\n\t\t\t\t.then(function( signup ){\r\n\t\t\t\t\tif( s.asyncSuccess ){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( signup );\r\n\t\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvar data = r.data.data;\r\n\t\t\t\t\t\t\tif( !angular.isDefined(data.signup.id) || parseInt(data.signup.id) === 0 ){\r\n\t\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\t\tutil.showMagnificAlert('The sign up is no longer available.');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t// ad directive\r\n\t\t\t\t\t\t\t\tif( s.usenewaddirective ){\r\n\t\t\t\t\t\t\t\t\ts.adconfig.themeid = s.signup.themeid;\r\n\t\t\t\t\t\t\t\t\tvar adnetworks = typeof $rootScope.adnetworkdatafile !== 'undefined' && typeof $rootScope.adnetworkdatafile.networks !== 'undefined' ? $rootScope.adnetworkdatafile.networks : {};\r\n\t\t\t\t\t\t\t\t\ts.adconfig.network = adService.getAdNetwork(s.adconfig,adnetworks);\r\n\t\t\t\t\t\t\t\t\t// set header ad code\r\n\t\t\t\t\t\t\t\t\tadService.setHeaderAdCode( s.adconfig );\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// ROKT\r\n\t\t\t\t\t\t\t\tif(data.extendedattributes) {\r\n\t\t\t\t\t\t\t\t\t// Hide Banner Ads\r\n\t\t\t\t\t\t\t\t\t// SUG-6585: Turning this off for now - per the requirements, it needs to be so that it can be renabled if needed\r\n\t\t\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\t\t\tif (win.sug_data.page_experience && win.sug_data.page_experience.indexOf(\"split_segment_off_\") > -1){\r\n\t\t\t\t\t\t\t\t\t\t// Need to add page experioence to extendedattributes here so it passes to iniToktSnippit call\r\n\t\t\t\t\t\t\t\t\t\tdata.extendedattributes.page_experience = win.sug_data.page_experience;\r\n\t\t\t\t\t\t\t\t\t\ts.hideBannerAdsForRokt = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t\t\t// Display Rokt Ad\r\n\t\t\t\t\t\t\t\t\tif (data.extendedattributes.email){\r\n\t\t\t\t\t\t\t\t\t\tadService.initRoktSnippet(data.extendedattributes);\r\n\t\t\t\t\t\t\t\t\t\tadService.initAdsPostXSnippet(data.extendedattributes);\r\n\t\t\t\t\t\t\t\t\t\ts.hideBannerAdsForRokt = true; // set this to true moving forward\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tsetFormElements( data );\r\n\t\t\t\t\t\t\t\ts.signupLoaded = true;\r\n\t\t\t\t\t\t\t\tvar theme = {};\r\n\t\t\t\t\t\t\t\t\ttheme.themeID = s.signup.themeid;\r\n\t\t\t\t\t\t\t\t\ttheme.listid = s.signup.id;\r\n\t\t\t\t\t\t\t\t\ttheme.returnType = 'class';\r\n\t\t\t\t\t\t\t\treturn signupPageService.getSignupTheme( theme );\r\n\r\n\t\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})\r\n\t\t\t\t.then( function( theme ){\r\n\t\t\t\t\tif( s.asyncSuccess ){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( theme );\r\n\t\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\ts.asyncSuccess = false;\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t/** build dynamic classes **/\r\n\t\t\t\t\t\t\ts.theme = r.data.data;\r\n\t\t\t\t\t\t\ts.createSignUpStyle();\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\t.then( function(){\r\n\t\t\t\t\ts.initialized = true;\r\n\t\t\t\t\twin.scrollTo( 0, 0 );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\ts.backToSignUp = function(){\r\n\t\t\t\tvar urlId = angular.isDefined( s.urlid ) && s.urlid !== '' ? s.urlid : '';\r\n\t\t\t\tif( urlId === '' )\r\n\t\t\t\t\turlId = angular.isDefined( s.attrs) && angular.isDefined( s.attrs.urlid ) && s.attrs.urlid !== '' ? s.attrs.urlid : '';\r\n\t\t\t\tif( urlId !== '' )\r\n\t\t\t\t\twin.location.href = s.winorigin + '/go/' + urlId;\r\n\t\t\t\telse\r\n\t\t\t\t\twin.location.href = s.winorigin + '/index.cfm';\r\n\t\t\t};\r\n\r\n\t\t\ts.register = function(){\r\n\t\t\t\tvar loginWindow = modal.open({\r\n\t\t\t\t\ttemplateUrl : '/view/templates/main/login.html',\r\n\t\t\t\t\tcontroller : 'authenticationController',\r\n\t\t\t\t\tresolve : {\r\n\t\t\t\t\t\tloginRequired : function(){\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tloginMessage: function(){\r\n\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tregister: function(){\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t},\r\n registerDisabled: function () {\r\n return false;\r\n }\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tloginWindow.result.then(\r\n\t\t\t\t\tfunction( response ){\r\n\t\t\t\t\t\tvar r = response;\r\n\t\t\t\t\t\tif( isD(r.status) && r.status === 'loggedin' && isD(r.data) && isD( r.data.memberid ) && parseInt(r.data.memberid) > 0 ){\r\n\t\t\t\t\t\t\ts.user = r.data;\r\n\t\t\t\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t\t\t\t// Updated cached member info\r\n\t\t\t\t\t\t\t\tsignupPageService.setMemberInfo(s.user);\r\n\t\t\t\t\t\t\t\tsvc.cachedMemberinfo = s.user;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ts.user.loggedin = true;\r\n\t\t\t\t\t\t\t// update upper main navivation menus\r\n\t\t\t\t\t\t\tupdateMenu();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/** method to create dynamic sign up styles **/\r\n\t\t\ts.createSignUpStyle = function(){\r\n\t\t\t\t// this is where our dynamic style container will be\r\n\t\t\t\tvar styleContainer = angular.element( document.querySelector( '#styleContainer' ) );\r\n\t\t\t\t// create a style tag containing all the classes\r\n\t\t\t\tvar dStyles = angular.element( '' );\r\n\t\t\t\t// append the style to the container\r\n\t\t\t\tstyleContainer.append( dStyles );\r\n\t\t\t};\r\n\r\n\t\t\ts.goBackTo = function(){\r\n\t\t\t\tif( s.showreturntosulink ){\r\n\t\t\t\t\tvar url = s.backtosignupLink.indexOf('http') == -1 ? \"http://\" + s.backtosignupLink : s.backtosignupLink;\r\n\r\n\t\t\t\t\tvar alertWindow = modal.open({\r\n\t\t\t\t\t\ttemplateUrl : '/view/templates/signups/form/backtowebsiteconfirm.html',\r\n\t\t\t\t\t\tcontroller : 'backToWebsiteController',\r\n\t\t\t\t\t\tresolve : {\r\n\t\t\t\t\t\t\tredirect : function(){\r\n\t\t\t\t\t\t\t\treturn url;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\talertWindow.result.then(\r\n\t\t\t\t\t\tfunction(){\r\n\t\t\t\t\t\t\twin.location.href = url;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (s.useSinglePageApplication) {\r\n\t\t\t\t\t\t// When using the SPA, return user to base route\r\n\t\t\t\t\t\tlocation.path(\"/\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twin.location.href = s.winorigin + s.backtosignupLink;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// set/recycle ads\r\n\t\t\t\tif( s.showsegments && typeof deployads !== 'undefined' ){\r\n\t\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\t\tdeployads.push();\r\n\t\t\t\t\t}, 500);\r\n\t\t\t\t}\r\n\r\n\t\t\t};\r\n\r\n\t\t\t/** helper method to setup sign up form elements **/\r\n\t\t\tvar setFormElements = function( data ){\r\n\t\t\t\t// setup\r\n\t\t\t\ts.signup = data.signup;\r\n\t\t\t\ts.items = data.items;\r\n\t\t\t\ts.backtosignupLink = \"/go/\" + s.signup.urlid;\r\n\t\t\t\ts.calLinks = angular.isDefined(data.icals) ? data.icals : {};\r\n\t\t\t\ts.memberinfo = angular.isDefined(data.memberinfo) ? data.memberinfo : {memberid:0,displayfirstname:'',displaylastname:'',fullmember:false};\r\n\t\t\t\ts.confirmationsent = s.memberinfo.memberid > 0;\r\n\t\t\t\ts.isfullmember = angular.isDefined(s.memberinfo.fullmember) ? s.memberinfo.fullmember : false;\r\n\t\t\t\ts.signupTitle = sce.trustAsHtml(s.signup.title.toString());\r\n\t\t\t\ts.signupDesc = sce.trustAsHtml(s.signup.description.toString());\r\n\t\t\t\ts.datedisplay = s.signup.shortdformat;\r\n\t\t\t\ts.dateformat = s.signup.shortdformat.toString().replace(\"mm\",\"MM\");\r\n\t\t\t\ts.shortZone = s.signup.tzshort;\r\n\t\t\t\ts.nodatesignup = (parseInt(s.signup.nodate) === 1);\r\n\t\t\t\ts.isrsvp = (parseInt( s.signup.usersvp ) === 1);\r\n\t\t\t\ts.socialshare = (parseInt(s.signup.socialshare) === 1);\r\n\t\t\t\ts.showsegments = s.signup.showsegments;\r\n\t\t\t\ts.closeLock = (s.signup.closelock > 0);\r\n\t\t\t\ts.modifyLock = parseInt(s.signup.modifylockdays);\r\n\t\t\t\ts.listid = s.signup.id;\r\n\t\t\t\ts.signupowner = s.signup.owner;\r\n\t\t\t\ts.signupcontact = s.signup.contactname;\r\n\t\t\t\ts.linktowebsite = '';\r\n\t\t\t\ts.linktowebsitebtn = '';\r\n\t\t\t\tif( s.signup.linktowebsite.toString().length ){\r\n\t\t\t\t\tvar ltw = s.signup.linktowebsite.split('|');\r\n\t\t\t\t\tif( ltw.length === 2 ){\r\n\t\t\t\t\t\ts.linktowebsite = ltw[1];\r\n\t\t\t\t\t\ts.linktowebsitebtn = ltw[0];\r\n\t\t\t\t\t\ts.backtosignupLink = ltw[1];\r\n\t\t\t\t\t\ts.labels.backtosignup = ltw[0];\r\n\t\t\t\t\t\ts.showreturntosulink = true;\r\n\t\t\t\t\t\ts.returntosulink = \"/go/\" + s.signup.urlid;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if there is a retargeting script\r\n\t\t\t\tif( angular.isDefined(data.retargetingscripts) && data.retargetingscripts !== '' ){\r\n\t\t\t\t\tdocument.getElementById(\"retargeting\").innerHTML = '';\r\n\t\t\t\t\tdocument.getElementById(\"retargeting\").innerHTML = data.retargetingscripts;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t/** do some randomize ad AB testing on the thank you page **/\r\n\t\t\t\tif( s.showsegments ){\r\n\t\t\t\t\ts.hAdWidth = 190;\r\n\t\t\t\t\ts.containerWidth = win.innerWidth;\r\n\t\t\t\t\tif( s.containerWidth > 1199 )\r\n\t\t\t\t\t\ts.hAdWidth = 330;\r\n\r\n\t\t\t\t\t// var r = Math.floor((Math.random() * 100) + 1);\r\n\t\t\t\t\t// if( r % 2 === 0 )\r\n\t\t\t\t\ts.thankYouTemplate = '/view/templates/signups/form/altthankyou.html';\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if sign up is RSVP\r\n\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\t// no payments on RSVP just yet - any rsvp related variables can go here\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// standard sign ups\r\n\t\t\t\t\ts.name = s.memberinfo.displayfirstname;\r\n\t\t\t\t\ts.memberid = s.memberinfo.memberid;\r\n\t\t\t\t\ts.showCalendar = (s.memberinfo.memberid > 0 && !s.nodatesignup);\r\n\t\t\t\t\ts.slotids = '';\r\n\r\n\t\t\t\t\tvar dtstarttime = '';\r\n\t\t\t\t\tvar dtendtime = '';\r\n\t\t\t\t\tvar gc = angular.isDefined(s.calLinks.google) ? s.calLinks.google : {};\r\n\t\t\t\t\tvar temp = {};\r\n\t\t\t\t\ts.slotids = [];\r\n\t\t\t\t\tangular.forEach(s.items, function(obj,key){\r\n\t\t\t\t\t\ts.slotids.push( obj.slotid );\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\ts.slotids = s.slotids.toString();\r\n\t\t\t\t\ts.myitems = [];\r\n\t\t\t\t\tangular.forEach( s.items, function(obj,key){\r\n\t\t\t\t\t\tdtstarttime = '';\r\n\t\t\t\t\t\tdtendtime = '';\r\n\t\t\t\t\t\ttemp = {};\r\n\t\t\t\t\t\ttemp.item = obj.item;\r\n\t\t\t\t\t\ttemp.itemhelp = obj.itemcomment;\r\n\t\t\t\t\t\ttemp.myqty = obj.myqty;\r\n\t\t\t\t\t\ttemp.mycomment = obj.mycomment;\r\n\t\t\t\t\t\ttemp.slotid = obj.slotid;\r\n\t\t\t\t\t\ttemp.slotitemid = obj.slotitemid;\r\n\t\t\t\t\t\ttemp.itemmemberid = obj.itemmemberid;\r\n\t\t\t\t\t\ttemp.location = obj.location;\r\n\t\t\t\t\t\ttemp.slotdatestring = '';\r\n\t\t\t\t\t\tif(obj.starttime !== ''){\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tdtstarttime = new Date( obj.starttime );\r\n\t\t\t\t\t\t\t\tdtstarttime = Date.parse( dtstarttime );\r\n\t\t\t\t\t\t\t\ttemp.slotdatestring = filter('date')(dtstarttime, 'EEE') + '., ' + filter('date')(dtstarttime, s.dateformat );\r\n\t\t\t\t\t\t\t\tif( obj.usetime === 1 )\r\n\t\t\t\t\t\t\t\t\ttemp.slotdatestring += ' ' + (filter('date')(dtstarttime, 'h:mma' )).toLowerCase();\r\n\t\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( obj.usetime === 1 && obj.dtendtime !== '' && obj.dtendtime !== obj.dtstarttime ){\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tdtendtime = new Date( obj.endtime );\r\n\t\t\t\t\t\t\t\tdtendtime = Date.parse( dtendtime );\r\n\t\t\t\t\t\t\t\ttemp.slotdatestring += ' - ' + (filter('date')(dtendtime, 'h:mma' )).toLowerCase();\r\n\t\t\t\t\t\t\t} catch( e ){}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif( temp.slotdatestring !== '' && obj.usetime === 1 )\r\n\t\t\t\t\t\t\ttemp.slotdatestring += ' ' + s.shortZone;\r\n\t\t\t\t\t\t// trim it just in case\r\n\t\t\t\t\t\ttemp.slotdatestring = temp.slotdatestring.trim();\r\n\t\t\t\t\t\ttemp.callink = obj.slotid in gc ? gc[obj.slotid] : '';\r\n\t\t\t\t\t\ts.myitems.push( temp );\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t};\r\n\r\n\t\t\tvar resultCheck = function( response ){\r\n\t\t\t\tvar result = util.lowerCaseKeys( response );\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn (angular.isDefined(result.success) && result.success && angular.isDefined(result.data));\r\n\t\t\t\t} catch( e ){\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tvar errorHandler = function( response ){\r\n\t\t\t\tvar errMessage = svc.resultErrorHandler( response );\r\n\t\t\t\tutil.showMagnificAlert(errMessage);\r\n\t\t\t};\r\n\r\n\t\t\t/** helper method for updating top navigation menu **/\r\n\t\t\tvar updateMenu = function(){\r\n\t\t\t\tsvc.getMainNavigation()\r\n\t\t\t\t\t.then( function(response){\r\n\t\t\t\t\t\tvar r = util.lowerCaseKeys( response );\r\n\t\t\t\t\t\tif( !resultCheck( r.data ) ){\r\n\t\t\t\t\t\t\terrorHandler( r.data );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvar menu = angular.element( document.querySelector( '#main-nav' ) );\r\n\t\t\t\t\t\t\t\tmenu.empty(); // remove existing menu\r\n\t\t\t\t\t\t\t\tmenu.append( r.data.data ); // append the new menu\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/** method for social media sharing **/\r\n\t\t\ts.share = function( media ){\r\n\t\t\t\tvar signupurl = angular.isDefined(s.signup.fullurl) && s.signup.fullurl !== '' ? s.signup.fullurl : encodeURIComponent(s.winorigin + \"/go/\" + s.attrs.urlid);\r\n\t\t\t\tvar signupimage = s.signup.signupimage !== '' ? encodeURIComponent(s.signup.signupimage) : encodeURIComponent(s.winorigin + \"/images/theme/\" + s.signup.themeid + \"-large.jpg\");\r\n\t\t\t\tvar mediaurl = '';\r\n\t\t\t\tvar winsize = '';\r\n\t\t\t\tvar py = 0;\r\n\t\t\t\tvar px = 0;\r\n\t\t\t\tvar tweettext = encodeURIComponent(\"I just signed up on the \" + s.signup.title.toString().trim() + \" page - \");\r\n\t\t\t\tif( media === 'fb' ){\r\n\t\t\t\t\twinsize = \"width=640,height=400\";\r\n\t\t\t\t\tpy = win.top.outerHeight / 2 + win.top.screenY - ( 400 / 2);\r\n\t\t\t\t\tpx = win.top.outerWidth / 2 + win.top.screenX - ( 640 / 2);\r\n\t\t\t\t\tmediaurl = \"http://www.facebook.com/sharer/sharer.php?u=\" + signupurl + \"&src=sp\";\r\n\t\t\t\t}\r\n\t\t\t\telse if( media === 'pinterest' ){\r\n\t\t\t\t\twinsize = \"width=740,height=700\";\r\n\t\t\t\t\tpy = win.top.outerHeight / 2 + win.top.screenY - ( 700 / 2);\r\n\t\t\t\t\tpx = win.top.outerWidth / 2 + win.top.screenX - ( 740 / 2);\r\n\t\t\t\t\tmediaurl = \"http://pinterest.com/pin/create/button/?url=\" + signupurl + \"&media=\" + signupimage + \"&description=\" + tweettext + '%20' + signupurl;\r\n\t\t\t\t}\r\n\t\t\t\telse if( media === 'twitter' ){\r\n\t\t\t\t\twinsize = \"width=640,height=320\";\r\n\t\t\t\t\tpy = win.top.outerHeight / 2 + win.top.screenY - ( 320 / 2);\r\n\t\t\t\t\tpx = win.top.outerWidth / 2 + win.top.screenX - ( 640 / 2);\r\n\t\t\t\t\tmediaurl = \"https://twitter.com/share?text=\" + tweettext + \"&url=\" + signupurl;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// open the window\r\n\t\t\t\twinsize += \",top=\" + py + \",left=\" + px;\r\n\t\t\t\twin.open(mediaurl,'_blank',winsize);\r\n\t\t\t};\r\n\r\n\r\n\t\t\t/** method to get ics **/\r\n\t\t\ts.getICS = function( cal ){\r\n\t\t\t\tvar icalLink = '';\r\n\t\t\t\tif( s.isrsvp ){\r\n\t\t\t\t\ticalLink = cal in s.calLinks ? s.calLinks[cal] : '';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif( cal === 'ical' ){\r\n\t\t\t\t\t\ticalLink = cal in s.calLinks ? s.calLinks[cal] : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif( s.myitems.length === 1 ){\r\n\t\t\t\t\t\t\ticalLink = s.myitems[0].callink || '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// we will need to do a modal window to show the list of calendars\r\n\t\t\t\t\t\t\tvar calendarWindow = modal.open({\r\n\t\t\t\t\t\t\t\ttemplateUrl : '/view/templates/signups/form/multicalendardownload.html',\r\n\t\t\t\t\t\t\t\tcontroller : 'multicalendarController',\r\n\t\t\t\t\t\t\t\tresolve : {\r\n\t\t\t\t\t\t\t\t\titems : function(){\r\n\t\t\t\t\t\t\t\t\t\treturn s.myitems;\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\ticsCal : function(){\r\n\t\t\t\t\t\t\t\t\t\treturn angular.isDefined(s.calLinks.ical) ? s.calLinks.ical : '';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tcalendarWindow.result.then(\r\n\t\t\t\t\t\t\t\tfunction( response ){\r\n\t\t\t\t\t\t\t\t\t// do nothing\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} // end\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif( icalLink.length )\r\n\t\t\t\t\twin.open(icalLink);\r\n\t\t\t};\r\n\r\n\t}])\r\n\t.controller('alertController', ['$scope', '$modalInstance','message','messagetitle', function( $scope, $modalInstance, message, messagetitle ){\r\n\t\t$scope.message = message;\r\n\t\t$scope.messagetitle = messagetitle;\r\n\t\t$scope.close = function(){\r\n\t\t\t$modalInstance.dismiss();\r\n\t\t};\r\n\t}])\r\n\t.controller('backToWebsiteController', ['$scope', '$modalInstance','redirect','$timeout','$window',\r\n\t\tfunction( $scope, $modalInstance, redirect, timeout, win ){\r\n\t\t$scope.url = redirect;\r\n\t\t$scope.seconds = 11;\r\n\r\n\t\t$scope.cancel = function(){\r\n\t\t\t$modalInstance.dismiss();\r\n\t\t};\r\n\r\n\t\t$scope.close = function(){\r\n\t\t\t$modalInstance.close();\r\n\t\t};\r\n\r\n\t\t$scope.countDown = function() {\r\n\t\t\tif( $scope.seconds === 0 ){\r\n\t\t\t\t$scope.close();\r\n\t\t\t\t// return false;\r\n\t\t\t} else {\r\n\t\t\t\t$scope.seconds--;\r\n\t\t\t\ttimeout( function(){\r\n\t\t\t\t\t$scope.countDown();\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$scope.countDown();\r\n\t}])\r\n\t// New version of wePay Modal controller for handling 3rd party cookie fix\r\n\t.controller('wePayModalController', ['$scope', '$modalInstance', '$window', '$sce', 'SUGUtilities', 'payload', 'mainScope',\r\n\t\t\tfunction ($scope, $modalInstance, $window, $sce, SUGUtilities, payload, mainScope ) {\r\n\r\n\t\t/* WePay Payment Modal Controller */\r\n\t\tSUGUtilities.showLoading( 'iFrameContainer' );\r\n\r\n\t\t$window.credit_card_id = 0;\r\n\t\t$window.frm = {};\r\n\t\t$window.frm = payload;\r\n\t\t$window.wepayclientid = mainScope.wepayclientid;\r\n\t\t$window.wepayendpoint = mainScope.wepayendpoint;\r\n\t\t$window.environment = mainScope.environment;\r\n\t\t$window.countries = mainScope.countries.data;\r\n\r\n\t\tvar iframeSrc = $window.environment + '/view/tools/wepaycheckoutiframe.html';\r\n\t\t$scope.iFrameSrc = $sce.trustAsResourceUrl(iframeSrc);\r\n\r\n\t\t$scope.loading = true;\r\n\t\t$scope.complete = false;\r\n\t\t$scope.response = {success: false};\r\n\r\n\r\n\t\tvar checkoutOrigin = $window.environment;\r\n\t\t// Create IE + others compatible event handler\r\n\t\tvar eventAddMethod = $window.addEventListener ? \"addEventListener\" : \"attachEvent\";\r\n\t\tvar eventRemoveMethod = $window.addEventListener ? \"removeEventListener\" : \"detachEvent\";\r\n\t\tvar messageEvent = eventAddMethod == \"attachEvent\" ? \"onmessage\" : \"message\";\r\n\t\tvar eventerAdd = $window[eventAddMethod];\r\n\t\tvar eventerRemove = $window[eventRemoveMethod];\r\n\r\n\t\t// Handler function for event listener\r\n\t\tvar handleMessageEvent = function(e){\r\n\t\t\t// check the origin of the message to ensure its from WePay\r\n\t\t\tif(e.origin === checkoutOrigin && e.data){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tvar stcData = e.data;\t//JSON.parse(e.data);\r\n\r\n\t\t\t\t\t// Check for credit_card_id from payment iframe\r\n\t\t\t\t\tif(typeof stcData.credit_card_id != 'undefined'){\r\n\t\t\t\t\t\tpayload.payment_method.credit_card.id = stcData.credit_card_id;\r\n\t\t\t\t\t\t$scope.complete = true;\r\n\t\t\t\t\t\t$scope.response.success = true;\r\n\t\t\t\t\t\tmainScope.completeWePayPayment(payload, $modalInstance);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}catch(err){\r\n\t\t\t\t\t// silent error\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Listen for the postMessage from WePay indicating the checkout was complete\r\n\t\teventerAdd(messageEvent,handleMessageEvent);\r\n\r\n\t\t/**\r\n\t\t * Fired when the close button (x) is clicked. Issues a warning if the payment is not complete.\r\n\t\t * */\r\n\t\t$scope.dismiss = function(){\r\n\t\t\tif( !$scope.complete ){\r\n\t\t\t\tSUGUtilities.showConfirmationModal({\r\n\t\t\t\t\ttxtConfirmationTitle: \"Incomplete Checkout\",\r\n\t\t\t\t\ttxtConfirmationMessage: \"You have not completed the checkout process. Are you sure you want to cancel?\",\r\n\t\t\t\t\tlblYesButton: \"Yes\"\r\n\t\t\t\t},\r\n\t\t\t\tfunction(){\r\n\t\t\t\t\t$modalInstance.dismiss($scope.response);\r\n\t\t\t\t\t// Remove event listener when closing modal to prevent being processed multiple times if the modal is relaunched\r\n\t\t\t\t\teventerRemove(messageEvent, handleMessageEvent);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$modalInstance.dismiss($scope.response);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// fired when the modal closes\r\n\t\t$scope.close = function(){\r\n\t\t\t$modalInstance.close($scope.response);\r\n\t\t};\r\n\r\n\t\t// fired on the iframe onload event\r\n\t\t$scope.loaded = function(){\r\n\t\t\t$scope.loading = false;\r\n\t\t};\r\n\r\n\t}])\r\n\r\n\r\n\t// LumaPay Modal controller\r\n\t.controller('lumaPayModalController', ['$scope', '$modalInstance', '$window', '$sce', 'SUGUtilities', 'payload', 'mainScope', '$timeout', 'signUpFormService','errorService',\r\n\tfunction ($scope, $modalInstance, $window, $sce, SUGUtilities, payload, mainScope, $timeout, svc, errorService ) {\r\n\t\t$scope.es = errorService.newInstance();\r\n\t\t$scope.errorStrings = {\r\n\t\t\terrorsTitle: '',\r\n\t\t\terrorsPleaseCorrect: 'Please correct the issues indicated below.'\r\n\t\t};\r\n\t\t/* LumaPay Payment Modal Controller */\r\n\t\tSUGUtilities.showLoading( 'LumapayCheckout' );\r\n\t\t// default to on while loading\r\n\r\n\t\t$scope.processing = {\r\n\t\t\tisProcessing: true,\r\n\t\t\tprogress: '' // see \"Spinner w/ Progress (Loading/Processing Indicator)\" documentation for how this can be used\r\n\t\t};\r\n\r\n\t\t$scope.submitted = false;\r\n\t\t$scope.complete = false;\r\n\t\t$scope.response = {success: false};\r\n\t\t$scope.payload = payload;\r\n\r\n\t\t$scope.buttonText = payload.grossamount < 1 ? 'Pay $0'+payload.grossamount.toFixed(2) + payload.currency_suffix : 'Pay $'+payload.grossamount.toFixed(2) + payload.currency_suffix;\r\n\r\n\t\t// Broadcast listener - useful so can be called from separate controller/service/etc\r\n\t\t$scope.$on('isProcessing', function (event, isProcessing) {\r\n\t\t\t$scope.processing.isProcessing = isProcessing;\r\n\t\t\tif (isProcessing) {\r\n\t\t\t\tSUGUtilities.showLoading('processing');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Create a Stripe client.\r\n\t\tvar stripe = Stripe(payload.stripeapikey,\r\n\t\t\t{ stripeAccount: payload.stripeaccount },\r\n\t\t\t{ apiVersion: payload.stripeapiversion });\r\n\r\n\t\t// Fetches a payment intent and captures the client secret\r\n\t\tvar init = function () {\r\n\t\t\t// always ensure that recalling init will reinitiate the spinner too\r\n\t\t\tSUGUtilities.broadCast('isProcessing', true);\r\n\r\n\t\t\tvar options = {\r\n\t\t\t\tclientSecret: payload.clientsecret,\r\n\t\t\t\tstripeAccount: payload.stripeaccount,\r\n\t\t\t\t// Fully customizable with appearance API.\r\n\t\t\t\tappearance: {\r\n\t\t\t\t\ttheme: 'stripe'\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t\t$scope.elements = stripe.elements(options);\r\n\t\t\tvar paymentElement = $scope.elements.create(\"payment\");\r\n\t\t\t// Wrap mount call in timeout, otherwise the code throws an error about not being able to fin the payment-elements element in the DOM\r\n\t\t\t$timeout(function(){\r\n\t\t\t\tpaymentElement.mount(\"#payment-element\");\r\n\t\t\t},500);\r\n\r\n\t\t\t// when done initializing, turn processing off\r\n\t\t\tSUGUtilities.broadCast('isProcessing', false);\r\n\t\t};\r\n\t\tinit();\r\n\r\n\t\t$scope.handleSubmit = function() {\r\n\t\t\t//SUGUtilities.broadCast('isProcessing', true);\r\n\t\t\t$scope.es.clearErrors(); // clear all errors\r\n\t\t\tif ($scope.payload.nameOnCard) {\r\n\t\t\t\t$scope.submitted = true;\r\n\r\n\t\t\t\tstripe.confirmPayment({\r\n\t\t\t\t\telements: $scope.elements,\r\n\t\t\t\t\tconfirmParams: {\r\n\t\t\t\t\t\t// return_url is included but will not be used since we are not using any payment types that require redirect.\r\n\t\t\t\t\t\treturn_url: payload.returnurl,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// this prevents redirect for payment types that do not require redirect\r\n\t\t\t\t\tredirect: \"if_required\"\r\n\t\t\t\t}).then(function(result) {\r\n\r\n\r\n// TO DO: Add catch to handle payment types that require redirect to future proof the code\r\n\t\t\t\t\tif (result.error) {\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tSUGUtilities.broadCast('isProcessing', false);\r\n\t\t\t\t\t\t\t$scope.submitted = false;\r\n\t\t\t\t\t\t\t// Inform the customer that there was an error.\r\n\r\n\t\t\t\t\t\t\t// This point will only be reached if there is an immediate error when confirming the payment. Otherwise, your customer will be redirected to\r\n\t\t\t\t\t\t\t// your `return_url`. For some payment methods like iDEAL, your customer will be redirected to an intermediate site first to authorize the payment, then\r\n\t\t\t\t\t\t\t// redirected to the `return_url`.\r\n\t\t\t\t\t\t\t$scope.es.setError('error-top-level',result.error.message);\r\n\t\t\t\t\t\t},1000);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$scope.response.success = true;\r\n\t\t\t\t\t\t$scope.response.paymentIntent = result.paymentIntent;\r\n\t\t\t\t\t\tmainScope.completeLumaPayPayment(payload, $modalInstance);\r\n\t\t\t\t\t}\r\n\t\t\t \t}).catch(function(err){\t\t\t\t\t\r\n\t\t\t\t\tSUGUtilities.broadCast('isProcessing', false);\r\n\t\t\t\t\t$scope.submitted = false;\r\n\t\t\t\t\t// Inform the customer that there was an error.\r\n\t\t\t\t\t$scope.es.setError('error-top-level','There was an error processing your payment.');\r\n\t\t\t\t\tconsole.err(err);\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t$scope.submitted = false;\r\n\t\t\t\tSUGUtilities.broadCast('isProcessing', false);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Fired when the close button (x) is clicked. Issues a warning if the payment is not complete.\r\n\t\t * */\r\n\t\t$scope.dismiss = function(){\r\n\t\t\tif( !$scope.complete ){\r\n\t\t\t\tSUGUtilities.showConfirmationModal({\r\n\t\t\t\t\ttxtConfirmationTitle: \"Incomplete Checkout\",\r\n\t\t\t\t\ttxtConfirmationMessage: \"You have not completed the checkout process. Are you sure you want to cancel?\",\r\n\t\t\t\t\tlblYesButton: \"Yes\"\r\n\t\t\t\t},\r\n\t\t\t\tfunction(){\r\n\t\t\t\t\t$modalInstance.dismiss($scope.response);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$modalInstance.dismiss($scope.response);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// fired when the modal closes\r\n\t\t$scope.close = function(){\r\n\t\t\t$modalInstance.close($scope.response);\r\n\t\t};\r\n\r\n\t}]);\r\n})();\r\n","/**\r\n * used for customized file upload input fields\r\n **/\r\nSUGApp.directive('passwordStrength', function(){\r\n\treturn {\r\n\t\ttemplateUrl: '/js/directives/passwordStrength.html',\r\n\t\trestrict: 'EA',\r\n\t\tscope: {\r\n\t\t\tpassword: '@',\r\n\t\t\tpassword2: '@',\r\n\t\t\tstyleoverride: '@'\r\n\t\t},\r\n\t\tcontroller: ['$scope','SUGUtilities', function($scope,SUGUtilities) {\r\n\t\t\tdata = '';\r\n\t\t\t$scope.useglyph = 'remove';\r\n\t\t\tSUGUtilities.APISyncCall( \"post\", \"\", data, \"c.getPasswordComplexity\", 15000 )\r\n\t\t\t\t.then(function(r){\r\n\t\t\t\t\tvar response = SUGUtilities.lowerCaseKeys(r.data);\r\n\t\t\t\t\tif(!response.success) {\r\n\t\t\t\t\t\t$scope.displayError(response.data.accountdetails.error,response.data.accountdetails.error_description,response.data.accountdetails.error_code);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$scope.passwordComplexity = response.data;\r\n\t\t\t\t\t\t$scope.passwordValid = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\tfunction allTrue(obj){\r\n\t\t\t\tfor(var o in obj)\r\n\t\t\t\tif(!obj[o]) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t\t$scope.checkStrength = function(pass, pass2) {\r\n\t\t\t\tvar passwordLenValue = pass ? $scope.password.length : 0;\r\n\r\n\t\t\t\tfor (var ruletype in $scope.passwordComplexity){\r\n\t\t\t\t\tfor (var rule in $scope.passwordComplexity[ruletype]) {\r\n\t\t\t\t\t\t$scope.passwordValid[rule] = false;\r\n\t\t\t\t\t\tif ($scope.passwordComplexity[ruletype][rule].enabled) {\r\n\t\t\t\t\t\t\tswitch (rule) {\r\n\t\t\t\t\t\t\t\tcase \"minimum\":\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = passwordLenValue >= $scope.passwordComplexity[ruletype][rule].minvalue ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"maximum\":\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = passwordLenValue <= $scope.passwordComplexity[ruletype][rule].maxvalue ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"lower\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"upper\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"number\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase \"specialchar\":\r\n\t\t\t\t\t\t\t\t\tvar regexPattern = new RegExp($scope.passwordComplexity[ruletype][rule].pattern);\r\n\t\t\t\t\t\t\t\t\t$scope.passwordValid[rule] = regexPattern.test(pass) ? true : false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\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\tif (!allTrue($scope.passwordValid) || pass !== pass2) {\r\n\t\t\t\t\treturn 'weak';\r\n\t\t\t\t} else if (allTrue($scope.passwordValid) && passwordLenValue < 10) {\r\n\t\t\t\t\treturn 'medium';\r\n\t\t\t\t} else if (allTrue($scope.passwordValid) && passwordLenValue >= 10) {\r\n\t\t\t\t\treturn 'strong';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}],\r\n\t\tlink: function($scope, element, attrs) {\r\n\t\t\t$scope.$watch( 'password', function() { \r\n\t\t\t\t$scope.strengthValue = $scope.password ? $scope.checkStrength($scope.password, $scope.password2) : '';\r\n\t\t\t\tswitch ($scope.strengthValue) {\r\n\t\t\t\t\tcase 'weak':\r\n\t\t\t\t\t\t$scope.useglyph = 'remove';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t$scope.useglyph = 'ok';\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n});\r\n","/* Error service\r\n *\r\n * This service can be used to set and retrieve errors and track the presence of errors.\r\n */\r\nSUGApp.service('errorService', ['SUGUtilities', function (SUGUtilities) {\r\n var service = {\r\n getService: function(){\r\n var service = {\r\n init: function () {\r\n // clear / reinit the errors\r\n service.errors = {};\r\n service.hasErrors = false;\r\n },\r\n errors: {},\r\n hasErrors: false,\r\n getErrors: function (key) {\r\n if (key) {\r\n // get the error(s) for a specific key (can be an array or a string)\r\n if (SUGUtilities.isArray(service.errors[key]) || !SUGUtilities.isStringNullOrEmpty(service.errors[key])) {\r\n return service.errors[key];\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n // get all the errors\r\n if (SUGUtilities.isEmptyObject(service.errors)) {\r\n return false;\r\n } else {\r\n var arrErrors = [];\r\n for (var field in service.errors) {\r\n if (service.errors.hasOwnProperty(field)) {\r\n arrErrors = arrErrors.concat(service.errors[field]);\r\n }\r\n }\r\n return arrErrors;\r\n }\r\n }\r\n },\r\n setError: function (key, value) {\r\n service.errors[key] = value;\r\n service.hasErrors = true;\r\n },\r\n clearErrors: function (key) {\r\n if (typeof key === 'undefined') {\r\n service.errors = {};\r\n service.hasErrors = false;\r\n } else {\r\n if (typeof service.errors[key] !== 'undefined') {\r\n delete service.errors[key];\r\n }\r\n if (jQuery.isEmptyObject(service.errors)) {\r\n service.hasErrors = false;\r\n } else {\r\n service.hasErrors = true;\r\n }\r\n }\r\n }\r\n };\r\n return service;\r\n }\r\n };\r\n\r\n var coreService = service.getService();\r\n coreService.newInstance = service.getService;\r\n \r\n return coreService;\r\n\r\n}]);","/**************************************************\r\n CONTROLLER: participantDetailsModalController\r\n**************************************************/\r\n(function(){\r\n // add the controller\r\n SUGApp.controller('participantDetailsModalController', participantDetailsModalController);\r\n\r\n participantDetailsModalController.$inject = [ '$scope','$modalInstance','$filter','$templateCache','$location','$q','$timeout','$window','SUGUtilities','sugCacheFactory','errorService','profilePicService','signupPageService','listid','memberId','slotdata','slotitem','theme','tzshort','showprofilepics','shownames','signuptype' ];\r\n function participantDetailsModalController( $scope, $modalInstance, $filter, $templateCache, $location, $q, $timeout, $window, SUGUtilities, sugCacheFactory, errorService, profilePicService, signupPageService, listid, memberId, slotdata, slotitem, theme, tzshort, showprofilepics, shownames, signuptype ){\r\n\r\n $scope.isProcessing = false;\r\n $scope.loaded = false;\r\n $scope.frmObj = {};\r\n $scope.slotdata = slotdata;\r\n $scope.slotitem = slotitem;\r\n $scope.theme = theme;\r\n $scope.tzshort = tzshort;\r\n $scope.showprofilepics = showprofilepics;\r\n $scope.shownames = shownames;\r\n $scope.themestyles = '';\r\n $scope.modalParticipants = [];\r\n $scope.showfullcomment = false;\r\n $scope.signuptype = signuptype;\r\n $scope.slotimages = [];\r\n\r\n var ldDeferred , isSending = false;\r\n\r\n /* View Specific Strings */\r\n $scope.strings = {\r\n table: {\r\n first: 'First'\r\n , last: 'Last'\r\n , quantity: 'Qty'\r\n , comment: 'Comment'\r\n , noData: 'There are no participants for this slot item.'\r\n , noFilteredData: 'No data matched your search criteria. Please try again.'\r\n }\r\n , errorDirective: {\r\n errorsTitle: ''\r\n , errorsPleaseCorrect: 'Please correct the following issues:'\r\n }\r\n };\r\n\r\n //vars used to map data from the different SU models to the front end\r\n $scope.slotinfo = {\r\n title: ''\r\n , timelabel: ''\r\n , imagealttext: ''\r\n , datelabel: {}\r\n , slotimages: []\r\n , locdetail: {}\r\n };\r\n\r\n //init error service\r\n $scope.es = errorService.newInstance();\r\n $scope.es.init();\r\n $scope.es.clearErrors();\r\n\r\n //pre-define form model\r\n $scope.frmObj = {\r\n searchFilter: ''\r\n };\r\n\r\n /* Tooltip vars */\r\n $scope.popTrig = 'mouseenter';\r\n $scope.popPlacement = 'top';\r\n $scope.popDelay = 300;\r\n\r\n /* Pagination */\r\n $scope.recordCount = 0;\r\n $scope.pagination = {\r\n currentPage: 1,\r\n maxSize: 5,\r\n numPerPage: 10\r\n };\r\n\r\n $scope.perPageOptions = [\r\n {label:'Show', count:0, previouscount:0}\r\n , {label:'10', count:10, previouscount:0}\r\n , {label:'25', count:25, previouscount:10}\r\n , {label:'50', count:50, previouscount:25}\r\n ];\r\n\r\n\r\n // Handler for Processing Status\r\n $scope.$on('isProcessing', function (event, isProcessing) {\r\n $scope.isProcessing = isProcessing;\r\n\r\n disableForm(isProcessing);\r\n\r\n if ($scope.isProcessing) {\r\n SUGUtilities.showLoading('processing');\r\n }\r\n });\r\n\r\n //manage disabling the form\r\n var disableForm = function (blnDisabled) {\r\n $scope.frmDisableField = blnDisabled;\r\n };\r\n\r\n // close the modal\r\n $scope.dismiss = function () {\r\n $modalInstance.dismiss(false);\r\n };\r\n\r\n /************************\r\n SORTING and PAGINATION\r\n ************************/\r\n /* Column Direct Sort */\r\n $scope.setSort = function (columnKey) {\r\n $scope.frmObj.orderColumn = columnKey;\r\n $scope.frmObj.direction = !$scope.frmObj.direction;\r\n $scope.arrowDir = $scope.frmObj.direction ? 'sugicon-arrow-down-thick' : 'sugicon-arrow-up-thick';\r\n loadData( true ); //force the data to reset\r\n };\r\n\r\n /* Apply Settings/Filter */\r\n var filterData = function() {\r\n if( $scope.loaded ){\r\n //sorting and filtering is handled on the backend, so just return the entire record set to be paginated below\r\n $scope.participantsFiltered = angular.copy( $scope.modalParticipants );\r\n\r\n $scope.recordCount = $scope.participantsFiltered.length;\r\n\r\n // Apply Pagination\r\n if ($scope.participantsFiltered.length) {\r\n var begin = ($scope.pagination.currentPage - 1) * parseInt($scope.pagination.numPerPage);\r\n var end = begin + parseInt($scope.pagination.numPerPage);\r\n $scope.participantsFiltered = $scope.participantsFiltered.slice(begin, end);\r\n\r\n // If end up with no results, recursively step back until we get valid paged results\r\n if (!$scope.participantsFiltered.length && $scope.pagination.currentPage > 1) {\r\n $scope.pagination.currentPage--;\r\n filterData();\r\n }\r\n }\r\n }\r\n };\r\n\r\n /* Prepare Settings/Filter */\r\n var prepareSettings = function () {\r\n $scope.settingID = 'settingID' in $scope.frmObj ? $scope.frmObj.settingID : 0;\r\n if (!('searchFilter' in $scope.frmObj)) {\r\n $scope.frmObj.searchFilter = '';\r\n }\r\n if (!('orderColumn' in $scope.frmObj)) {\r\n $scope.frmObj.orderColumn = '';\r\n }\r\n if (!('direction' in $scope.frmObj)) {\r\n $scope.frmObj.direction = false;\r\n }\r\n if (!('numPerPage' in $scope.frmObj)) {\r\n $scope.frmObj.numPerPage = 10;\r\n }\r\n $scope.arrowDir = $scope.frmObj.direction ? 'sugicon-arrow-down-thick' : 'sugicon-arrow-up-thick';\r\n $scope.pagination.numPerPage = $scope.frmObj.numPerPage;\r\n };\r\n\r\n /**\r\n * Function to kick off any initilization steps, such as data loading and setting defaults\r\n */\r\n var init = function(){\r\n\r\n //set up vars for use in the UI based on the current sign up type\r\n switch ($scope.signuptype) {\r\n\r\n case 'calendar' :\r\n $scope.slotinfo.title = $scope.slotitem.item;\r\n $scope.slotinfo.datalabel = $scope.slotdata.dateLabel;\r\n\r\n if ( $scope.slotdata.timeLabel.length ) {\r\n //timeLabel for Date Sorted/Slots Only is slightly different HTML markup than Slot Sorted\r\n $scope.slotinfo.timelabel = $scope.slotdata.timeLabel.replace(/
        /g,'').replace(/-/g,' -') + ' ' + $scope.tzshort.toUpperCase() + '';\r\n }\r\n\r\n $scope.slotinfo.locdetail = $scope.slotdata.locdetail;\r\n $scope.slotinfo.locdetail.location = $scope.slotdata.location;\r\n break;\r\n\r\n case 'standard_d' : // date sorted\r\n case 'nodate': // slots only\r\n if( Object.keys($scope.slotitem.images).length ) {\r\n $scope.slotinfo.slotimages = $scope.slotitem.images.images;\r\n }\r\n $scope.slotinfo.imagealttext = ($scope.slotinfo.slotimages.length) ? ( ($scope.slotitem.images.itemdescription.length) ? $scope.slotitem.images.itemdescription : $scope.slotitem.images.itemname + ' image' ) : '';\r\n $scope.slotinfo.title = $scope.slotitem.item;\r\n $scope.slotinfo.datalabel = $scope.slotdata.dateLabel;\r\n if($scope.signuptype != 'nodate'){\r\n if($scope.slotdata.timeLabel.length){\r\n //timeLabel for Date Sorted/Slots Only is slightly different HTML markup than Slot Sorted\r\n $scope.slotinfo.timelabel = $scope.slotdata.timeLabel.replace(/
        /g,'').replace(/-/g,' -') + ' ' + $scope.tzshort.toUpperCase() + '';\r\n }\r\n $scope.slotinfo.locdetail = $scope.slotdata.locdetail;\r\n $scope.slotinfo.locdetail.location = $scope.slotdata.location;\r\n }\r\n break;\r\n\r\n case 'standard_i': // slot sorted\r\n if( Object.keys($scope.slotdata.images).length ) {\r\n $scope.slotinfo.slotimages = $scope.slotdata.images.images ;\r\n }\r\n\r\n $scope.slotinfo.imagealttext = ($scope.slotinfo.slotimages.length) ? ( ($scope.slotdata.images.itemdescription.length) ? $scope.slotdata.images.itemdescription : $scope.slotdata.images.itemname + ' image' ) : '';\r\n $scope.slotinfo.title = $scope.slotdata.item;\r\n if($scope.slotitem.timeLabel.length){\r\n //timeLabel for Slot Sorted is slightly different HTML markup than Date Sorted/Slots Only\r\n $scope.slotinfo.timelabel = $scope.slotitem.timeLabel.replace(/
        /g,'').replace(/-/g,' - ') + ' ' + $scope.tzshort.toUpperCase() + '';\r\n }\r\n $scope.slotinfo.datalabel = $scope.slotitem.dateLabel;\r\n\r\n $scope.slotinfo.locdetail = $scope.slotitem.locdetail;\r\n $scope.slotinfo.locdetail.location = $scope.slotitem.location;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n\r\n //set the custom styles to match the theme\r\n $scope.themestyles = generateModalStyles($scope.theme, '.participant-details');\r\n\r\n //loadData() will be run automatically by the pagination watcher, so no need to run it in init()\r\n };\r\n\r\n /**\r\n * Used to load the participants data from the back end\r\n * This function is called by various UI eleemnts for backedn pagination\r\n */\r\n var loadData = function( blnForceRefresh ){\r\n //toggle spinner and form disable\r\n SUGUtilities.broadCast('isProcessing', true);\r\n\r\n //kill any previous requests to prevent a pile up\r\n if(isSending) {\r\n ldDeferred.resolve();\r\n }\r\n isSending = true;\r\n ldDeferred = $q.defer();\r\n\r\n //determine if we are resetting the main array of participants\r\n if( typeof blnForceRefresh === 'undefined' ){ blnForceRefresh = false; }\r\n\r\n //pre-set the Settings values\r\n prepareSettings();\r\n\r\n //determine the data range to load; load x10 recoord to buffer enough data for pagination\r\n var intLastVisibleRow = $scope.pagination.currentPage * $scope.frmObj.numPerPage;\r\n var intQryRowStart = (intLastVisibleRow - $scope.frmObj.numPerPage) + 1;\r\n var intQryRowEnd = $scope.modalParticipants.length + (10 * $scope.frmObj.numPerPage);\r\n\r\n //Make data call if we need to reset the modalParticipants array, or if we don't have enough records in buffer\r\n if( !$scope.modalParticipants.length || blnForceRefresh || ($scope.modalParticipants.length < $scope.slotitem.participantcount && intLastVisibleRow >= $scope.modalParticipants.length) ){\r\n\r\n //Adjust the offset when we go beyond the first 10 pages so that it doesn't include the previous page of data a 2nd time\r\n if( $scope.modalParticipants.length && !blnForceRefresh && intQryRowStart > 1 ){\r\n var intOffset = intQryRowStart + $scope.frmObj.numPerPage;\r\n } else {\r\n var intOffset = intQryRowStart;\r\n }\r\n\r\n signupPageService.getSignUpParticipantsBySlotItem({\r\n \"listid\": listid\r\n , \"slotitemid\": $scope.slotitem.slotitemid\r\n , \"offset\": intOffset\r\n , \"limitTo\": intQryRowEnd\r\n , \"search\": $scope.frmObj.searchFilter\r\n , \"orderBy\": $scope.frmObj.orderColumn\r\n , \"orderDesc\": $scope.frmObj.direction\r\n , \"memberidViewing\": memberId\r\n }).then(function (response) {\r\n if(SUGUtilities.ajaxResultInvalid(response.data)) {\r\n //toggle spinner and form disable\r\n SUGUtilities.broadCast('isProcessing', false);\r\n\r\n // invalid response, show error\r\n $scope.es.setError('dateSortedParticipantsModal', SUGUtilities.getAjaxResponseMessage(response));\r\n isSending = false;\r\n } else {\r\n //response was valid\r\n var r = SUGUtilities.lowerCaseKeys( response.data );\r\n\r\n if( r.success && Object.keys(r.data).length ){\r\n if(!$scope.modalParticipants.length || blnForceRefresh){\r\n //if we ran a search or a sort, then reset data array\r\n $scope.modalParticipants = r.data.participants;\r\n } else {\r\n //add new data set to what we already have for forward/backwards pagination\r\n var arrCurrentDataSet = angular.copy( $scope.modalParticipants );\r\n $scope.modalParticipants = arrCurrentDataSet.concat( r.data.participants );\r\n }\r\n }\r\n isSending = false;\r\n $scope.loaded = true;\r\n\r\n // run the filter\r\n filterData();\r\n }\r\n\r\n ldDeferred.resolve($scope.modalParticipants);\r\n\r\n //toggle spinner and form disable\r\n SUGUtilities.broadCast('isProcessing', false);\r\n\r\n //set focus on the search field\r\n setSearchFocus();\r\n });\r\n } else {\r\n //If we don't need to load more backend data then just retunr what we have and filter as usual\r\n isSending = false;\r\n $scope.loaded = true;\r\n\r\n filterData();\r\n\r\n ldDeferred.resolve($scope.modalParticipants);\r\n\r\n //toggle spinner and form disable\r\n SUGUtilities.broadCast('isProcessing', false);\r\n\r\n //set focus on the search field\r\n setSearchFocus();\r\n } // END backend call\r\n\r\n return ldDeferred.promise;\r\n };\r\n\r\n /**\r\n * Utility function to set focus on the search field after data updates\r\n * Use $timeout for slight delay to allow form time to render\r\n */\r\n var setSearchFocus = function() {\r\n if( $scope.recordCount > $scope.frmObj.numPerPage || $scope.frmObj.searchFilter.length > 0 ){\r\n $timeout( function(){\r\n document.getElementById('filter').focus();\r\n }, 500 );\r\n }\r\n };\r\n\r\n /**\r\n * Generate and return the dynamic CSS using the passed in sign up theme style values. Used in both the edit and public portal pages.\r\n * @param {Object} themecss - object containing colors to use in the generated styles\r\n * @param {String} classContainer - css selector of html element containing all content data\r\n * @param {String} wrapperSelector - css selector of html element wrapping specific areas of data\r\n */\r\n var generateModalStyles = function(themecss, classContainer, wrapperSelector){\r\n // if we have an empty themecss object return an empty string\r\n if( SUGUtilities.isUndefinedOrEmptyObject(themecss) ){\r\n return '';\r\n }\r\n classContainer = SUGUtilities.isDefinedNotNullNotEmpty(classContainer) ? classContainer : '';\r\n wrapperSelector = SUGUtilities.isDefinedNotNullNotEmpty(wrapperSelector) ? wrapperSelector : '';\r\n\r\n //generate the styles\r\n var themeStyles = '';\r\n\r\n //modal background\r\n if( themecss.backgroundcolor.length || themecss.backgroundimage.length){\r\n themeStyles += classContainer + ' .white-popup {';\r\n if( themecss.backgroundcolor.length ){ themeStyles += 'background-color: ' + themecss.backgroundcolor + ' !important; '; }\r\n if( themecss.backgroundimage.length ){ themeStyles += 'background-image: url(\"/images/theme/' + themecss.backgroundimage.split(/[/]+/).pop() + '\") !important; '; }\r\n themeStyles += ' } ';\r\n }\r\n\r\n //modal title\r\n if( themecss.textcolor2.length ){\r\n themeStyles += classContainer + ' .participant-details--title { color: ' + themecss.textcolor2 + ' !important; font-weight:500; margin-bottom: 2px !important; }';\r\n }\r\n\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' .participant-details--date-time { color: ' + themecss.textcolor1 + '; font-weight:500; }';\r\n themeStyles += classContainer + ' .participant-details--day { color: ' + themecss.textcolor1 + '; font-weight:normal; font-size: 94%; }';\r\n }\r\n\r\n themeStyles += classContainer + ' .participant-details--loc-name { font-size: 96%; }';\r\n\r\n //modal-close\r\n if( themecss.buttoncolor.length ){\r\n themeStyles += classContainer + ' button.modal-close { color: ' + themecss.textcolor2 + ' !important; }';\r\n }\r\n\r\n //slot image\r\n themeStyles += classContainer + ' .participant-details--slot-image { max-height:110px; border-radius: 6px; margin-bottom: 8px; ';\r\n if( themecss.tableheaderbackground.length ){\r\n themeStyles += ' border:1px solid ' + themecss.tableheaderbackground + '; }';\r\n } else {\r\n themeStyles += '}';\r\n }\r\n\r\n //table\r\n themeStyles += classContainer + ' .sTable, .sTableSmall {margin-bottom: 8px;}';\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' table .table, .sTable, .sTableSmall { border-top: 3px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-right: 1px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-bottom: 3px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-left: 1px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += '}';\r\n }\r\n\r\n //hyperlinks in the table\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' table a, .sTable a, .sTableSmall a { color: ' + themecss.textcolor1 + '; text-decoration: underline; }';\r\n themeStyles += classContainer + ' table a.small, .sTable a.small, .sTableSmall a.small { font-size: 0.85em; }';\r\n }\r\n\r\n //table thead\r\n themeStyles += classContainer + ' table thead { ';\r\n if( themecss.tableheaderbackground.length ){ themeStyles += ' background-color: ' + themecss.tableheaderbackground + ' !important; '; }\r\n if( themecss.tableheadertext.length ){ themeStyles += ' color: ' + themecss.tableheadertext + ' !important; '; }\r\n if( themecss.tableheaderimage.length ){ themeStyles += ' background-image: url(' + themecss.tableheaderimage + ') !important; '; }\r\n themeStyles += '}';\r\n\r\n //table thead links\r\n if( themecss.tableheadertext.length ){\r\n themeStyles += classContainer +\r\n ' .sTableSmall thead>tr>th a:not(.btn),' +\r\n ' .sTableSmall thead>tr>th a:hover:not(.btn),' +\r\n '.sTableSmall thead>tr>th a:focus:not(.btn),' +\r\n '.sTableSmall thead>tr>th a:active:not(.btn),' +\r\n '.sTableSmall thead>tr>th a:visited:not(.btn),' +\r\n '.sTable thead>tr>th a:not(.btn),' +\r\n '.sTable thead>tr>th a:hover:not(.btn),' +\r\n '.sTable thead>tr>th a:focus:not(.btn),' +\r\n '.sTable thead>tr>th a:active:not(.btn),' +\r\n '.sTable thead>tr>th a:visited:not(.btn) {' +\r\n 'color: ' + themecss.tableheadertext + ' !important; ' +\r\n 'text-decoration: none; ' +\r\n '}';\r\n }\r\n\r\n //table rows\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' table.table tbody tr td { border-bottom:1px solid ' + themecss.textcolor1 + '; color: ' + themecss.textcolor1 + '; ';\r\n }\r\n if( themecss.backgroundcolor.length ){\r\n themeStyles += ' background-color: ' + themecss.backgroundcolor + '; } ';\r\n } else if( themecss.textcolor1.length ){\r\n themeStyles += ' } ';\r\n }\r\n\r\n //pagination - box and text\r\n themeStyles += classContainer + ' .pagination>li>a, .pagination>li>span { ';\r\n if( themecss.textcolor1.length ){\r\n themeStyles += ' color: ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border: 1px solid ' + themecss.textcolor1 + '; ';\r\n }\r\n if( themecss.backgroundcolor.length ){\r\n themeStyles += ' background-color: ' + themecss.backgroundcolor + '; ';\r\n }\r\n themeStyles += '}';\r\n\r\n //pagination - selected page\r\n themeStyles += classContainer + ' .pagination>.active>a, ' +\r\n '.pagination>.active>a:focus, ' +\r\n '.pagination>.active>a:hover, ' +\r\n '.pagination>.active>span, ' +\r\n '.pagination>.active>span:focus, ' +\r\n '.pagination>.active>span:hover { ';\r\n if( themecss.buttontextcolor.length ){\r\n themeStyles += ' color: ' + themecss.buttontextcolor + '; ';\r\n }\r\n if( themecss.buttoncolor.length ){\r\n themeStyles += ' background-color: ' + themecss.buttoncolor + '; ';\r\n themeStyles += ' border-color: ' + themecss.textcolor1 + '; ';\r\n }\r\n themeStyles += '}';\r\n\r\n //pagination - disabled links\r\n themeStyles += classContainer + ' .pagination>.disabled>a, ' +\r\n '.pagination>.disabled>a:focus, ' +\r\n '.pagination>.disabled>a:hover, ' +\r\n '.pagination>.disabled>span, ' +\r\n '.pagination>.disabled>span:focus, ' +\r\n '.pagination>.disabled>span:hover { ';\r\n if( themecss.textcolor1.length ){\r\n themeStyles += ' color: ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-color: ' + themecss.textcolor1 + '; ';\r\n }\r\n if( themecss.backgroundcolor.length ){\r\n themeStyles += ' background-color: ' + themecss.backgroundcolor + '; ';\r\n\r\n }\r\n themeStyles += '}';\r\n\r\n //pagination - link hovers\r\n themeStyles += classContainer + ' pagination>li>a:focus, ' +\r\n '.pagination>li>a:hover, ' +\r\n '.pagination>li>span:focus, ' +\r\n '.pagination>li>span:hover { ';\r\n if( themecss.buttontextcolor.length ){\r\n themeStyles += ' background-color: ' + themecss.buttontextcolor + '; ';\r\n }\r\n if( themecss.buttoncolor.length ){\r\n themeStyles += ' color: ' + themecss.buttoncolor + '; ';\r\n }\r\n themeStyles += '}';\r\n\r\n //Items Per Page directive override classes\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' .ipp li { color: ' + themecss.textcolor1 + ' !important; }';\r\n themeStyles += classContainer + ' .ipp li + li { color: ' + themecss.textcolor1 + ' !important; }';\r\n themeStyles += classContainer + ' .ipp li:hover:not(.active), .ipp li:active:not(.active) { color: ' + themecss.buttontextcolor + ' !important; }';\r\n }\r\n if( themecss.buttoncolor.length ){\r\n themeStyles += classContainer + ' .ipp li.active { ' +\r\n ' color:' + themecss.buttontextcolor + ' !important; ' +\r\n ' border: 1px solid ' + themecss.buttoncolor + ' !important; ' +\r\n ' background-color: ' + themecss.buttoncolor + ' !important; }';\r\n }\r\n if( themecss.buttoncolor.length ){\r\n themeStyles += classContainer + ' .ipp li:hover:not(.active), .ipp li:active:not(.active) { ' +\r\n ' border: 1px solid ' + themecss.buttontextcolor + ' !important; ' +\r\n ' background-color: ' + themecss.buttoncolor + ' !important; }';\r\n }\r\n themeStyles += classContainer + ' .ipp li:first-child:hover:not(.active), .ipp li:first-child:active:not(.active) { ' +\r\n ' border: none !important; ' +\r\n ' color: ' + themecss.textcolor1 + ' !important; ' +\r\n ' background-color: transparent !important; }';\r\n return themeStyles;\r\n };\r\n\r\n /**\r\n * Wrapper for the profilePicService method, this is so that we can easily add additional functionality specific to the participant summary later\r\n */\r\n $scope.parseProfilePicData = function(participant){\r\n return profilePicService.parseProfilePicData(participant);\r\n };\r\n\r\n /**\r\n * Update the NumPerPage var when the user clicks the Items-Per-Page directive value\r\n * @param {integer} count - number indicating the number of items to show on the page\r\n */\r\n $scope.setPerPage = function(count){\r\n if( count > 0 ){\r\n $scope.frmObj.numPerPage = parseInt(count);\r\n // when frmObj updates the filter runs and re-loads data\r\n }\r\n };\r\n\r\n //override the pagination template so we can update the arrows with sugicons\r\n $templateCache.put('template/pagination/pagination.html',\r\n \"
          \\n\" +\r\n \"
        • \\n\" +\r\n \"
        • \\n\" +\r\n \"
        • {{page.text}}
        • \\n\" +\r\n \"
        • \\n\" +\r\n \"
        • \\n\" +\r\n \"
        \");\r\n\r\n\r\n /************************\r\n MODAL WATCHERS\r\n ************************/\r\n /* Watch Pagination - DO NOT PREFIX THESE VARS WITH $scope. (ex. $scope.pagination) */\r\n $scope.$watch('pagination.currentPage + pagination.numPerPage', function (){\r\n loadData();\r\n });\r\n\r\n /* Watch frmObj */\r\n $scope.$watchCollection('frmObj', function (nVal, oVal) {\r\n var newVal = angular.copy(nVal);\r\n var oldVal = angular.copy(oVal);\r\n\r\n // validate number per page (stop processing if empty or invalid since we must have it for proper filter/sort)\r\n if (!$scope.frmObj.numPerPage || $scope.frmObj.numPerPage.toString().trim() === '') {\r\n return;\r\n } else if (!(angular.isNumber(~~$scope.frmObj.numPerPage) && isFinite(~~$scope.frmObj.numPerPage)) || ~~$scope.frmObj.numPerPage <= 0) {\r\n SUGUtilities.showMagnificAlert($scope.strings.itemsPerPageInvalid, 'error', '', 'Sorry!');\r\n $scope.frmObj.numPerPage = oldVal.numPerPage;\r\n return;\r\n }\r\n\r\n /* Apply Filter - Filter through the data Array, NOT the filtered data */\r\n //$scope.participantsFiltered = $filter('orderBy')($scope.modalParticipants, $scope.frmObj.orderColumn, $scope.frmObj.direction);\r\n\r\n /* Update Settings in Factory */\r\n sugCacheFactory.set('frmObj', angular.copy($scope.frmObj) );\r\n prepareSettings();\r\n\r\n /* Apply Search Filter if Present - DeBounce directive on search field handles typing delay */\r\n if (newVal.searchFilter != oldVal.searchFilter) {\r\n loadData( true ); //force the data to reset\r\n } else {\r\n filterData();\r\n }\r\n });\r\n\r\n init();\r\n }\r\n}());\r\n","/**************************************************\r\n CONTROLLER: calendarViewModalController\r\n**************************************************/\r\n(function(){\r\n // add the controller\r\n SUGApp.controller('calendarViewModalController', calendarViewModalController);\r\n\r\n calendarViewModalController.$inject = ['$scope','$modalInstance', '$modal','$filter','$templateCache','$location','$q','$timeout','$window','SUGUtilities',\r\n 'sugCacheFactory','errorService','profilePicService','signupPageService','theme','objDate','shortdformat','dateformat','tzshort', 'selectionHistoryArray',\r\n 'memberId','listid', 'selectedSlotItems', 'isUserSignUpOwner', 'isUserSignUpAdmin', 'isLocked', 'arrUserSlotItems',\r\n 'userSignUp','toggleSlotItem', 'getDateLabel', 'getQtyForMember','editItemMember', 'swapItemMember', 'signupInfo', 'openParticipantDetails'];\r\n\r\n function calendarViewModalController( $scope, $modalInstance, $modal, $filter, $templateCache, $location, $q, $timeout, $window, SUGUtilities,\r\n sugCacheFactory, errorService, profilePicService, signupPageService, theme, objDate, shortdformat, dateformat, tzshort, selectionHistoryArray,\r\n memberId, listid, selectedSlotItems, isUserSignUpOwner, isUserSignUpAdmin, isLocked, arrUserSlotItems,\r\n userSignUp, toggleSlotItem, getDateLabel, getQtyForMember, editItemMember, swapItemMember, signupInfo, openParticipantDetails) {\r\n\r\n $scope.isProcessing = false;\r\n $scope.theme = theme;\r\n $scope.objDate = objDate;\r\n $scope.shortdformat = shortdformat;\r\n $scope.dateformat = dateformat;\r\n $scope.tzshort = tzshort;\r\n $scope.themestyles = '';\r\n $scope.showTimeColumn = false;\r\n $scope.showLocationColumn = false;\r\n $scope.showStacked = false; //Standard or Stacked layout\r\n\r\n //Participant Summary objects\r\n $scope.memberId = memberId;\r\n $scope.listid = listid;\r\n\r\n $scope.editItemMember = editItemMember;\r\n $scope.swapItemMember = swapItemMember;\r\n $scope.openParticipantDetails = openParticipantDetails;\r\n $scope.userSignUp = userSignUp;\r\n $scope.signupInfo = signupInfo;\r\n $scope.toggleSlotItem = toggleSlotItem;\r\n $scope.selectedSlotItems = selectedSlotItems;\r\n $scope.getQtyForMember = getQtyForMember;\r\n $scope.isLocked = isLocked;\r\n $scope.isUserSignUpAdmin = isUserSignUpAdmin;\r\n $scope.isUserSignUpOwner = isUserSignUpOwner;\r\n\r\n $scope.columnCount = 1;\r\n\r\n $scope.showPaymentMessage = false;\r\n $scope.paymentMessage = '';\r\n\r\n var slots = $scope.objDate.slots; //slots variable\r\n\r\n /* determine which columns, time and/or location, to show */\r\n for (var i = 0; i < slots.length; i++) {\r\n\r\n //see if any slots require payment message to be displayed.\r\n if (!$scope.showPaymentMessage) {\r\n $scope.showPaymentMessage = slots[i].showPaymentMessage;\r\n $scope.paymentMessage = ($scope.showPaymentMessage) ? slots[i].paymentMessage : '';\r\n }\r\n\r\n if (!$scope.showTimeColumn) {\r\n $scope.showTimeColumn = (slots[i].usetime == 1) ? true : false;\r\n }\r\n\r\n if (!$scope.showLocationColumn) {\r\n $scope.showLocationColumn = (slots[i].location.length > 0) ? true : false;\r\n }\r\n\r\n //column count = 2\r\n if ( (!$scope.showTimeColumn && $scope.showLocationColumn) || ($scope.showTimeColumn && !$scope.showLocationColumn) ) {\r\n $scope.columnCount = 2;\r\n }\r\n\r\n //column count = 3\r\n if ($scope.showTimeColumn && $scope.showLocationColumn) {\r\n $scope.showStacked = true;\r\n $scope.columnCount = 3;\r\n }\r\n\r\n //exit when everything has been satified\r\n if ($scope.showTimeColumn && $scope.showLocationColumn && $scope.showPaymentMessage) {\r\n break;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Edit Item Member\r\n * @param {Integer} - modalInfo, see getDeleteModalInfo for contents\r\n * @param {Integer} - itemmember, the itemmember to delete\r\n * @param {Integer} - itemmember, the itemmember to delete\r\n */\r\n $scope.editItemMember = function (itemmemberid,slotitemid,memberid) {\r\n\r\n //Dismiss model otherwise it gets in the way\r\n $scope.dismiss();\r\n\r\n //Common routine from signupController, used by reference\r\n editItemMember(itemmemberid,slotitemid,memberid);\r\n };\r\n\r\n /**\r\n * Deletes an item member. This version updates the Calandar View Modal\r\n * @param {Object} - modalInfo, see getDeleteModalInfo for contents\r\n * @param {Object} - itemmember, the itemmember to delete\r\n */\r\n $scope.deleteItemMember = function(modalInfo, itemmember) {\r\n // wait for the promise to resolve and if successful, delete the item member from the client side cache\r\n signupPageService.deleteItemMemberModal(modalInfo, itemmember).then(function (deleteInfo) {\r\n\r\n // delete the itemmember from the main participants array\r\n var participants = $scope.signupInfo.participants[modalInfo.slotitemid];\r\n $scope.signupInfo.participants[modalInfo.slotitemid] = participants.filter( function(itemmember){\r\n return itemmember.itemmemberid != deleteInfo.itemmemberid;\r\n });\r\n\r\n // update the filterdata participants array for the slotitem\r\n var slots = $scope.objDate.slots; //slots variable\r\n var slotitemfound = false;\r\n var slotitem;\r\n\r\n /* locat the slot the slot item */\r\n for (var x = 0; x < slots.length; x++) {\r\n\r\n var slotitems = slots[x].slotitems;\r\n\r\n for (var z = 0; z < slotitems.length; z++) {\r\n if (slotitems[z].slotitemid == deleteInfo.slotitemid) {\r\n slotitemfound = true;\r\n slotitem = slotitems[z];\r\n break;\r\n }\r\n }\r\n\r\n if (slotitemfound) { break; }\r\n }\r\n\r\n if (!slotitemfound ) { return; } //if not found, return\r\n\r\n //Remove UserSlotItem - updates external Calendar View buttons\r\n for( var u = 0; u < arrUserSlotItems.length; u++ ){\r\n if (arrUserSlotItems[u].slotitemid === slotitem.slotitemid) {\r\n arrUserSlotItems.splice(u, 1);\r\n break;\r\n }\r\n }\r\n\r\n // if slotitem found, update the participants array and quantity info for the item member\r\n slotitem.participants = $scope.signupInfo.participants[deleteInfo.slotitemid];\r\n slotitem.qtytaken = Math.max(slotitem.qtytaken - slotitem.myqty, 0);\r\n var stcAvailable = signupPageService.getAvailability( slotitem.qty, slotitem.qtytaken, slotitem.isaddlocked, $scope.isLocked );\r\n slotitem.qtyLabel = stcAvailable.qtyLabel;\r\n slotitem.qtyLabelResponsive = stcAvailable.qtyLabelResponsive;\r\n $scope.userSignUp.totalQty -= slotitem.myqty;\r\n slotitem.myqty = ( $scope.memberId ) ? $scope.getQtyForMember(slotitem.participants, $scope.memberId) : 0;\r\n\r\n if (!$scope.signupInfo.hasavailableslots) {\r\n $scope.signupInfo.hasavailableslots = true;\r\n $scope.es.clearErrors();\r\n }\r\n\r\n slotitem.btnState = 'default';\r\n });\r\n };\r\n\r\n\r\n /* View Specific Strings */\r\n $scope.strings = {\r\n lbls: {\r\n location: 'Location'\r\n , time: 'Time'\r\n , availableslot: 'Available Slot'\r\n , donation: '($ Donation)'\r\n }\r\n\r\n , state: {\r\n default: 'default'\r\n , selected: 'selected'\r\n }\r\n\r\n , errors: {\r\n errorsTitle: ''\r\n , errorsPleaseCorrect: 'Please correct the issues indicated below.'\r\n , sorryNoSlotItemsSelected: 'You need to select at least one slot to proceed.'\r\n , modal: 'calendarviewmodal'\r\n }\r\n };\r\n\r\n //init error service\r\n $scope.es = errorService.newInstance();\r\n $scope.es.init();\r\n $scope.es.clearErrors();\r\n\r\n /* Tooltip vars */\r\n $scope.popTrig = 'mouseenter';\r\n $scope.popPlacement = 'top';\r\n $scope.popDelay = 300;\r\n\r\n /**\r\n * Toggles the slot item selection. Fires when the sign up button beside a slot item is pressed.\r\n * @param {Integer} slotitem the slotitemid\r\n */\r\n $scope.local_toggleSlotItem = function(slotitem) {\r\n\r\n $scope.es.clearErrors();\r\n\r\n var shouldAddToHistory = $scope.toggleSlotItem(slotitem, false); //Applies changes to the real selection (works better with Qty Limiting)\r\n\r\n if (shouldAddToHistory) {\r\n selectionHistoryArray.push(slotitem); //This records changes and allows them to be undone upon cancel.\r\n }\r\n\r\n };\r\n\r\n /**\r\n * Handler for processing status -> will be used on save via broadcast event\r\n * @param {object} event - broadcast event object\r\n * @param {boolean} isProcessing - when true disables form\r\n */\r\n $scope.$on('isProcessing', function (event, isProcessing) {\r\n\r\n $scope.isProcessing = isProcessing;\r\n\r\n disableForm(isProcessing);\r\n\r\n if ($scope.isProcessing) {\r\n SUGUtilities.showLoading('processing');\r\n }\r\n });\r\n\r\n\r\n /**\r\n * Manages disabling the form - Helper method\r\n * @param {boolean} blnDisabled - when true disables form\r\n */\r\n var disableForm = function (blnDisabled) {\r\n $scope.frmDisableField = blnDisabled;\r\n };\r\n\r\n\r\n // dismiss the modal\r\n $scope.dismiss = function () {\r\n $modalInstance.dismiss(false);\r\n };\r\n\r\n // close the modal\r\n $scope.close = function () {\r\n $modalInstance.dismiss(true);\r\n };\r\n\r\n //Formatted .date and .day object\r\n $scope.formatted = getDateLabel(objDate.jsDateOnly);\r\n\r\n /**\r\n * Function to kick off any initilization steps, such as data loading and setting defaults\r\n */\r\n var init = function(){\r\n //set the custom styles to match the theme\r\n $scope.themestyles = generateModalStyles($scope.theme, ' .calendarview-modal');\r\n };\r\n\r\n /**\r\n * Generate and return the dynamic CSS using the passed in sign up theme style values. Used in both the edit and public portal pages.\r\n * @param {Object} themecss - object containing colors to use in the generated styles\r\n * @param {String} classContainer - css selector of html element containing all content data\r\n */\r\n var generateModalStyles = function(themecss, classContainer, wrapperSelector){\r\n // if we have an empty themecss object return an empty string\r\n if( SUGUtilities.isUndefinedOrEmptyObject(themecss) ){\r\n return '';\r\n }\r\n classContainer = SUGUtilities.isDefinedNotNullNotEmpty(classContainer) ? classContainer : '';\r\n\r\n //generate the styles\r\n var themeStyles = '';\r\n\r\n //modal background\r\n if( themecss.backgroundcolor.length || themecss.backgroundimage.length){\r\n themeStyles += classContainer + ' .white-popup {';\r\n if( themecss.backgroundcolor.length ){ themeStyles += 'background-color: ' + themecss.backgroundcolor + ' !important; '; }\r\n if( themecss.backgroundimage.length ){ themeStyles += 'background-image: url(\"/images/theme/' + themecss.backgroundimage.split(/[/]+/).pop() + '\") !important; '; }\r\n themeStyles += ' } ';\r\n }\r\n\r\n //modal title\r\n if( themecss.textcolor2.length ){\r\n themeStyles += classContainer + ' .calendarview-modal--title { color: ' + themecss.textcolor2 + '; font-weight:500; margin-bottom: 2px; }';\r\n themeStyles += classContainer + ' .calendarview-modal--date-dt { color: ' + themecss.textcolor2 + '; font-size: 2.2rem; font-weight: 700; }';\r\n themeStyles += classContainer + ' .calendarview-modal--date-day { color: ' + themecss.textcolor2 + '; }';\r\n }\r\n\r\n // date-time formatting\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' .calendar-view--service-fee-msg { color: ' + themecss.textcolor1 + '; background-color: ' + themecss.backgroundcolor + ' }';\r\n themeStyles += classContainer + ' .participant-summary--name, .participant-summary--comment { color: ' + themecss.textcolor1 + ' }';\r\n themeStyles += classContainer + ' .calendarview-modal--location { border-top-color: ' + themecss.textcolor1 + '}';\r\n themeStyles += classContainer + ' .calendarview-modal--date-time { border-top-color: ' + themecss.textcolor1 + '}';\r\n themeStyles += classContainer + ' .calendarview-modal--date-time { color: ' + themecss.textcolor1 + '; font-weight:700; line-height: 1.43rem, font-size: 1.6rem }';\r\n themeStyles += classContainer + ' .calendarview-modal--calendar-dateformat { color: ' + themecss.textcolor1 + '; font-size: 1.3rem; opacity: .7; text-align: right; }';\r\n themeStyles += classContainer + ' .slot-title { color: ' + themecss.textcolor1 + '; }';\r\n themeStyles += classContainer + ' .slot-pmtwrap { color: ' + themecss.textcolor1 + '; }';\r\n themeStyles += classContainer + ' .slot-comment { color: ' + themecss.textcolor1 + '; }';\r\n themeStyles += classContainer + ' .SUGlink, .SUGLink, .SUGLink:hover { color: ' + themecss.textcolor1 + '; text-decoration: none; }';\r\n themeStyles += classContainer + ' .slots-spacing { border-top-color: ' + themecss.textcolor1 + '}';\r\n }\r\n\r\n //will be used in when location is added\r\n themeStyles += classContainer + ' .calendarview-modal--loc-name { font-size: 96%; }';\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' .loc-noaddress { color: ' + themecss.textcolor1 + '}';\r\n }\r\n\r\n //modal-close\r\n if( themecss.buttoncolor.length ){\r\n themeStyles += classContainer + ' button.modal-close { color: ' + themecss.textcolor2 + ' !important; }';\r\n }\r\n\r\n //slot image\r\n themeStyles += classContainer + ' .calendarview-modal--slot-image { max-height:110px; border-radius: 6px; margin-bottom: 8px; ';\r\n if( themecss.tableheaderbackground.length ){\r\n themeStyles += ' border:1px solid ' + themecss.tableheaderbackground + '; }';\r\n } else {\r\n themeStyles += '}';\r\n }\r\n\r\n //table body solid background color\r\n themeStyles += classContainer + ' tbody { ';\r\n if( themecss.backgroundcolor.length ){\r\n themeStyles += ' background-color: ' + themecss.backgroundcolor + '; }';\r\n } else {\r\n themeStyles += '}';\r\n }\r\n\r\n //table\r\n themeStyles += classContainer + ' .sTable, .sTableSmall {margin-bottom: 8px;}';\r\n if( themecss.textcolor1.length ){\r\n themeStyles += classContainer + ' table .table, .sTable, .sTableSmall { border-top: 3px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-right: 1px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-bottom: 3px solid ' + themecss.textcolor1 + '; ';\r\n themeStyles += ' border-left: 1px solid ' + themecss.textcolor1 + '; ';\r\n\r\n themeStyles += '}';\r\n themeStyles += classContainer + ' .nestedTable, .tcell { border-left: 1px solid ' + themecss.textcolor1 + ';}';\r\n }\r\n\r\n //table header\r\n themeStyles += classContainer + ' table thead { ';\r\n if( themecss.tableheaderbackground.length ){ themeStyles += ' background-color: ' + themecss.tableheaderbackground + ' !important; '; }\r\n if( themecss.tableheadertext.length ){ themeStyles += ' color: ' + themecss.tableheadertext + ' !important; '; }\r\n if( themecss.tableheaderimage.length ){ themeStyles += ' background-image: url(' + themecss.tableheaderimage + ') !important; '; }\r\n themeStyles += '}';\r\n\r\n //table thead links\r\n if( themecss.tableheadertext.length ){\r\n themeStyles += classContainer +\r\n\r\n ' .tableheader { color: ' + themecss.tableheadertext + ' !important; } ';\r\n }\r\n\r\n //calendarview table rows\r\n if( themecss.textcolor1.length ){\r\n\r\n themeStyles += classContainer +\r\n ' .tableheader { border-bottom: 2px solid ' + themecss.textcolor1 + ' !important; } ';\r\n\r\n themeStyles += classContainer +\r\n ' .nestedTableCell { border-left: 1px solid ' + themecss.textcolor1 + ' !important; border-bottom: 1px solid ' + themecss.textcolor1 + ' !important; } ';\r\n\r\n themeStyles += classContainer +\r\n ' .nestedTableCellLast { border-left: 1px solid ' + themecss.textcolor1 + ' !important; border-bottom: 0p !important; } ';\r\n\r\n }\r\n\r\n //for some reason if this line is removed the badge styling breaks\r\n themeStyles += classContainer + ' .pseudo {} ';\r\n\r\n if( themecss.buttontextcolor.length && themecss.buttoncolor.length ){\r\n themeStyles += ' .badge { color: ' + themecss.buttontextcolor + ' !important; background-color: ' + themecss.buttoncolor + ' } ';\r\n }\r\n\r\n return themeStyles;\r\n };\r\n\r\n /**\r\n * Wrapper for the profilePicService method, this is so that we can easily add additional functionality specific to the participant summary later\r\n */\r\n\r\n //This will be needed when user data is flushed out\r\n $scope.parseProfilePicData = function(participant){\r\n return profilePicService.parseProfilePicData(participant);\r\n };\r\n\r\n //product images controller\r\n var showImageController = ['$scope','$modalInstance','productImageObject', function($scope, $modalInstance, productImageObject) {\r\n $scope.productImageObject = productImageObject;\r\n\r\n $scope.dismiss = function () {\r\n $modalInstance.dismiss(false);\r\n };\r\n }];\r\n\r\n /**\r\n * Bootstrap AngularJS Modal for when user clicks on slot image zoom icon\r\n * @param {object} productImageObject - product image object\r\n * @param {string} productImageObject.itemname - display the name of the sign up item\r\n * @param {string} productImageObject.images[] - product image URLs\r\n * @param {string} productImageObject.itemdescription - item description\r\n */\r\n $scope.showImages = function( productImageObject ){\r\n return $modal.open({\r\n templateUrl: '/view/signups/dspItemImages-modal.html',\r\n controller: showImageController,\r\n resolve: {\r\n productImageObject: function () {\r\n return productImageObject;\r\n },\r\n }\r\n }).result;\r\n };\r\n\r\n //save and continue\r\n $scope.saveandcontinue = function() {\r\n\r\n //We have a selection, we can proceed\r\n if ( $scope.selectedSlotItems.length ) {\r\n $scope.es.clearErrors();\r\n $modalInstance.close({saveandcontinue: true});\r\n } else {\r\n\r\n //throw error (matches all calendar view behavior.)\r\n $scope.es.setError($scope.strings.errors.modal, $scope.strings.errors.sorryNoSlotItemsSelected);\r\n }\r\n };\r\n\r\n //save and continue\r\n $scope.selectotherdays = function() {\r\n $scope.es.clearErrors();\r\n $modalInstance.close({saveandcontinue: false});\r\n };\r\n\r\n init();\r\n }\r\n}());\r\n","/**************************************************\r\n CONTROLLER: deleteItemMemberModalController\r\n**************************************************/\r\n(function(){\r\n // add the controller\r\n SUGApp.controller('deleteItemMemberModalController', deleteItemMemberModalController);\r\n\r\n deleteItemMemberModalController.$inject = [ '$scope','$modalInstance','$q','SUGUtilities','errorService','signupPageService','modalInfo','itemmember'];\r\n function deleteItemMemberModalController( $scope, $modalInstance, $q, util, errorService, signupPageService, modalInfo, itemmember ){\r\n\r\n $scope.isProcessing = false;\r\n $scope.notifycomment = '';\r\n $scope.modalInfo = modalInfo;\r\n $scope.itemmember = itemmember;\r\n $scope.isPaymentPending = (itemmember.status.toLowerCase() === 'paymentpending'); \r\n $scope.commentLabel = '';\r\n $scope.frmDisableField = false;\r\n\r\n /* View Specific Strings */\r\n $scope.strings = {\r\n modalTitle: 'Are you sure?',\r\n slotmsg: 'You are about to delete the following:',\r\n noUndo: 'This sign up will be permanently removed. There is no undo.', \r\n errors: {\r\n errorsPleaseCorrect: 'This sign up could not be deleted for the following reason:'\r\n },\r\n paymentPendingWarning: {\r\n type: 'warning',\r\n text: 'Important Notice: A payment is pending for this item. Deleting this item will not cancel or refund a payment once the payment is processed. If you did not complete payment, you can delete the pending item(s).',\r\n dismissable: false,\r\n show: true\r\n },\r\n buttonLabel: 'Yes, Delete'\r\n };\r\n\r\n //init error service\r\n $scope.es = errorService.newInstance();\r\n $scope.es.init();\r\n $scope.es.clearErrors();\r\n\r\n /* Tooltip vars */\r\n $scope.popTrig = 'mouseenter';\r\n $scope.popPlacement = 'top';\r\n $scope.popDelay = 300;\r\n\r\n /**\r\n * Handler for the processing state.\r\n * @param {Boolean} blnProcessing - whether or not the form is processing\r\n */\r\n var setProcessing = function( blnProcessing ){\r\n $scope.isProcessing = blnProcessing;\r\n disableForm(blnProcessing);\r\n if( blnProcessing ){\r\n util.showLoading('processing');\r\n }\r\n };\r\n\r\n /**\r\n * Manage disabling the form\r\n * @param {Boolean} blnDisabled - whether or not to disable the form\r\n */\r\n var disableForm = function (blnDisabled) {\r\n $scope.frmDisableField = blnDisabled;\r\n };\r\n\r\n\r\n var deleteItemMember = function() {\r\n setProcessing(true);\r\n var payload = {\r\n listid: $scope.modalInfo.listid, \r\n itemmemberid: $scope.itemmember.itemmemberid,\r\n notify: $scope.modalInfo.notify,\r\n notifycomment: $scope.notifycomment\r\n };\r\n signupPageService.deleteItemMember(payload)\r\n .then(function(response){\r\n if (util.ajaxResultInvalid(response)) {\r\n // invalid response, show error\r\n var errMsg = util.getAjaxResponseMessage(response);\r\n $scope.es.setError( 'deleteItemMember', errMsg ); \r\n }else{\r\n $modalInstance.close({slotitemid: $scope.modalInfo.slotitemid, itemmemberid:$scope.itemmember.itemmemberid});\r\n }\r\n setProcessing(false);\r\n });\r\n };\r\n\r\n /**\r\n * Function to kick off any initilization steps, such as data loading and setting defaults\r\n */\r\n var init = function(){\r\n $scope.commentLabel = \"Notification will be sent to the sign up administrator (\" + $scope.modalInfo.contactName + \") with the following comment:\";\r\n };\r\n\r\n /**\r\n * Returns true if the quantity should be displayed\r\n */\r\n $scope.showQty = function () {\r\n return $scope.itemmember.myqty > 1;\r\n };\r\n\r\n /**\r\n * close the modal\r\n */\r\n $scope.dismiss = function () {\r\n $modalInstance.dismiss(false);\r\n };\r\n\r\n /**\r\n * Event handler when success button is clicked.\r\n */\r\n $scope.ok = function () { \r\n deleteItemMember();\r\n };\r\n\r\n init();\r\n }\r\n}());","(function(){\r\n\r\n /** setup route provider **/\r\n SUGApp.config(['$routeProvider', function ($routeProvider) {\r\n return $routeProvider\r\n .when('/', {\r\n controller : 'signupController',\r\n templateUrl : '/view/templates/signups/signuppage.html',\r\n resolve : {\r\n /* get the urlkey from the path, since it is before the angular route, we need to parse window.location.pathname to get it\r\n * url is expected to be in the form: [protocol]://[hostname]/org/urlkey\r\n */\r\n urlparts: ['signupPageService',function(svc){\r\n //Make an array of the URL pieces for use by the other resolve functions.\r\n //Note: setUrlParts strips out an empty first value IF there is one.\r\n var urlparts = window.location.pathname.split('/');\r\n svc.setUrlParts(urlparts);\r\n return urlparts;\r\n }],\r\n urlkey: ['signupPageService',function(svc){\r\n var urlparts = svc.getUrlParts();\r\n var urlkey = '';\r\n\r\n //Old URL Format: Last element in url parts array is index.cfm...\r\n if( urlparts[urlparts.length-1] == 'index.cfm'){\r\n var params = utility.getAllUrlParams();\r\n\r\n //For an old style URL, convert the params to a URLparts array so other elements get set correctly\r\n svc.convertParamsToUrlParts(params);\r\n urlparts = svc.getUrlParts();\r\n\r\n if( typeof params.urlid !== 'undefined' ){\r\n urlkey = params.urlid;\r\n svc.setUrlKey(urlkey);\r\n return urlkey;\r\n }\r\n } else {\r\n //New Url Format: 2nd element in the Array should be the urlId for either /go/ or /tabs/\r\n for( var p=0, end=urlparts.length; p\r\n div.supHeader a, div.sub-footer a { pointer-events: none; cursor: default; }\r\n div.admintoolbar, section.mktg-area { display: none !important; }\r\n \r\n `);\r\n angular.element(document).find('head').append(previewModeStyles);\r\n return true;\r\n },\r\n portalid: ['signupPageService',function(svc){\r\n //if we come from an embedded Portal, store its urlKey\r\n var urlparts = svc.getUrlParts();\r\n var pid = null;\r\n //find the urlkey value (PortalUrlKey) and return it\r\n for( var p=0, end=urlparts.length; pyou are logged in as a sign up administrator.',\r\n response: 'NOTE: These RSVP responses are only viewable because
        you are logged in as a sign up administrator.',\r\n },\r\n attending: 'Will you be attending the event?',\r\n btnSubmit: 'RSVP NOW',\r\n countOnYes: 'YES - Count on me for ',\r\n countOnMaybe: 'MAYBE - Possible guests include ',\r\n editRSVP: 'Edit',\r\n myrsvp: 'My RSVP',\r\n noresponse: 'No Response',\r\n notMe: 'This is not me',\r\n response: {\r\n adult: 'Adult Guests:',\r\n child: 'Child Guests:',\r\n confirmed: 'Confirmed:',\r\n guest: 'Guest Count:',\r\n head: 'RSVP Responses',\r\n maybe: 'Maybe:',\r\n no: 'No:',\r\n noresponse: 'No Response:',\r\n noresponseHead: 'No Response',\r\n responses: 'Responses:',\r\n yes: 'Yes:',\r\n },\r\n rsvpFor: 'RSVP for ',\r\n signedUpFor: 'Signed up for:',\r\n },\r\n ancillary: {\r\n messages: {\r\n swapSubmitted: 'Your requests have been sent. You will be notified by email when someone agrees to swap.',\r\n swapComplete: \"Your swap has been completed and the other person has been notified of the change.\",\r\n emailSent: 'An email has been sent to !email! that contains a link to edit your sign up. If you do not receive it promptly, check your JUNK folder to make sure it was not accidentally flagged as spam. If you continue to have problems receiving the email, you can register at SignUpGenius in order to edit your item.',\r\n emailSentNoBranding: 'An email has been sent to !email! that contains a link to edit your sign up. If you do not receive it promptly, check your JUNK folder to make sure it was not accidentally flagged as spam.'\r\n }\r\n }\r\n };\r\n $scope.ancillaryMessage = {};\r\n\r\n // includable admin toolbar file\r\n $scope.adminToolbar = '/view/templates/signups/admintoolbar.html';\r\n\r\n // includable admin toolbar file\r\n $scope.backToPortal = '/view/templates/signups/backtoportal.html';\r\n\r\n // includable tab menu file\r\n $scope.tabMenu = '/view/templates/signups/tabmenu.html';\r\n\r\n // instantiate error handler\r\n $scope.es = errorService.newInstance();\r\n $scope.errorStrings = {\r\n errorsTitle: '',\r\n errorsPleaseCorrect: 'Please correct the issues indicated below.'\r\n };\r\n $scope.es.init();\r\n $scope.virtualLocations = {};\r\n // Per biz rules, we have to render the header location differently if a location has a dual physical and virtual location.\r\n // 'physical' | 'virtual' | 'both'\r\n $scope.locationType = 'physical';\r\n // local variables\r\n var view = 'page';\r\n //var excludeTablet = true; // tablets will render as desktop and not mobile\r\n //var display = util.isMobile(excludeTablet) ? 'mobile' : 'desktop';\r\n var display = 'desktop'; // we will only use desktop mode here until the mobile templates are developed\r\n var format = 'rsvp';\r\n\r\n // set up list of templates\r\n // view: view type - page (sign up page), form (sign up form), or thanks (thank you page)\r\n // display: display viewport - desktop or mobile\r\n // format: sign up format - rsvp, nodate, bydate, byslot\r\n var templates = [\r\n { view: 'page', display: 'desktop', format: 'rsvp', url: '/view/templates/signups/page/d_rsvp.html'},\r\n { view: 'page', display: 'desktop', format: 'standard_d', url: '/view/templates/signups/page/d_datesorted.html'},\r\n { view: 'page', display: 'desktop', format: 'standard_i', url: '/view/templates/signups/page/d_slotsorted.html'},\r\n { view: 'page', display: 'desktop', format: 'nodate', url: '/view/templates/signups/page/d_nodate.html'},\r\n { view: 'page', display: 'desktop', format: 'calendar', url: '/view/templates/signups/page/d_calendar.html'},\r\n { view: 'page', display: 'desktop', format: 'passcode', url: '/view/templates/signups/page/d_passcode.html'},\r\n { view: 'page', display: 'desktop', format: 'expired', url: '/view/templates/signups/page/d_expired.html'},\r\n { view: 'page', display: 'mobile', format: 'rsvp', url: '/view/templates/signups/page/m_rsvp.html'},\r\n { view: 'page', display: 'mobile', format: 'standard_d', url: '/view/templates/signups/page/m_datesorted.html'},\r\n { view: 'page', display: 'mobile', format: 'standard_i', url: '/view/templates/signups/page/m_slotsorted.html'},\r\n { view: 'page', display: 'mobile', format: 'nodate', url: '/view/templates/signups/page/m_nodate.html'},\r\n { view: 'page', display: 'mobile', format: 'passcode', url: '/view/templates/signups/page/m_passcode.html'},\r\n { view: 'page', display: 'mobile', format: 'expired', url: '/view/templates/signups/page/m_expired.html'}\r\n ];\r\n\r\n $scope.frmObj = {\r\n numPerPage: 50\r\n };\r\n\r\n $scope.perPageOptions = [\r\n {label:'Show', count:0, previouscount:0}\r\n , {label:'10', count:10, previouscount:0}\r\n , {label:'25', count:25, previouscount:25}\r\n , {label:'50', count:50, previouscount:25}\r\n ] ;\r\n\r\n /**\r\n * Update the NumPerPage var when the user clicks the Items-Per-Page directive value\r\n * @param {integer} count - number indicating the number of items to show on the page\r\n \r\n $scope.setPerPage = function(count){\r\n if( count > 0 ){\r\n $scope.frmObj.numPerPage = parseInt(count);\r\n // Update pagination based on new items per page count\r\n svc.initializePagination($scope.signupInfo, $scope.frmObj);\r\n }\r\n };\r\n */\r\n\r\n $scope.currentSlots = [];\r\n // TODO $Watch the page number value, call getPage and set the page via that method and filter the array\r\n // DEV Note: Not currently used. Will be used via pagination controls implemented in SUG-16260. \r\n /** Takes a page number and returns the slots on that page based on properties in the $scope.signupInfo.listPagination object\r\n *\r\n * @param {number} pageNumber The page number to calculate the current slots off of\r\n * @returns\r\n */\r\n $scope.getPage = function(pageNumber) {\r\n if ($scope.signupInfo.allSlotsHidden)\r\n return;\r\n\r\n if (pageNumber < 1) {\r\n console.warn(\"on first page\")\r\n return;\r\n }\r\n if (pageNumber > $scope.signupInfo.listPagination.totalPages) {\r\n console.warn(\"on last page\")\r\n return;\r\n }\r\n\r\n //util.broadCast(\"isProcessing\", true);\r\n\r\n //console.table($scope.signupInfo.listPagination)\r\n const requestParams = {\r\n offset: ($scope.signupInfo.listPagination.currentPage - 1) * $scope.signupInfo.listPagination.itemsPerPage,\r\n perPage: $scope.signupInfo.listPagination.itemsPerPage\r\n }\r\n //console.log(requestParams)\r\n // TODO generate request params here and make request here\r\n $scope.signupInfo.currentSlots = $scope.signupInfo.slotsArray.slice(pageNumber - 1, pageNumber);\r\n /*\r\n $location.hash('signupContainerId');\r\n $anchorScroll();\r\n\r\n util.broadCast(\"isProcessing\", false);\r\n util.refreshPageAds();\r\n */\r\n }\r\n\r\n\r\n\r\n /** helper method to create dynamic sign up styles **/\r\n \t\t$scope.createSignUpStyle = function(){\r\n \t\t\t// this is where our dynamic style container will be\r\n var styleContainer = angular.element( document.querySelector( '#styleContainer' ) );\r\n // build the objects for the various classes\r\n // append a couple rgba values for use - ideally we will make getContainerClass a service method in the future\r\n // done here since it uses utility methods not available within getContainerClass\r\n $scope.theme['mutedTextColor1'] = util.addOpacity2color( util.color2rgb( $scope.theme.textcolor1 ), 0.15 );\r\n $scope.theme['mutedButtonColor'] = util.addOpacity2color( util.color2rgb( $scope.theme.buttoncolor ), 0.15 );\r\n var clsDetail = getContainerClass( $scope.theme );\r\n // create a style tag containing all the classes\r\n var dStyles = angular.element( '' );\r\n \t\t\t// append the style to the container\r\n styleContainer.html( dStyles );\r\n \t\t};\r\n\r\n // return appropriate template for include\r\n var getTemplate = function(){\r\n for( var i=0; i 0;\r\n var isPhysicalLocation = loc.locationid > 0;\r\n $scope.locationString = loc.location;\r\n if (isPhysicalLocation && isVirtualLocation) {\r\n $scope.locationType = 'both';\r\n var locAddress = $scope.locations[loc.locationid];\r\n var virtualLocAddress = $scope.virtualLocations[loc.virtuallocationid];\r\n $scope.locationString = '' + locAddress.name;\r\n $scope.locationString += '';\r\n $scope.locationString += '
        ' + '' + locAddress.address1 + ' ' + locAddress.address2 + '
        ' + locAddress.city + ', ' + locAddress.state + ' ' + locAddress.zipcode;\r\n $scope.locationString += '
        ';\r\n return;\r\n }\r\n if( isPhysicalLocation && loc.locationid in $scope.locations ){\r\n $scope.locationType = 'physical';\r\n var locAddress = $scope.locations[loc.locationid];\r\n $scope.locationString = '' + loc.location;\r\n $scope.locationString += '
        ' + locAddress.address1 + ' ' + locAddress.address2 + '
        ' + locAddress.city + ', ' + locAddress.state + ' ' + locAddress.zipcode + '
        ';\r\n }\r\n // Add in virtual location data to to header location\r\n if (isVirtualLocation) {\r\n $scope.locationType = 'virtual';\r\n var locAddress = $scope.virtualLocations[loc.virtuallocationid];\r\n $scope.locationString = '' + loc.location + '';\r\n }\r\n\r\n\r\n }\r\n\r\n // attachments\r\n $scope.showAttachments = typeof $scope.signupInfo.header.attachments !== 'undefined' && $scope.signupInfo.header.attachments.length ? true : false;\r\n $scope.attachments = $scope.showAttachments ? $scope.signupInfo.header.attachments : [];\r\n\r\n // calendar sync\r\n $scope.showCalendarSync = typeof $scope.signupInfo.header.calendar !== 'undefined' && 'id' in $scope.signupInfo.header.calendar ? true : false;\r\n\r\n // social share\r\n $scope.showSocialShare = $scope.signupInfo.socialshare;\r\n\r\n //if embedded sign up is opened via embedded portal, update contact url for proper page flow\r\n if( fromEmbeddedPortal() ){\r\n $scope.signupInfo.header.contacturl += '&pid=' + $scope.portalid;\r\n }\r\n\r\n // if we are in preview mode, remove the contact url\r\n if( $scope.previewMode ){\r\n $scope.signupInfo.header.contacturl = '';\r\n }\r\n };\r\n\r\n // helper - theme initialization\r\n var initializeTheme = function( objTheme ){\r\n // we need to make sure the image height and width are properly defined\r\n if( 'mainimages' in objTheme && Array.isArray(objTheme.mainimages) && objTheme.mainimages.length ){\r\n angular.forEach( objTheme.mainimages, function(obj,key){\r\n if( obj.imagewidth < 2 || obj.imageheight < 2 ){\r\n $timeout( function(){\r\n var image = new Image();\r\n image.src = obj.desktopmemberimage;\r\n image.onload = function() {\r\n obj.imagewidth = image.width;\r\n obj.imageheight = image.height;\r\n };\r\n },50);\r\n }\r\n });\r\n }\r\n $scope.theme = objTheme;\r\n $scope.createSignUpStyle();\r\n svc.setThemeInfo( $scope.theme );\r\n };\r\n\r\n // test if sign up is locked\r\n $scope.isLocked = function(){\r\n return typeof $scope.signupInfo.signuplocked !== 'undefined' && $scope.signupInfo.signuplocked ? true : false;\r\n };\r\n\r\n // test if sign up has availabel slots\r\n $scope.hasAvailableSlots = function(){\r\n return typeof $scope.signupInfo.hasavailableslots !== 'undefined' && $scope.signupInfo.hasavailableslots ? true : false;\r\n };\r\n\r\n // test if has all dates are hidden\r\n $scope.isAllDatesHidden = function(){\r\n return typeof $scope.signupInfo.alldateshidden !== 'undefined' && $scope.signupInfo.alldateshidden ? true : false;\r\n };\r\n\r\n // show date\r\n $scope.showHeaderDate = function(){\r\n return !$scope.signupInfo.nodate && typeof $scope.signupInfo.header.date !== 'undefined' && Object.keys($scope.signupInfo.header.date).length !== 0 ? true : false;\r\n };\r\n // show time\r\n $scope.showHeaderTime = function(){\r\n return !$scope.signupInfo.nodate && util.keyExists($scope.signupInfo.header, 'date.usetime') ? $scope.signupInfo.header.date.usetime : false;\r\n };\r\n\r\n // show location\r\n $scope.showHeaderLocation = function(){\r\n return typeof $scope.signupInfo.header.location !== 'undefined' && typeof $scope.signupInfo.header.location.location !== 'undefined' ? true : false;\r\n };\r\n\r\n // helper method to return file extension\r\n $scope.getFileExt = function( filename ){\r\n if( typeof filename !== 'undefined' && filename.indexOf('.') >= 0 ){\r\n var arrFile = filename.split('.');\r\n return arrFile[arrFile.length - 1];\r\n }\r\n return '';\r\n };\r\n\r\n // user clicks on sign up button\r\n $scope.clickSignUp = function( slotitemid ){\r\n// TODO: Build out sign up page button\r\n// Temp message for testers\r\nwindow.alert('Sign up clicked for slotitemid: ' + slotitemid);\r\n // $window.location.href = $scope.url.signup;\r\n };\r\n // user clicks on edit sign up button\r\n $scope.clickEditSignUp = function(){\r\n // if we are in preview mode, don't save\r\n if( $scope.previewMode ) return;\r\n\r\n if( $scope.showBackToPortal && $scope.portalid > 0 ){\r\n $window.location.href = $scope.url.editSignUp + '&pid=' + $scope.portalid;\r\n } else {\r\n $window.location.href = $scope.url.editSignUp;\r\n }\r\n };\r\n // user clicks on sync to calendar link\r\n $scope.clickCalendarSync = function(){\r\n $modal.open({\r\n templateUrl: '/view/templates/signups/calendarsync.html',\r\n controller: 'calendarSyncController',\r\n resolve: {\r\n calendar: function () {\r\n return {\r\n 'calendar': $scope.signupInfo.header.calendar\r\n };\r\n }\r\n }\r\n }).result.then(function (result) {\r\n // resolved - the modal was successfully processed (e.g. $modalInstance.close())\r\n if (result.success) {\r\n // all went well and we should have result.data.myArray\r\n }\r\n }, function () {\r\n // rejected - the modal was dismissed (e.g. $modalInstance.dismiss())\r\n });\r\n\r\n };\r\n\r\n $scope.toggleCalendarView = function( switchTo, fromPageLoad = false ){\r\n if( switchTo === 'cal' && !$scope.showHeaderDate() ){ // only show calendar view if we have more than one date\r\n $scope.showCalendarView = true;\r\n format = 'calendar';\r\n // reset the service cache for the display month since we need to jump to the first month with slots\r\n svc.setDisplayMonth({});\r\n }\r\n else {\r\n // determine format\r\n $scope.showCalendarView = false;\r\n format = $scope.determineSignupType();\r\n }\r\n // select proper template\r\n $scope.template = getTemplate();\r\n\r\n // recycle ads - ensures bottom ad will (re)show if appropriate\r\n if (!fromPageLoad && $scope.showsegments)\r\n util.refreshPageAds();\r\n };\r\n\r\n // user clicks on +x more link under participant list\r\n $scope.openParticipantDetails = function(listid, memberId, slotdata, slotitem){\r\n\r\n $modal.open({\r\n templateUrl: '/view/signups/incl_dspParticipantsModal.html',\r\n controller: 'participantDetailsModalController',\r\n resolve: {\r\n //pass data into the modal\r\n listid: function () { return listid;}\r\n , memberId: function () { return memberId;}\r\n , slotdata: function () { return slotdata;}\r\n , slotitem: function () { return slotitem;}\r\n , theme: function () { return $scope.theme; }\r\n , tzshort: function () { return $scope.signupInfo.tzshort; }\r\n , showprofilepics: function () { return $scope.signupInfo.showprofilepics; }\r\n , shownames: function () { return ( ($scope.isUserSignUpOwner || $scope.isUserSignUpAdmin) || ($scope.signupInfo.shownames && !slotitem.donotshow) ); }\r\n , signuptype: function () { return $scope.determineSignupType(); }\r\n },\r\n // Append the sign up type to the tag, so we can have separate styles for the modals based on the sign up type\r\n openedClass: $scope.determineSignupType()\r\n }, function () {\r\n // rejected\r\n });\r\n }; // END openParticipantDetails\r\n\r\n /**\r\n * Create and return an object with information for the delete modal.\r\n *\r\n * @item {Object} - a sign up item (slot)\r\n * @slot {Object} - a sign up slot (date)\r\n * @slotitemid {Integer} - id of the slotitem associated with the item member to delete\r\n */\r\n $scope.getDeleteModalInfo = function(item,slot,slotitemid){\r\n var tzshort = $scope.signupInfo.tzshort.toUpperCase();\r\n\r\n var modalInfo = {\r\n listid: $scope.signupInfo.id,\r\n notify: ($scope.signupInfo.notifyme && (!$scope.isUserSignUpOwner || $scope.signupInfo.notificationids.length > 1)),\r\n contactName: $scope.signupInfo.header.contactname,\r\n signupTitle: $scope.signupInfo.header.title,\r\n slotitemid: slotitemid,\r\n slotimages:[]\r\n };\r\n\r\n if(item.images && item.images.images) {\r\n modalInfo.slotimages = item.images.images ;\r\n }\r\n modalInfo.imagealttext = (modalInfo.slotimages.length) ? ( (item.images.itemdescription.length) ? item.images.itemdescription : item.images.itemname + ' image' ) : '';\r\n modalInfo.title = item.item;\r\n modalInfo.slotid = slot.slotid;\r\n modalInfo.itemid = item.itemid;\r\n if(slot.timeLabel && slot.timeLabel.length){\r\n modalInfo.timelabel = slot.timeLabel.replace(/
        /g,'').replace(/-/g,' - ') + ' ' + tzshort + '';\r\n }\r\n modalInfo.datalabel = slot.dateLabel;\r\n modalInfo.locdetail = slot.locdetail ? slot.locdetail : {};\r\n modalInfo.locdetail.location = slot.location;\r\n\r\n return modalInfo;\r\n };\r\n\r\n // user clicks on edit button for an itemmember\r\n $scope.editItemMember = function(itemmemberid,slotitemid,memberid){\r\n var attrsObj = {};\r\n attrsObj.imid = itemmemberid;\r\n attrsObj.mid = memberid;\r\n attrsObj.siid = slotitemid;\r\n attrsObj.urlid = $scope.signupInfo.urlid;\r\n generateAttrs(attrsObj);\r\n\r\n var signupformpath = '/form/' + $scope.signupInfo.listformat;\r\n $location.path (signupformpath);\r\n };\r\n\r\n // user clicks on swap button for an itemmember\r\n $scope.swapItemMember = function(itemmemberid,slotitemid,memberid,myqty){\r\n // direct to old form (for now) - like http://local.signupgenius.com/index.cfm?go=s.swap&id=39362&siid=78716&thisqty=1&imid=41418&mid=37925\r\n var swappath = '/index.cfm?go=s.swap';\r\n swappath += '&id=' + $scope.signupInfo.id; // sign up id\r\n swappath += '&siid=' + slotitemid; // slot item id\r\n swappath += '&thisqty=' + myqty; // qty signed up for\r\n swappath += '&imid=' + itemmemberid; // item member id\r\n swappath += '&mid=' + memberid; // member id of item member id\r\n $window.location.href = swappath;\r\n };\r\n\r\n /**\r\n * Toggles the slot item selection. Fires when the sign up button beside a slot item is pressed.\r\n * @param {Integer} slotitem - the slotitemid\r\n * @param {Boolean} unwind - optional, allows Calendar VM to unwind history (qty limit is already checked, this prevents duplicate error messages.)\r\n * @return {Boolean} returns boolean for Calendar view to record unwind history (for undo).\r\n */\r\n $scope.toggleSlotItem = function(slotitem, unwind){\r\n\r\n if (typeof unwind == 'undefined') {\r\n unwind = false; //default parameter if missing\r\n }\r\n\r\n // this tells us that the slotitems sign up buttons have been interacted with\r\n $scope.selectedSlotItemsDirty = true;\r\n var slotitemid = slotitem.slotitemid;\r\n // see if the slot item was already selected\r\n var selectedIdx = $scope.selectedSlotItems.findIndex( function(siID){\r\n return siID === slotitemid;\r\n });\r\n\r\n // if not found, add it to the array\r\n if ( selectedIdx < 0 ) {\r\n // ensure we have not hit the signup's quantity limit\r\n if ( !unwind && checkSignupQuantityLimit() && checkItemQuantityLimit(slotitem.myqty) ) {\r\n $scope.selectedSlotItems.push(slotitemid);\r\n return(true);\r\n } else if (unwind) {\r\n $scope.selectedSlotItems.push(slotitemid);\r\n } else {\r\n // restore the button's state since the user can't select anymore slotitems\r\n slotitem.btnState = 'default';\r\n return(false);\r\n }\r\n } else {\r\n // found in the array, so we want to remove it\r\n $scope.selectedSlotItems.splice(selectedIdx,1);\r\n return(true);\r\n }\r\n };\r\n\r\n /**\r\n * Checks to see if the user has hit the slotitem's quantity limit (if creator has enabled it) and shows the user a warning modal\r\n * if it limit has been reached. Returns true if the limit setting is off or participant is under the limit\r\n * @param {Integer} myqty - quantity already signed up for previously\r\n */\r\n var checkItemQuantityLimit = function(myqty){\r\n var qtyLimit = parseInt($scope.signupInfo.qtylimit_slotitems);\r\n // if the qty limit is zero, then the setting is turned off\r\n if( qtyLimit <= 0 ){ return true;}\r\n\r\n // factor in the quantity already signed up for (specific to a slotitem)\r\n qtyLimit -= myqty;\r\n // check to see if we hit our limit\r\n if( qtyLimit <= 0 ){\r\n var qtyLimitMessage = 'You have reached the quantity limit set up by the sign up creator. You are not allowed to sign up for more than ';\r\n qtyLimitMessage += parseInt($scope.signupInfo.qtylimit_slotitems) + ' of any individual item';\r\n var participantItemStr = myqty.toString() + ((myqty > 1) ? ' items' : ' item');\r\n qtyLimitMessage += ' and you already have ' + participantItemStr + ' that you are signed up for.';\r\n util.showMagnificAlert( qtyLimitMessage, 'warning', undefined, 'Sign Up Quantity Limit' );\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n };\r\n\r\n /**\r\n * Checks to see if the user has hit the sign up quantity limit (if creator has enabled it) and shows the user a warning modal\r\n * if it limit has been reached. Returns true if the limit setting is off or participant is under the limit\r\n */\r\n var checkSignupQuantityLimit = function(){\r\n var qtyLimit = parseInt($scope.signupInfo.qtylimit_signup);\r\n // if the qty limit is zero, then the setting is turned off\r\n if( qtyLimit <= 0 ){ return true;}\r\n\r\n // factor in the participants already signed up items\r\n qtyLimit -= $scope.userSignUp.totalQty;\r\n // check to see if we hit our limit\r\n if( qtyLimit <= $scope.selectedSlotItems.length ){\r\n var qtyLimitMessage = 'You have reached the quantity limit set up by the sign up creator. You are not allowed to sign up for more than ';\r\n var qtyLimitStr = ($scope.signupInfo.qtylimit_signup > 1) ? 'items' : 'item';\r\n qtyLimitMessage += $scope.signupInfo.qtylimit_signup + ' total ' + qtyLimitStr + ' on this sign up';\r\n if( $scope.userSignUp.totalQty ){\r\n var participantItemStr = $scope.userSignUp.totalQty.toString() + (($scope.userSignUp.totalQty > 1) ? ' items' : ' item');\r\n qtyLimitMessage += ' and you already have ' + participantItemStr + ' that you are signed up for.';\r\n }else{\r\n qtyLimitMessage += '.';\r\n }\r\n util.showMagnificAlert( qtyLimitMessage, 'warning', undefined, 'Sign Up Quantity Limit' );\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n };\r\n\r\n // set member id and if user is logged in\r\n var setMember = function(){\r\n if( typeof $scope.memberInfo !== 'undefined'\r\n && util.keyExists($scope.memberInfo,'memberid',true)\r\n && $scope.memberInfo.memberid > 0 )\r\n {\r\n $scope.isUserLoggedIn = true;\r\n $scope.memberId = $scope.memberInfo.memberid;\r\n }\r\n };\r\n\r\n // determine if user is sign up owner, call after setMember\r\n var setIsUserSignUpAdmin = function(){\r\n let subAdminHasPermission = false;\r\n\r\n if( $scope.isUserLoggedIn && $scope.memberId == $scope.signupInfo.owner )\r\n {\r\n $scope.isUserSignUpOwner = true;\r\n }\r\n else if( $scope.isUserLoggedIn\r\n && util.keyExists($scope.memberInfo,'parentid',true)\r\n && $scope.memberInfo.parentid == $scope.signupInfo.owner\r\n ){\r\n $scope.isUserSignUpAdmin = true;\r\n if( $scope.memberInfo.perms ){\r\n $scope.canManageSignUp = $scope.memberInfo.perms.manage ? $scope.memberInfo.perms.manage : false;\r\n $scope.canManageGroups = $scope.memberInfo.perms.group ? $scope.memberInfo.perms.group : false;\r\n $scope.canViewReports = $scope.memberInfo.perms.report ? $scope.memberInfo.perms.report : false;\r\n $scope.canManagePeople = $scope.memberInfo.perms.people ? $scope.memberInfo.perms.people : false;\r\n\r\n // iterates the perms fields by (key, value) and test if any one is set to true then returns true else false\r\n subAdminHasPermission = Object.entries($scope.memberInfo.perms).some(([key, value]) => value === true);\r\n }\r\n }\r\n\r\n //set showadminbar\r\n if ( ($scope.isUserSignUpAdmin && subAdminHasPermission) || $scope.isUserSignUpOwner ) {\r\n $scope.objConfig['showadminbar'] = 1;\r\n } else {\r\n $scope.objConfig['showadminbar'] = 0;\r\n }\r\n\r\n };\r\n\r\n // user is sign up admin and participants are hidden show participant note\r\n var setParticipantNote = function(){\r\n if( ( ( util.keyExists($scope.signupInfo, 'shownames', true) && !$scope.signupInfo.shownames )\r\n || ( util.keyExists($scope.signupInfo, 'hashidenames', true) && $scope.signupInfo.hashidenames ) )\r\n && ( $scope.isUserSignUpAdmin || $scope.isUserSignUpOwner ) ){\r\n $scope.showParticipantNote = true;\r\n // add logout link\r\n $scope.strings.lbls.participantNote = 'PLEASE NOTE: Names are only viewable on this sign up because you are logged in as an administrator. To see how this sign up looks to your users, click here to logout.';\r\n }\r\n };\r\n\r\n // determine if user is a participant, call after setMember\r\n // consider moving this to the rsvp controller since it appears to only apply there (ap: also used it in standard signups to count the number of already signed up slots)\r\n var setUserParticipant = function(){\r\n if( $scope.isUserLoggedIn && util.keyExists($scope.signupInfo,'participants',true) ){\r\n var stcParticipants = util.deepCopy( $scope.signupInfo.participants );\r\n // scan participants for memberid\r\n for( var key in stcParticipants ){\r\n // particiant is array\r\n if( typeof stcParticipants[key] === 'object' && stcParticipants[key].length ){\r\n for( var i=0; i 0) || $scope.signupInfo.participantcount > 0;\r\n };\r\n\r\n // determine whether to show already signed up button\r\n var setShowAlreadySignedUp = function(){\r\n if( $scope.hasParticipants && !$scope.isUserLoggedIn && !$scope.signupInfo.usersvp ){\r\n $scope.showAlreadySignedUp = true;\r\n }\r\n };\r\n\r\n // helper method for recalculating style of header images\r\n $scope.getImageStyle = function( elemId, img ){\r\n var elem = document.getElementById(elemId);\r\n elem = angular.element(elem);\r\n var coords = img.imagecropcoords;\r\n var cw = elem[0].offsetWidth;\r\n var ch = elem[0].offsetHeight;\r\n // Handle situations where the offset values come back as 0 by setting the values equal to the image dimensions\r\n if (cw === 0 || ch === 0) {\r\n cw = img.imagewidth;\r\n ch = img.imageheight;\r\n }\r\n var x1 = coords[0];\r\n \t\t\tvar y1 = coords[1];\r\n \t\t\t// var x2 = coords[2];\r\n \t\t\t// var y2 = coords[3];\r\n \t\t\tvar coordw = coords[4];\r\n \t\t\tvar coordh = coords[5];\r\n var width = img.imagewidth;\r\n \t\t\tvar height = img.imageheight;\r\n var left = ( cw / coordw ) * x1 * -1;\r\n \t\t\tvar top = (ch / coordh) * y1 * -1;\r\n \t\t\tvar newwidth = ( cw / coordw * width);\r\n \t\t\tvar newheight = ( ch / coordh * height);\r\n\r\n // build the style\r\n return {\r\n 'margin-left': left,\r\n 'margin-top': top,\r\n 'width': newwidth,\r\n 'height': newheight\r\n };\r\n };\r\n // set sign up and edit urls\r\n var setUrls = function(){\r\n $scope.url.signup = baseURL + '/index.cfm?go=s.PreProcessSignup&URLID=' + $scope.signupInfo.urlid;\r\n $scope.url.editSignUp = baseURL + '/index.cfm?go=s.EditHelp&urlid=' + $scope.signupInfo.urlid;\r\n if( $scope.signupInfo.usersvp ){ $scope.url.editRSVP += '&useRSVP=1';}\r\n };\r\n\r\n // when user clicks on slot image zoom icon\r\n $scope.showZoomedImage = function( itemid ){\r\n if( parseInt(itemid) > 0 ){\r\n\t\t\t\t\t$.magnificPopup.open({\r\n\t\t\t\t\t\tremovalDelay: 300,\r\n\t\t\t\t\t\t\titems: {\r\n\t\t\t\t\t\t\t\tsrc: '/view/signups/dspItemImages.cfm?itemid=' + itemid,\r\n\t\t\t\t\t\t\t\ttype: 'iframe'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n };\r\n\r\n // set fee message\r\n var setFeeMessage = function(){\r\n var wprate = $scope.signupInfo.iswp && angular.isDefined($scope.signupInfo.wprate) ? $scope.signupInfo.wprate : {'p':0,'t':0,'fee_payer':'payer_from_app'};\r\n var cur = $scope.signupInfo.currency;\r\n var fee_payer = ( $scope.signupInfo.iswp && angular.isDefined( $scope.signupInfo.wprate.fee_payer ) ) ? $scope.signupInfo.wprate.fee_payer : 'payer_from_app';\r\n // set fee message\r\n if( fee_payer == 'payer_from_app' && $filter('number')(wprate.p * 100) > 0){\r\n $scope.strings.feeMessage = \"A service fee of \" + $filter('number')($scope.signupInfo.wprate.p * 100) + \"% + \" + $filter('currency')($scope.signupInfo.wprate.t) + ' ' + cur + \" will be added to your purchase at checkout.\";\r\n }\r\n };\r\n\r\n // set whether to show Fundly\r\n var setShowFundly = function(){\r\n $scope.showFundly = util.keyExists($scope.signupInfo, 'fundlyurl', true) && $scope.signupInfo.fundlyurl.length ? true : false;\r\n };\r\n\r\n // Find any messages that should be displayed from ancillary pages\r\n var getAncillaryMessage = function(){\r\n var urlParms = utility.getAllUrlParams();\r\n var msg = util.keyExists(urlParms, 'msg', true) ? $scope.strings.ancillary.messages[urlParms.msg] : '';\r\n\r\n if ( msg.indexOf('!email!') > -1 && util.keyExists(urlParms, 'email', true) ) {\r\n msg = msg.replace('!email!',urlParms.email);\r\n }\r\n return msg;\r\n };\r\n\r\n\r\n var procesSignupObject = function (signup, theme) {\r\n // sign up info\r\n\r\n if( util.ajaxResultInvalid(signup) ){\r\n $scope.errorMessage = util.getAjaxResponseMessage( signup.data );\r\n // will get here if user submitted invalid passcode\r\n // build signupInfo for processing by passcode template\r\n if( util.keyExists(signup, 'data.data.passcode') && signup.data.data.passcode ){\r\n $scope.signupInfo = {\r\n passcode: true,\r\n success: false,\r\n message: $scope.errorMessage,\r\n mid: util.keyExists(signup, 'data.data.mid') ? signup.data.data.mid : 0,\r\n id: util.keyExists(signup, 'data.data.id') ? signup.data.data.id : 0,\r\n };\r\n svc.setSignUpInfo( $scope.signupInfo );\r\n svc.setThemeClassInfo( $scope.signupInfo.themeclass );\r\n }\r\n }\r\n else {\r\n $scope.signupInfo = signup.data.data;\r\n $scope.virtualLocations = $scope.signupInfo.virtuallocations;\r\n // Initialize list view pagination objects\r\n \r\n //svc.initializePagination($scope.signupInfo, $scope.frmObj);\r\n\r\n if (!$scope.signupInfo.allSlotsHidden) {\r\n // Set up a watcher on the currentPage prop, which will eventually be changed by the pagination directive. This will trigger the functionality to display the current page's slots/eventually trigger a request to the backend\r\n /* $scope.$watch('signupInfo.listPagination.currentPage', function(newValue) {\r\n $scope.getPage(newValue);\r\n }); */\r\n }\r\n\r\n // If the sign up uses a custom url and the sug generated urlid is used, redirect the user to the custom url\r\n if ($scope.urlkey.toString().trim().toLowerCase() !== $scope.signupInfo.urlid.toString().trim().toLowerCase()) {\r\n $scope.urlkey = $scope.signupInfo.urlid;\r\n $window.location.href = \"/go/\"+$scope.urlkey+'#/';\r\n }\r\n\r\n $scope.locations = typeof $scope.signupInfo.locations !== 'undefined' ? $scope.signupInfo.locations : {};\r\n svc.setSignUpInfo( $scope.signupInfo );\r\n svc.setThemeClassInfo( $scope.signupInfo.themeclass );\r\n }\r\n\r\n // theme object\r\n if( util.ajaxResultInvalid(theme) ){\r\n $scope.errorMessage = util.getAjaxResponseMessage( theme.data );\r\n }\r\n else {\r\n initializeTheme( theme.data.data );\r\n }\r\n // handle pass code form\r\n if( $scope.signupInfo.passcode ){\r\n format = 'passcode';\r\n $scope.template = getTemplate();\r\n }\r\n // if not errors - proceed\r\n if( $scope.errorMessage === '' && format !== 'passcode' ){\r\n\r\n // set page title\r\n var pageTitle = util.keyExists($scope.signupInfo, 'header.group') ? $scope.signupInfo.header.group : ''; // sanity check\r\n if( util.keyExists($scope.signupInfo, 'header.title') ){\r\n if( pageTitle.length ){\r\n pageTitle += ': ';\r\n }\r\n pageTitle += $scope.signupInfo.header.title;\r\n }\r\n if( pageTitle.length ){\r\n $window.document.title = sce.trustAsHtml(pageTitle.trim());\r\n }\r\n\r\n $scope.showsegments = $scope.signupInfo.showsegments;\r\n\r\n // set show calendar view\r\n if( !!$scope.signupInfo.calendarview && !$scope.showHeaderDate() ){ // calendar view is true and sign up has >1 date\r\n $scope.showCalendarView = true;\r\n }\r\n else {\r\n $scope.showCalendarView = false;\r\n }\r\n\r\n // determine which view, display, format to use\r\n format = $scope.determineSignupType();\r\n\r\n // select proper template\r\n $scope.template = getTemplate();\r\n // build header\r\n buildHeader();\r\n\r\n // pull calendar view query parameter if exists\r\n var urlParams = utility.getAllUrlParams();\r\n if( typeof urlParams.view !== 'undefined' ){\r\n if( urlParams.view == 'calendar' ){\r\n $scope.toggleCalendarView('cal', true);\r\n }\r\n else if( urlParams.view == 'standard' ){\r\n $scope.toggleCalendarView('standard', true);\r\n }\r\n }\r\n\r\n // if sign up is locked\r\n if( $scope.isLocked() ){\r\n $scope.errorStrings = {\r\n errorsTitle: '',\r\n errorsPleaseCorrect: $scope.signupInfo.lockedmessage,\r\n };\r\n $scope.es.setError('error-top-level', 'no msg');\r\n }\r\n // if sign up has no available slots\r\n if( !$scope.hasAvailableSlots() ){\r\n $scope.errorStrings = {\r\n errorsTitle: '',\r\n errorsPleaseCorrect: $scope.signupInfo.noavailableslotsmessage,\r\n };\r\n $scope.es.setError('error-top-level', 'no msg');\r\n }\r\n if( $scope.isAllDatesHidden() ){\r\n $scope.errorStrings = {\r\n errorsTitle: '',\r\n errorsPleaseCorrect: $scope.signupInfo.hiddendatesmessage,\r\n };\r\n $scope.es.setError('error-top-level', 'no msg');\r\n }\r\n // ancillary messages\r\n var ancillaryMessage = getAncillaryMessage();\r\n if( ancillaryMessage.length ){\r\n $scope.ancillaryMessage = {\r\n type: 'success',\r\n title: '',\r\n text: ancillaryMessage,\r\n dismissable: false,\r\n show: true\r\n };\r\n }\r\n\r\n // set header ad code\r\n $scope.adconfig.themeid = $scope.signupInfo.themeid;\r\n $scope.objConfig['isRSVP'] = $scope.signupInfo.usersvp;\r\n $scope.objConfig['themeid'] = $scope.signupInfo.themeid;\r\n\r\n var adnetworks = typeof $rootScope.adnetworkdatafile !== 'undefined' && typeof $rootScope.adnetworkdatafile.networks !== 'undefined' ? $rootScope.adnetworkdatafile.networks : {};\r\n $scope.adconfig.network = adSvc.getAdNetwork($scope.adconfig,adnetworks);\r\n adSvc.setHeaderAdCode( $scope.adconfig );\r\n\r\n if( $scope.showsegments ){\r\n $scope.hSegmentWidth = 190;\r\n if( $scope.containerWidth > 1199 )\r\n $scope.hSegmentWidth = 330;\r\n // determine side ad will show on\r\n var r = Math.floor((Math.random() * 100) + 1);\r\n if( r % 2 === 0 ){\r\n $scope.segmentSide = 'left';\r\n $scope.contentSide = 'right';\r\n }\r\n else {\r\n $scope.segmentSide = 'right';\r\n $scope.contentSide = 'left';\r\n }\r\n }\r\n\r\n //determine copyright year\r\n $scope.strings.lbls.copyrightYear = new Date().getFullYear();\r\n\r\n // set user as logged in / memberid\r\n setMember();\r\n // set flag to determine if user is sign up owner / administrator\r\n setIsUserSignUpAdmin();\r\n // set participant note\r\n setParticipantNote();\r\n // set user as participant\r\n setUserParticipant();\r\n // set participant\r\n setHasParticipants();\r\n // set show already signed up button\r\n setShowAlreadySignedUp();\r\n // set urls\r\n setUrls();\r\n // set fee message\r\n setFeeMessage();\r\n // set show Fundly\r\n setShowFundly();\r\n }\r\n\r\n /* Runs if viewing a sign up that is part of a tab group, loaded via the /go/urlid path.\r\n In this case the tabgroup object isn't initialized when the page loads and has to be done here\r\n */\r\n if (!$scope.isTabGroup && util.keyExists(signup.data.data, 'tabs', true) && signup.data.data.tabs.istabbed) {\r\n // hide tabs if we are viewing this sign up via embed directly. We want tabs if this is from a Portal Page.\r\n if( !$scope.signupInfo.allowembed || hasPortalId() ){\r\n $scope.isTabbedSignup = true;\r\n\r\n svc.gettabgroup({tabgroupid: $scope.signupInfo.tabs.tabgroupid})\r\n .then(function(result) {\r\n var tabData = util.lowerCaseKeys(result);\r\n tabgroup = {};\r\n tabgroup = tabData;\r\n // tabgroup object\r\n if( util.ajaxResultInvalid(tabgroup) ){\r\n $scope.errorMessage = util.getAjaxResponseMessage( tabgroup.data );\r\n } else {\r\n svc.setTabGroup ( tabgroup );\r\n initializeTabObject(tabgroup);\r\n lookupTabIndex($scope.urlkey);\r\n setTabProperties();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n };\r\n\r\n // Looks up the signup assoicated with the specified urlkey and sets the index into the tab group signups array based on the result.\r\n var lookupTabIndex = function (urlkey) {\r\n var urlid = typeof urlkey !== 'undefined' ? urlkey : $scope.urlkey;\r\n // look up signups array and find the index of the corresponding tab group\r\n for (var i=0; i < $scope.tab.tabcount; i++){\r\n if ($scope.tabsignups.hasOwnProperty(i)){\r\n if ($scope.tabsignups[i].urlid.toString().trim().toLowerCase() === urlid.toString().trim().toLowerCase()) {\r\n $scope.tab.index = i;\r\n svc.setTabIndex(i);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Sets values used to determine what tabs display\r\n var setTabProperties = function () {\r\n // Adjust the max tab groups value if the tab group has less signups than the max number to display,\r\n $scope.tab.tabsToDisplay = $scope.tab.tabcount <= $scope.tab.maxtabGroups ? $scope.tab.tabcount : $scope.tab.maxtabGroups;\r\n\r\n if ($scope.tab.tabcount > $scope.tab.maxtabGroups) {\r\n $scope.tab.firstDisplay = $scope.tab.index;\r\n $scope.tab.lastDisplay = $scope.tab.index + $scope.tab.maxtabGroups;\r\n if ($scope.tab.lastDisplay > $scope.tab.tabcount) {\r\n var i = 0;\r\n while ($scope.tab.lastDisplay > $scope.tab.tabcount) {\r\n $scope.tab.lastDisplay--;\r\n $scope.tab.firstDisplay--;\r\n i++;\r\n // Fallback to force a break and prevent an infinite loop if something goes wrong.\r\n if (i >= $scope.tab.tabcount) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n $scope.tab.previous = $scope.tab.index > 0 ? $scope.tabsignups.slice(0,$scope.tab.firstDisplay) : [];\r\n $scope.tab.next = $scope.tab.index < $scope.tab.tabcount ? $scope.tabsignups.slice($scope.tab.index+$scope.tab.tabsToDisplay,($scope.tab.tabcount)) : [];\r\n\r\n }\r\n setTabThemes();\r\n };\r\n\r\n var setTabThemes = function() {\r\n var classContainer = '';\r\n var suTabBorderColor = '';\r\n var suTabBackgroundStyle = '';\r\n\r\n // Set the tab top border color for the displayed tabs\r\n for(var i=0; i<$scope.tabsignups.length; i++) {\r\n // Set tab border class for each tab\r\n suTabBorderColor = $scope.tabsignups[i].backgroundcolor.length ? ($scope.tabsignups[i].backgroundcolor.toLowerCase().trim() != '#ffffff' ? $scope.tabsignups[i].backgroundcolor : '#d9d9d9') : ($scope.tabsignups[i].textcolor1.toLowerCase().trim() != '#ffffff' ? $scope.tabsignups[i].textcolor1 :'#d9d9d9') ;\r\n classContainer += '.tabGroup .multiple-signup--menu li.tab-' + $scope.tabsignups[i].listid +':before { border-top: 5px solid '+ suTabBorderColor + ' !important;} ';\r\n\r\n // Side border for the +More menu\r\n classContainer += '.tabGroup .multiple-signup--menu span ul.dropdown-menu li.plussmore-' + $scope.tabsignups[i].listid +' { border-left: 5px solid ' + suTabBorderColor + ';} ';\r\n }\r\n // Set active class based on selected tab\r\n suTabBackgroundStyle = $scope.tabsignups[$scope.tab.index].backgroundimage.length ? 'background-image: url(\"/images/theme/' + $scope.tabsignups[$scope.tab.index].backgroundimage + '\") !important;' : 'background-color: ' + $scope.tabsignups[$scope.tab.index].backgroundcolor + ' !important';\r\n classContainer += '.tabGroup .multiple-signup--menu li.active a { color: ' + $scope.tabsignups[$scope.tab.index].textcolor1 + ' !important; ' + suTabBackgroundStyle + ' }';\r\n\r\n //SU pages use the No Brand footer by default; NB footer code omits these styles if SU is part of a TG, so we need to define them here for the specific SU shown\r\n classContainer += '.nb-copyright-text { color: ' + $scope.tabsignups[$scope.tab.index].textcolor1 + ' !important; } ';\r\n classContainer += '.nb-links { color: ' + $scope.tabsignups[$scope.tab.index].textcolor2 + ' !important; } ';\r\n\r\n // this is where our dynamic style container will be\r\n var styleContainer = angular.element( document.querySelector( '#tabStyles' ) );\r\n\r\n // create a style tag containing all the classes\r\n var dStyles = angular.element( '' );\r\n\r\n \t\t\t// append the style to the container\r\n styleContainer.html( dStyles );\r\n\r\n // Re-run this so the current signup's theme details are applied to the page, mainly the body background\r\n $scope.createSignUpStyle();\r\n };\r\n\r\n // Handles changing the tab when clicked\r\n $scope.changeTab = function(urlid) {\r\n // Only run code if the urlid is not the same as the urlid for the current tab.\r\n if (urlid !== $scope.tabsignups[$scope.tab.index].urlid) {\r\n lookupTabIndex(urlid);\r\n svc.setThemeInfo({});\r\n $scope.urlkey = \"\";\r\n svc.setUrlKey($scope.urlkey);\r\n\r\n $window.location.href = '/go/' + $scope.tabsignups[$scope.tab.index].urlid + $scope.pidParam.newformat + '#/';\r\n /* Used to reload route on change tabs as part of a SPA\r\n if ($scope.isTabGroup) {\r\n $route.reload();\r\n } else if ($scope.isTabbedSignup) {\r\n $window.location.href = '/go/' + $scope.tabsignups[$scope.tab.index].urlid + pidParam + '#/';\r\n }\r\n */\r\n }\r\n };\r\n\r\n /**\r\n * Setup tab data for the view\r\n */\r\n var initializeTabObject = function(tabgroup) {\r\n $scope.tabgroup = tabgroup.data.data;\r\n $scope.tabheader = tabgroup.data.data.header[0];\r\n $scope.tabsignups = $scope.tabgroup.signups;\r\n // Form object for handing More Sign Up Groups drop down\r\n $scope.frm = {\r\n selectedTabGroup: \"\"\r\n };\r\n $scope.othertabs = tabgroup.data.data.othertabs;\r\n $scope.tab = {\r\n tabcount: $scope.tabgroup.signups.length,\r\n selectedTabGroup: \"\",\r\n maxtabGroups: 5,\r\n index: 0,\r\n previous: [],\r\n next: [],\r\n tabsToDisplay: 0,\r\n firstDisplay: 0,\r\n lastDisplay: 0\r\n };\r\n\r\n if ($scope.tab.index===0) {\r\n lookupTabIndex();\r\n }\r\n };\r\n\r\n /**\r\n * Determines whether or not the tab title is truncated,\r\n * then populates or clears out the tooltip text appropriately\r\n */\r\n $scope.checkForTabTruncation = function (fullTitle,id){\r\n $scope.popText = ( angular.element(document.getElementById(id))[0].offsetWidth < angular.element(document.getElementById(id))[0].scrollWidth ) ? fullTitle : \"\";\r\n };\r\n\r\n /**\r\n * Setup code for displaying a tabGroup.\r\n * Moved from init() to separate code\r\n */\r\n var setupTabGroup = function(){\r\n if (util.ajaxResultInvalid(tabgroup)) {\r\n $scope.errorMessage = util.getAjaxResponseMessage( tabgroup.data );\r\n } else {\r\n initializeTabObject(tabgroup);\r\n svc.setTabGroup( tabgroup );\r\n $scope.tab.index = svc.getTabIndex();\r\n\r\n // Get urlkey based on tab index\r\n if (!$scope.urlkey.length) {\r\n $scope.urlkey = $scope.tabsignups[$scope.tab.index].urlid;\r\n svc.setUrlKey($scope.urlkey);\r\n }\r\n\r\n svc.getsignup({forSignUpView:true, urlid:$scope.urlkey , portalid: $scope.portalid})\r\n .then(function(result) {\r\n var signupData = util.lowerCaseKeys(result);\r\n signup = {};\r\n signup = signupData;\r\n\r\n if( util.ajaxResultInvalid(signup) || signup.data.data.urlid.toString().trim().toLowerCase()=='test-fail-tab'){\r\n $scope.errorMessage = util.getAjaxResponseMessage( signup.data );\r\n } else {\r\n misvc.getMemberInfo({extended:true, forceRefresh:true, listid:0, urlid:signup.data.data.urlid})\r\n .then(function(result) {\r\n var memInfo = util.lowerCaseKeys(result);\r\n memberinfo = {};\r\n memberinfo = memInfo;\r\n\r\n // memberinfo\r\n $scope.memberInfo = memberinfo;\r\n svc.setMemberInfo( memberinfo );\r\n\r\n svc.gettheme({urlid:$scope.urlkey}).then(function(result) {\r\n var themeData = util.lowerCaseKeys(result);\r\n theme = themeData;\r\n if( util.ajaxResultInvalid(theme) ){\r\n $scope.errorMessage = util.getAjaxResponseMessage( theme.data );\r\n } else {\r\n procesSignupObject(signup, theme);\r\n setTabProperties();\r\n }\r\n });\r\n\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Method runs code to setup the signupController.\r\n * Moved from the init() to make it easer to call\r\n */\r\n var setupController = function(){\r\n // tab group\r\n if ($scope.isTabGroup) {\r\n setupTabGroup();\r\n } else {\r\n // memberinfo\r\n $scope.memberInfo = memberinfo;\r\n svc.setMemberInfo( memberinfo );\r\n procesSignupObject(signup, theme);\r\n }\r\n };\r\n\r\n /**\r\n * initialize page\r\n */\r\n var init = function(){\r\n //If sign up is from an embedded portal, load some portal details before setting up the page\r\n if( fromEmbeddedPortal() ){\r\n loadPortalEmbedData()\r\n .then(function(){\r\n setupController();\r\n });\r\n } else {\r\n setupController();\r\n }\r\n if (!tabgroup.signuptabbing) {\r\n $location.path($scope.signupInfo.fullpath);\r\n }\r\n };\r\n\r\n /**\r\n * Method retrieves basic portal details for an embedded portal page.\r\n\t * Embedded sign up pages use this to get back to the embedded portal they came from.\r\n */\r\n var loadPortalEmbedData = function(){\r\n var deferred = $q.defer();\r\n\r\n svc.getportalembeddata( { portalid: $scope.portalid } )\r\n .then(function(response){\r\n //if an error occurs, a default object is still returned and the backToPortal view handled it\r\n $scope.embedportalinfo = svc.getEmbedPortalInfo();\r\n $scope.showBackToPortal = true;\r\n $scope.pidParam.newformat = '/pid/' + $scope.portalid;\r\n $scope.pidParam.oldformat = '&pid=' + $scope.portalid;\r\n\r\n deferred.resolve();\r\n }, function(err){\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Helper function to indicate if the signup is embedded and was opened from an embedded portal page\r\n * If sign up is loaded, check signup.data.data instead of $scope.signupInfo in case setupController() hasn't run yet\r\n * If a Tab Group is loaded we need to check tabgroup.data.data model for the allowEmbed flag\r\n */\r\n var fromEmbeddedPortal = function(){\r\n return ( (typeof signup.data != 'undefined' && signup.data.data.allowembed) || ($scope.isTabGroup && typeof tabgroup.data != 'undefined' && tabgroup.data.data.allowembed) ) && hasPortalId() ;\r\n };\r\n\r\n /**\r\n * Helper function to indicate if a portalId exists bc the SUP was loaded from an embedded Portal Page.\r\n */\r\n var hasPortalId = function(){\r\n return !Number.isNaN($scope.portalid) && $scope.portalid > 0;\r\n };\r\n\r\n $scope.determineSignupType = function(){\r\n // determine which view, display, format to use\r\n if ($scope.signupInfo.expired)\r\n return 'expired';\r\n else if ( $scope.signupInfo.nodate )\r\n return 'nodate';\r\n else if( $scope.signupInfo.usersvp )\r\n return 'rsvp';\r\n else if( $scope.signupInfo.calendarview && $scope.showCalendarView )\r\n return 'calendar';\r\n else if($scope.signupInfo.itemsort.toString().toLowerCase() === 'd' )\r\n return 'standard_d';\r\n else\r\n return 'standard_i';\r\n };\r\n\r\n /**\r\n * Calculates the total quantity already signed up for the given member\r\n * @param {Array} participantData - array of participant data for a specific slot/date combination\r\n * @param {Integer} memberid - memberid of the logged in user\r\n */\r\n $scope.getQtyForMember = function( participantData, memberid ){\r\n var myqty = 0;\r\n participantData.forEach( function(participant){\r\n if( participant.memberid === memberid ){\r\n myqty += participant.myqty;\r\n }\r\n });\r\n\r\n return myqty;\r\n };\r\n\r\n // Build object based on session.signupformattrs object used by old sign up form to pass data to form when a user signs up\r\n var generateAttrs = function (data) {\r\n var attrsObj = {};\r\n attrsObj.mid = data.mid ? data.mid : $scope.memberInfo.memberid;\r\n attrsObj.requirecompany = data.requirecompany ? data.requirecompany : 0;\r\n attrsObj.showcompany = data.showcompany ? data.showcompany : 0;\r\n attrsObj.siid = data.siid ? data.siid : $scope.selectedSlotItems; // single slotitemid\r\n attrsObj.siids = data.siids ? data.siids : $scope.selectedSlotItems; // list of slotitemids\r\n attrsObj.urlid = data.urlid ? data.urlid : $scope.signupInfo.urlid;\r\n attrsObj.listid = data.listid ? data.listid : '';\r\n attrsObj.rsvpid = data.rsvpid ? data.rsvpid : '';\r\n attrsObj.token = data.token ? data.token : '';\r\n attrsObj.imid = data.mid ? data.imid : ''; //itemmemberid\r\n // Cache attr object\r\n svc.setAttrs (attrsObj);\r\n };\r\n\r\n $scope.saveAndContinue = function() {\r\n // if we are in preview mode, don't save\r\n if( $scope.previewMode ) return;\r\n\r\n var attrsObj = {};\r\n attrsObj.mid = $scope.memberInfo.memberid;\r\n attrsObj.siids = $scope.selectedSlotItems;\r\n attrsObj.urlid = $scope.signupInfo.urlid;\r\n generateAttrs(attrsObj);\r\n\r\n var signupformpath = '/form/' + $scope.signupInfo.listformat;\r\n $location.path (signupformpath);\r\n };\r\n\r\n /** method for social media sharing **/\r\n $scope.share = function( media ){\r\n // if we are in preview mode, don't execute\r\n if( $scope.previewMode ) return;\r\n\r\n var winorigin = angular.isDefined($window.location.origin) ? $window.location.origin : $window.location.protocol + '//' + $window.location.host;\r\n var signupurl = angular.isDefined($scope.signupInfo.fullurl) && $scope.signupInfo.fullurl !== '' ? $scope.signupInfo.fullurl : encodeURIComponent(winorigin + \"/go/\" + $scope.urlkey);\r\n var signupimage = $scope.theme.mainimage !== '' ? encodeURIComponent($scope.theme.mainimage) : encodeURIComponent(winorigin + \"/images/theme/\" + $scope.theme.id + \"-large.jpg\");\r\n var mediaurl = '';\r\n var winsize = '';\r\n var py = 0;\r\n var px = 0;\r\n var tweettext = encodeURIComponent('Check out \"' + $scope.signupInfo.header.title.toString().trim() + '\" on @SignUpGenius');\r\n if( media === 'fb' ){\r\n winsize = \"width=640,height=400\";\r\n py = $window.top.outerHeight / 2 + $window.top.screenY - ( 400 / 2);\r\n px = $window.top.outerWidth / 2 + $window.top.screenX - ( 640 / 2);\r\n mediaurl = \"http://www.facebook.com/sharer/sharer.php?u=\" + signupurl + \"&src=sp\";\r\n }\r\n else if( media === 'pinterest' ){\r\n winsize = \"width=740,height=700\";\r\n py = $window.top.outerHeight / 2 + $window.top.screenY - ( 700 / 2);\r\n px = $window.top.outerWidth / 2 + $window.top.screenX - ( 740 / 2);\r\n mediaurl = \"http://pinterest.com/pin/create/button/?url=\" + signupurl + \"&media=\" + signupimage + \"&description=\" + tweettext + '%20' + signupurl;\r\n }\r\n else if( media === 'twitter' ){\r\n winsize = \"width=640,height=320\";\r\n py = $window.top.outerHeight / 2 + $window.top.screenY - ( 320 / 2);\r\n px = $window.top.outerWidth / 2 + $window.top.screenX - ( 640 / 2);\r\n mediaurl = \"https://twitter.com/share?text=\" + tweettext + \"&url=\" + signupurl;\r\n }\r\n\r\n // open the window\r\n winsize += \",top=\" + py + \",left=\" + px;\r\n $window.open(mediaurl,'_blank',winsize);\r\n };\r\n\r\n // Used by the More Sign Up Groups drop down list to direct the user to a different tab group.\r\n $scope.changeTabGroup = function () {\r\n if ($scope.frm.selectedTabGroup.length) {\r\n var url = '/tabs/' + $scope.frm.selectedTabGroup.toString().trim() + $scope.pidParam.newformat;\r\n $window.location.href = url;\r\n }\r\n };\r\n\r\n // init page\r\n init();\r\n }\r\n ]);\r\n\r\n // helper methods - move these helpers to a service\r\n var getContainerClass = function( s ){\r\n var container = {\r\n 'background-color' : s.backgroundcolor\r\n , 'width' : '100%'\r\n };\r\n if( s.backgroundimage !== '' )\r\n container['background-image'] = 'url(' + s.backgroundimage + ') !important';\r\n\r\n\r\n // moved the container styles to the body: SUG-2579\r\n var classContainer = \" body {\";\r\n for( var key in container ){\r\n if(!container.hasOwnProperty(key))\r\n continue;\r\n classContainer += key + ':' + container[key] + ';';\r\n }\r\n classContainer += '}';\r\n\r\n // back to portal nav\r\n classContainer += ' .l-signuppage .backtoportal { ';\r\n classContainer += ' background-color: ' + s.tableheaderbackground + ';';\r\n classContainer += ' color: ' + s.tableheadertext + ';';\r\n classContainer += ' border-bottom: 1px solid ' + s.textcolor1 + ' !important;';\r\n if( s.tableheaderimage !== '' )\r\n classContainer += ' background-image: url(' + s.tableheaderimage + ') !important;';\r\n classContainer += '}';\r\n classContainer += ' .l-signuppage .backtoportal li a { color: ' + s.tableheadertext + '; }';\r\n\r\n // Moved color back to signupPage to prevent unintended impacts on sign up form: SUG-2835, SUG-2838, SUG-3840, SUG-2845\r\n classContainer += ' .signupPage { color: ' + s.textcolor1 + ' }';\r\n classContainer += ' .signupPage p { color: ' + s.textcolor1 + ' }';\r\n classContainer += ' .signupPage h1 { color: ' + s.textcolor2 + ' !important; }';\r\n classContainer += ' .signupPage .SUGlink { color: ' + s.textcolor2 + ' !important; }';\r\n classContainer += ' .signupPage .hdr-labels { color: ' + s.textcolor1 + ' !important; }';\r\n classContainer += ' .signupPage .sugbutton { color: ' + s.backgroundcolor + ' !important; font-weight: bold; background-color: ' + s.textcolor1 + ' !important; font-size:inherit; margin-left:10px; padding:8px; border-radius: 17px;}';\r\n // hyperlinks\r\n classContainer += ' .signupPage a, .signupPage .hyperlink { color: ' + s.textcolor2 + '; }';\r\n classContainer += ' .signupPage .hyperlink:focus, .signupPage .hyperlink:hover, .signupPage .hyperlink:active, .signupPage a:focus, .signupPage a:hover, .signupPage a:active { color: ' + s.textcolor2 + '; text-decoration: underline; }';\r\n // thead\r\n classContainer += ' .signupPage thead { ';\r\n classContainer += ' background-color: ' + s.tableheaderbackground + ';';\r\n classContainer += ' color: ' + s.tableheadertext + ';';\r\n if( s.tableheaderimage !== '' )\r\n classContainer += ' background-image: url(' + s.tableheaderimage + ') !important;';\r\n classContainer += '}';\r\n // tbody\r\n classContainer += ' .signupPage tbody { ';\r\n classContainer += ' background-color: ' + s.backgroundcolor + ';';\r\n classContainer += ' border-top: 1px solid ' + s.textcolor1 + ' !important;';\r\n classContainer += '}';\r\n // this was copied over from the old sign up page styles but not sure why. Commenting out for now\r\n //classContainer += ' .signupPage tbody > tr:nth-child(2) > td { ';\r\n //classContainer += ' padding-top: 0;';\r\n //classContainer += '}';\r\n // th\r\n classContainer += ' .signupPage th { border-bottom: 2px solid ' + s.textcolor1 + ' !important; }';\r\n // td\r\n classContainer += ' .signupPage td { border: none !important; }';\r\n // tfoot\r\n classContainer += ' .signupPage tfoot { ';\r\n classContainer += ' background-color: ' + s.tableheaderbackground + ';';\r\n classContainer += ' color: ' + s.tableheadertext + ';';\r\n if( s.tableheaderimage !== '' )\r\n classContainer += ' background-image: url(' + s.tableheaderimage + ') !important;';\r\n classContainer += '}';\r\n // table\r\n classContainer += ' .signupPage table { ';\r\n classContainer += ' border-top: 3px solid ' + s.textcolor1 + ';';\r\n classContainer += ' border-right: 1px solid ' + s.textcolor1 + ';';\r\n classContainer += ' border-bottom: 3px solid ' + s.textcolor1 + ';';\r\n classContainer += ' border-left: 1px solid ' + s.textcolor1 + ';';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .table-wrapper tr:not(:first-child) td:first-child:before { border-bottom-color: ' + s.textcolor1 + ' }';\r\n\r\n // specific classes\r\n classContainer += ' .signupPage .padded-options.indicator:before { border-left: 2px solid ' + s.textcolor1 + '; }';\r\n classContainer += ' .signupPage .padded-options.indicator:after { color: ' + s.textcolor1 + '; }';\r\n\r\n // buttons\r\n classContainer += ' .signupPage .btn-default { ';\r\n classContainer += \" border: 1px solid transparent\" + \";\";\r\n classContainer += ' color: ' + s.textcolor1 + ';';\r\n classContainer += ' background: transparent; ';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .btn-success { ';\r\n classContainer += ' background-color: ' + s.tableheaderbackground + ';';\r\n classContainer += ' color: ' + s.tableheadertext + ';';\r\n classContainer += ' border: 1px solid ' + s.textcolor1 + ';';\r\n if( s.tableheaderimage !== '' )\r\n classContainer += ' background-image: url(' + s.tableheaderimage + ') !important;';\r\n classContainer += '}';\r\n\r\n //button bar\r\n classContainer += ' .signupPage .btn-bar { ';\r\n if( s.tableheaderimage === '' ){\r\n classContainer += ' background-color: ' + s.tableheaderbackground + ';';\r\n }else{\r\n classContainer += ' background-color: ' + s.textcolor1 + ';';\r\n }\r\n classContainer += ' color: ' + s.tableheadertext + ';';\r\n classContainer += '}';\r\n // submit button (this stays here in case we want to change the shadow color based dynamically)\r\n classContainer += ' .signupPage .btn-bar .submit-btn-wrap .btn-signup-submit { ';\r\n classContainer += ' -moz-box-shadow: 0px 6px 10px 0 rgba(34,34,34,.35);';\r\n classContainer += ' -webkit-box-shadow: 0px 6px 10px 0 rgba(34,34,34,.35);';\r\n classContainer += ' box-shadow: 0 6px 10px 0 rgba(34,34,34,.35);';\r\n classContainer += ' border: 1px solid ' + s.tableheadertext + ';';\r\n classContainer += '}';\r\n\r\n // tooltip\r\n classContainer += ' .signupPage .feedback-tooltip { ';\r\n classContainer += ' background-color: ' + s.textcolor2 + ' !important;';\r\n classContainer += ' color: ' + s.backgroundcolor + ' !important;';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .feedback-tooltip:before { border-right-color: ' + s.textcolor2 + '; }';\r\n classContainer += ' .signupPage .table .feedback-tooltip:before { border-bottom-color: ' + s.textcolor2 + '; }';\r\n\r\n // errors\r\n var errorBGColor = s.buttoncolor;\r\n var errorBorderColor = s.buttontextcolor;\r\n var errorTextColor = s.buttontextcolor;\r\n classContainer += ' .signupPage .form-control-danger { border-color: ' + s.textcolor2 + '; }';\r\n classContainer += ' .signupPage .form-group.has-error::before, .signupPage .control-group.has-error::before { border-left: 6px solid ' + s.textcolor2 + '; }';\r\n classContainer += ' .signupPage .feedback-error { ';\r\n classContainer += ' background-color: ' + errorBGColor + ';';\r\n classContainer += ' color: ' + errorTextColor + ';';\r\n classContainer += ' border-color: ' + errorBorderColor + ';';\r\n classContainer += ' width: 100%;';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .feedback-error a { ';\r\n classContainer += ' color: ' + errorTextColor + '; text-decoration: underline;';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .has-error .form-control, .signupPage .has-error .form-control-feedback { ';\r\n classContainer += ' border-color: ' + s.textcolor2 + ';';\r\n classContainer += ' color: ##000000;';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .has-error label { ';\r\n classContainer += ' color: ' + s.textcolor2 + ';';\r\n classContainer += ' font-weight: bold; ';\r\n classContainer += '}';\r\n\r\n // misc\r\n classContainer += ' .signupPage .sm-color { fill: ' + s.textcolor2 + '; }';\r\n classContainer += ' .signupPage .sm-icon-size { width: 48px; height: 48px; }';\r\n classContainer += ' .signupPage .signup--badge { background-color: ' + s.buttoncolor + '; color: ' + s.buttontextcolor + '}';\r\n\r\n classContainer += ' .signupPage .sub-footer .nobrand { ';\r\n classContainer += ' background-color: ' + s.backgroundcolor + ';';\r\n if( s.backgroundimage !== '' )\r\n classContainer += ' background-image: url(' + s.backgroundimage + ') !important;';\r\n classContainer += '}';\r\n classContainer += ' .signupPage .sub-footer .nobrand > .hyperlink, .signupPage .sub-footer .nobrand > .verysmalllink { ';\r\n classContainer += ' text-decoration: underline;';\r\n classContainer += ' color: ' + s.TextColor2 + ';';\r\n classContainer += '}';\r\n\r\n // data grid\r\n classContainer += ' .signupPage .date-sorted .signupdata--date-dt { color: ' + s.textcolor2 + ' !important; }';\r\n classContainer += ' .signupPage .slot-sorted .signupdata--slot-title { color: ' + s.textcolor2 + ' !important; }';\r\n classContainer += ' .l-signuppage .no-date .signupdata--slot-title { color: ' + s.textcolor2 + '!important; }';\r\n\r\n // calendar view\r\n classContainer += ' .signupPage .calendar-view .cv-month-label--month { color: ' + s.textcolor2 + ' !important; }';\r\n classContainer += ' .signupPage .calendar-view .cv-month-label--nav a { color: ' + s.textcolor2 + ' !important; }';\r\n classContainer += ' .signupPage .calendar-view .cv-hdr { ';\r\n classContainer += ' background-color: ' + s.tableheaderbackground + ';';\r\n classContainer += ' color: ' + s.tableheadertext + ';';\r\n if( s.tableheaderimage !== '' )\r\n classContainer += ' background-image: url(' + s.tableheaderimage + ') !important;';\r\n classContainer += '}';\r\n var cvBorderColor = s.textcolor1;\r\n classContainer += ' .signupPage .calendar-view .cv-grid { border-color: ' + cvBorderColor + '; }';\r\n classContainer += ' .signupPage .calendar-view .cv-day { box-shadow: -1px -1px ' + cvBorderColor + ', inset -1px -1px 0 0 ' + cvBorderColor + ';}';\r\n classContainer += ' .signupPage .calendar-view .cv-day.weekend { background-color: ' + s.mutedTextColor1 + ';}';\r\n classContainer += ' .signupPage .calendar-view .cv-day:hover { background-color: ' + s.mutedButtonColor + ';}';\r\n\r\n classContainer += '.tabBackground { background-color: '+ s.backgroundcolor + 'width: 100%; background-image: url( ' + s.backgroundimage + ') !important;}';\r\n\r\n // return styles\r\n return classContainer;\r\n\r\n };\r\n\r\n\r\n // passcode controller\r\n SUGApp.controller('signUpPasscodeController',\r\n ['$scope','$location','signupPageService','SUGUtilities','errorService','$route',\r\n function( $scope,$location,svc,util,errorService,$route ) {\r\n\r\n $scope.errorMessage = '';\r\n $scope.disableForm = true;\r\n $scope.portalid = svc.getPortalId();\r\n $scope.str = {\r\n instruction: 'To view this sign up, please enter the Access Code provided by the sign up creator in the email invitation. Contact the sign up creator to obtain the access code if you did not receive an email invitation.',\r\n label: 'Access Code:',\r\n title: 'Access Code Required',\r\n contact: 'Having problems with access? For help, ',\r\n contactlink: 'contact the sign up creator.',\r\n };\r\n $scope.frmObj = {\r\n accessCode: '',\r\n };\r\n\r\n // instantiate error handler\r\n $scope.es = errorService.newInstance();\r\n $scope.errorStrings = {\r\n errorsTitle: '',\r\n errorsPleaseCorrect: 'Please correct the issues indicated below.'\r\n };\r\n\r\n /**\r\n * Validate and submit access code\r\n */\r\n $scope.submitAccessCode = function(){\r\n $scope.es.clearErrors();\r\n if( $scope.frmObj.accessCode.length ){\r\n $scope.disableForm = true;\r\n\r\n var params = { forSignUpView:true, urlid: $scope.urlkey, passcode: $scope.frmObj.accessCode , portalid: $scope.portalid };\r\n\r\n svc.getsignup(params,1)\r\n .then(function(result){\r\n var r = util.lowerCaseKeys( result );\r\n if (r.data.success) {\r\n svc.toggleDefaultTtl()\r\n // If the passcode is successfully entered, reload the route properly direct the user to the the signup and prevent scoping issues\r\n $route.reload();\r\n } else {\r\n // If passcode was incorrect, reenable the form and display the error message.\r\n $scope.disableForm = false;\r\n $scope.es.setError('accesscode','no msg');\r\n $scope.es.setError('error-top-level',r.data.message);\r\n }\r\n });\r\n } else{\r\n $scope.es.setError('accesscode','no msg');\r\n $scope.es.setError('error-top-level','no msg');\r\n }\r\n };\r\n\r\n var init = function(){\r\n $scope.disableForm = false;\r\n // get signup info\r\n svc.getsignup({ forSignUpView:true, urlid: $scope.urlkey, portalid: $scope.portalid })\r\n .then(function(response){\r\n var r = util.lowerCaseKeys( response );\r\n if( !util.ajaxResultInvalid(r) ){\r\n var signup = r.data.data;\r\n // set contact creator link and append the portalId param\r\n $scope.contactLink = '/index.cfm?go=c.help&mid=' + signup.mid + '&id=' + signup.id;\r\n // get theme info\r\n var theme = svc.getThemeInfo();\r\n $scope.linkcolor = util.keyExists(theme, 'textcolor2', true) ? theme.textcolor2 : '';\r\n // set instruction to message if not an error\r\n $scope.str.instruction = signup.message;\r\n //Append portal id parameter if necessary\r\n if( signup.allowembed && (!Number.isNaN($scope.portalid) && $scope.portalid > 0) ){\r\n $scope.contactLink += '&pid=' + $scope.portalid;\r\n }\r\n }else{\r\n var errorMessage = r.data && r.data.data && r.data.data.message ? r.data.data.message : 'An error occurred while retrieving the sign up information. Please try again at a later time.';\r\n $scope.es.setError('error-top-level',errorMessage);\r\n }\r\n }\r\n );\r\n\r\n };\r\n\r\n init();\r\n }]);\r\n\r\n // standard sign up controller\r\n SUGApp.controller('standardSignUpController',\r\n ['$scope','SUGUtilities','signupPageService','$filter','errorService','$sce','$window','$timeout',\r\n function( $scope,util,svc,$filter,errorService,sce,$window,$timeout ) {\r\n\r\n // get the cached info\r\n $scope.memberInfo = svc.getMemberInfo();\r\n $scope.signupInfo = svc.getSignUpInfo();\r\n $scope.themeInfo = svc.getThemeInfo();\r\n $scope.dateFormat = typeof $scope.signupInfo.shortdformat !== 'undefined' ? $scope.signupInfo.shortdformat.replace(\"mm\",\"MM\") : 'MM/dd/yyyy';\r\n\r\n var arrData = [];\r\n\r\n // limits on inital load\r\n $scope.displayLimits = {\r\n dates: 5,\r\n items: 8\r\n };\r\n $scope.slotCount = 0;\r\n $scope.filteredData = [];\r\n $scope.showLocation = false;\r\n $scope.slotTemplate = 'slots_standard.html';\r\n $scope.columnCount = 1;\r\n\r\n // set slot title\r\n if( util.keyExists($scope.signupInfo, 'slottitle', true) && $scope.signupInfo.slottitle !== $scope.strings.lbls.availableSlot ){\r\n $scope.strings.lbls.availableSlot = $scope.signupInfo.slottitle;\r\n }\r\n \r\n /*\r\n // handles page setup when new slots added\r\n $scope.$watch('signupInfo.currentSlots', function(newValue) {\r\n $scope.filteredData = [];\r\n arrData = [];\r\n init();\r\n })*/\r\n\r\n /**\r\n * Prep data for UI presentation\r\n */\r\n var prepData = function(){\r\n /*if ($scope.signupInfo.allSlotsHidden)\r\n return;\r\n */\r\n $scope.showTime = false;\r\n\r\n \r\n /*var currentPageObj = $scope.signupInfo.currentSlots[0];\r\n var objSlots = util.deepCopy(currentPageObj);\r\n */\r\n // Uncomment to use old non-paginated version\r\n var objSlots = util.deepCopy($scope.signupInfo.slots);\r\n \r\n $scope.virtualLocations = $scope.signupInfo.virtuallocations;\r\n // build return value to be iterated\r\n for (var key in objSlots) {\r\n if (objSlots.hasOwnProperty(key)) {\r\n // date label\r\n objSlots[key]['dateLabel'] = getDateLabel( objSlots[key].starttime );\r\n // time label\r\n objSlots[key]['timeLabel'] = objSlots[key].usetime ? getTimeLabel( objSlots[key].starttime, objSlots[key].endtime ) : '';\r\n // location\r\n if( objSlots[key].location.length ){ $scope.showLocation = true; }\r\n var stcLoc = typeof objSlots[key].locationid !== 'undefined' && objSlots[key].locationid > 0 ? getLocationObj(objSlots[key].locationid) : getLocationObj( 0 );\r\n objSlots[key]['locdetail'] = {\r\n url: stcLoc.url,\r\n full: stcLoc.full,\r\n address1: stcLoc.address1,\r\n address2: stcLoc.address2,\r\n city: stcLoc.city,\r\n state: stcLoc.state,\r\n zipcode: stcLoc.zipcode,\r\n showicon: true,\r\n virtuallocationurl: null,\r\n physicalandvirtual: false\r\n };\r\n // Add the virtual location detials to the object slots view model\r\n if (objSlots[key].virtuallocationid) {\r\n const virtualLocationId = objSlots[key].virtuallocationid;\r\n objSlots[key]['virtualocdetail'] = $scope.virtualLocations[virtualLocationId];\r\n objSlots[key]['locdetail'].virtuallocationurl = $scope.virtualLocations[virtualLocationId].virtuallocationlinkurl;\r\n objSlots[key]['locdetail'].virtuallocationtype = $scope.virtualLocations[virtualLocationId].type;\r\n }\r\n // Some locations can be both physical and virtual, so we need to add some details around that that can be passed into the directive\r\n objSlots[key].virtuallocationid > 0 && objSlots[key].locationid > 0 ? objSlots[key]['locdetail'].physicalandvirtual = true : objSlots[key]['locdetail'].physicalandvirtual = false;\r\n // iterate items\r\n for( var i=0; i -1 ){\r\n isSelected = true;\r\n }\r\n }\r\n objSlots[key].items[i]['btnState'] = isSelected ? 'selected' : stcAvailable.btnState;\r\n // get the logged in member's qty already signed up for\r\n objSlots[key].items[i]['myqty'] = ( $scope.memberId ) ? $scope.getQtyForMember(objSlots[key].items[i]['participants'], $scope.memberId) : 0;\r\n objSlots[key].items[i]['deleteModalInfo'] = $scope.getDeleteModalInfo( objSlots[key].items[i], objSlots[key], objSlots[key].items[i].slotitemid );\r\n }\r\n\r\n // add item\r\n arrData.push(objSlots[key]);\r\n }\r\n }\r\n\r\n // sort by date and then location\r\n arrData.sort(function(a, b) {\r\n var dtA = new Date(a.starttime);\r\n var dtB = new Date(b.starttime);\r\n var locA = a.location;\r\n var locB = b.location;\r\n var locIdA = a.locationid;\r\n var locIdB = b.locationid;\r\n\r\n if( dtA.getTime() < dtB.getTime() ){\r\n return -1;\r\n }\r\n if( dtA.getTime() > dtB.getTime() ){\r\n return 1;\r\n }\r\n // dates are equal if we got this far (dtA == dtB will always return false)\r\n if( locA < locB ){\r\n return -1;\r\n }\r\n if( locA > locB ){\r\n return 1;\r\n }\r\n // if dates and location names are the same, ensure locationid is sorted as well\r\n if( locIdA < locIdB ){\r\n return -1;\r\n }\r\n if( locIdA > locIdB ){\r\n return 1;\r\n }\r\n\r\n // everything is equal\r\n return 0;\r\n });\r\n };\r\n\r\n /**\r\n * Deletes an item member.\r\n *\r\n * @modalInfo {Object} - see getDeleteModalInfo for contents\r\n * @itemmember {Object} - the itemmember to delete\r\n */\r\n $scope.deleteItemMember = function(modalInfo, itemmember){\r\n // wait for the promise to resolve and if successful, delete the item member from the client side cache\r\n svc.deleteItemMemberModal(modalInfo, itemmember).then(function (deleteInfo) {\r\n // delete the itemmember from the main participants array\r\n var participants = $scope.signupInfo.participants[modalInfo.slotitemid];\r\n $scope.signupInfo.participants[modalInfo.slotitemid] = participants.filter( function(itemmember){\r\n return itemmember.itemmemberid != deleteInfo.itemmemberid;\r\n });\r\n\r\n // update the filterdata participants array for the slotitem\r\n // find the item's index\r\n var slotIdx;\r\n $scope.filteredData.some( function(slot, sIdx){\r\n if( slot.slotid === modalInfo.slotid ){\r\n slotIdx = sIdx;\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n });\r\n\r\n // if item found, find the slottitem\r\n if( util.isIntegerGTE0(slotIdx) ){\r\n var slotitemIdx;\r\n $scope.filteredData[slotIdx].items.some( function(slotitem, siIdx){\r\n if( slotitem.slotitemid === modalInfo.slotitemid ){\r\n slotitemIdx = siIdx;\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n });\r\n // if slotitem found, update the participants array and quantity info for the item member\r\n if( util.isIntegerGTE0(slotitemIdx) ){\r\n $scope.filteredData[slotIdx].items[slotitemIdx].participants = $scope.signupInfo.participants[deleteInfo.slotitemid];\r\n $scope.filteredData[slotIdx].items[slotitemIdx].qtytaken = Math.max($scope.filteredData[slotIdx].items[slotitemIdx].qtytaken - $scope.filteredData[slotIdx].items[slotitemIdx].myqty, 0);\r\n var stcAvailable = svc.getAvailability( $scope.filteredData[slotIdx].items[slotitemIdx].qty, $scope.filteredData[slotIdx].items[slotitemIdx].qtytaken, $scope.filteredData[slotIdx].items[slotitemIdx].isaddlocked, $scope.isLocked() );\r\n $scope.filteredData[slotIdx].items[slotitemIdx].qtyLabel = stcAvailable.qtyLabel;\r\n $scope.filteredData[slotIdx].items[slotitemIdx].qtyLabelResponsive = stcAvailable.qtyLabelResponsive;\r\n $scope.userSignUp.totalQty -= $scope.filteredData[slotIdx].items[slotitemIdx].myqty;\r\n $scope.filteredData[slotIdx].items[slotitemIdx].myqty = ( $scope.memberId ) ? $scope.getQtyForMember($scope.filteredData[slotIdx].items[slotitemIdx].participants, $scope.memberId) : 0;\r\n\r\n if (!$scope.signupInfo.hasavailableslots) {\r\n $scope.signupInfo.hasavailableslots = true;\r\n $scope.es.clearErrors();\r\n }\r\n\r\n $scope.filteredData[slotIdx].items[slotitemIdx].btnState = stcAvailable.btnState;\r\n }\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Iterate arrData and determine what dates should be grouped together\r\n */\r\n var groupDates = function(){\r\n var uniqueDates = {};\r\n var flags = [];\r\n var dateCount = 0;\r\n var last = {\r\n date: '',\r\n time: '',\r\n };\r\n var calcShowTimeColumn = !$scope.showHeaderTime();\r\n\r\n // get unique dates\r\n for( var i=0; i < arrData.length; i++ ){\r\n // if key doesn't exist - shouldn't get here\r\n if( !util.keyExists( arrData[i], 'dateLabel', true ) && !util.keyExists( arrData[i].dateLabel, 'date', true ) ){\r\n continue;\r\n }\r\n\r\n // compare with last time - if same date has multiple times, set to show time column\r\n if( calcShowTimeColumn ){\r\n if( arrData[i].dateLabel.date == last.date ){\r\n if( arrData[i].timeLabel != last.time ){\r\n $scope.showTimeColumn = true;\r\n }\r\n last.time = arrData[i].timeLabel;\r\n }\r\n else{\r\n last.date = arrData[i].dateLabel.date;\r\n last.time = arrData[i].timeLabel;\r\n }\r\n }\r\n\r\n // if showing dates in data grid\r\n if( !$scope.showHeaderDate() ){\r\n // if key already exists, increment counter and continue\r\n if( flags[arrData[i].dateLabel.date] ){\r\n uniqueDates[arrData[i].dateLabel.date].count += 1;\r\n continue;\r\n }\r\n // if key doesn't exist, add it\r\n flags[arrData[i].dateLabel.date] = true;\r\n uniqueDates[arrData[i].dateLabel.date] = {\r\n count: 1,\r\n firstslotid: arrData[i].slotid,\r\n };\r\n dateCount += 1;\r\n }\r\n }\r\n // iterate through items and append row span\r\n for( var dt=0; dt < arrData.length; dt++ ){\r\n var daterowspan = 0;\r\n for( var item in uniqueDates ){\r\n if( arrData[dt].slotid == uniqueDates[item].firstslotid ){\r\n daterowspan = uniqueDates[item].count;\r\n break;\r\n }\r\n }\r\n arrData[dt][\"daterowspan\"] = daterowspan;\r\n }\r\n // if there is more than date, show calendar icon\r\n if( dateCount > 1 ){\r\n $scope.showCalendarIcon = true;\r\n }\r\n };\r\n\r\n /**\r\n * Iterate arrData and determine what locations should be grouped together\r\n * Group rows with the same date and location in the same row\r\n */\r\n var groupLocations = function(){\r\n var uniqueLocs = {};\r\n var flags = [];\r\n // if showing locations in data grid\r\n if( !$scope.showHeaderLocation() ){\r\n\r\n // get unique locations\r\n var loc_key;\r\n var loc_slot_key;\r\n for( var i=0; i < arrData.length; i++ ){\r\n // if key doesn't exist - shouldn't get here\r\n if( ( !util.keyExists( arrData[i], 'dateLabel', true) && !util.keyExists( arrData[i].dateLabel, 'date', true) )\r\n || !util.keyExists( arrData[i], 'location', true)\r\n || !util.keyExists( arrData[i], 'locationid', true)\r\n || !util.keyExists( arrData[i], 'starttime', true)\r\n || !util.keyExists( arrData[i], 'endtime', true)\r\n ){\r\n continue;\r\n }\r\n // define key\r\n // used location name (arrData[ul].location) - may need to hash this if some data values become problematic as object property names\r\n var newLocation = ( loc_key !== arrData[i].dateLabel.date + '_' + arrData[i].location + '_' + arrData[i].locationid );\r\n if( newLocation ){\r\n loc_key = arrData[i].dateLabel.date + '_' + arrData[i].location + '_' + arrData[i].locationid;\r\n }\r\n\r\n // if key already exists, increment counter and continue\r\n if( flags[loc_key] && !newLocation ){\r\n uniqueLocs[loc_key][loc_slot_key].count += 1;\r\n continue;\r\n }else if( flags[loc_key] && newLocation ){\r\n loc_slot_key = arrData[i].slotid;\r\n if( util.keyExists(uniqueLocs[loc_key],loc_slot_key,true) ){\r\n uniqueLocs[loc_key][loc_slot_key].count += 1;\r\n }else{\r\n uniqueLocs[loc_key][loc_slot_key] = {\r\n count: 1\r\n };\r\n }\r\n continue;\r\n }\r\n // if key doesn't exist, add it\r\n loc_slot_key = arrData[i].slotid;\r\n flags[loc_key] = true;\r\n uniqueLocs[loc_key] = { date: arrData[i].dateLabel.date };\r\n uniqueLocs[loc_key][loc_slot_key] = {\r\n count: 1\r\n };\r\n }\r\n }\r\n\r\n // iterate through items and append row span\r\n for( var l=0; l < arrData.length; l++ ){\r\n var locrowspan = 0;\r\n for( var item in uniqueLocs ){\r\n if( uniqueLocs.hasOwnProperty(item) ){\r\n if( arrData[l].dateLabel.date == uniqueLocs[item].date\r\n && util.keyExists(uniqueLocs[item],arrData[l].slotid,true) ){\r\n locrowspan = uniqueLocs[item][arrData[l].slotid].count;\r\n break;\r\n }\r\n }\r\n }\r\n arrData[l][\"locationrowspan\"] = locrowspan;\r\n }\r\n };\r\n\r\n /**\r\n * Sets filter on slots - returns filtered slots as $scope.filteredData\r\n * (similar function - rsvpSignUpController::filterSlots - may be able to combine in signupController)\r\n */\r\n $scope.setFilteredData = function(){\r\n $scope.filteredData = arrData;\r\n };\r\n\r\n /**\r\n * Returns the most slots in a single date\r\n */\r\n var getSlotCount = function( filteredData ){\r\n var mostSlots = 0;\r\n\r\n for(var f=0; f < filteredData.length; f++){\r\n if( filteredData[f].items && (mostSlots < filteredData[f].items.length) ){\r\n mostSlots = filteredData[f].items.length;\r\n }\r\n }\r\n\r\n return mostSlots;\r\n };\r\n\r\n /*\r\n * method called on scroll\r\n * expects a scrollable element to have class=\"scrollable\"\r\n * and a parent wrapping element with the same id as itself plus \"-wrap\"\r\n * (i.e. id=\"myelement\" with parent of id=\"myelement-wrap\")\r\n\t\t*/\r\n\t\tvar setScroll = function(){\r\n var scrollableElems = document.getElementsByClassName('scrollable');\r\n var intBuffer = 8;\r\n for (var i = 0; i < scrollableElems.length; i++) {\r\n var elemWrap = document.getElementById( scrollableElems[i].id + '-wrap' );\r\n var elemSubj = $( '#' + scrollableElems[i].id );\r\n calcScroll( elemWrap, elemSubj, intBuffer );\r\n }\r\n };\r\n\r\n /**\r\n\t\t * Helper method to calulate scroll for sticky segment - adds appropriate css to subject element\r\n\t\t * @elWrap - reference to DOM wrapping element (sets the top and bottom of the content section to scroll)\r\n\t\t * @elSubject - reference to subject element to scroll\r\n\t\t * @intBuffer - int, pixels to add as a buffer to the top and bottom of the scrolled content\r\n\t\t */\r\n var calcScroll = function( elWrap, elSubject, intBuffer ){\r\n var elemHeight = elSubject.height();\r\n var intSubjectWidth = $scope.columnWidths[elSubject[0].id];\r\n var intWrapWidth = $scope.columnWidths[elWrap.id];\r\n if( elWrap.getBoundingClientRect().top > 0 ){ // scroll has not reached top of subject yet\r\n elSubject.css({ position:'relative', top: 0 });\r\n }\r\n else if( elWrap.getBoundingClientRect().bottom - elemHeight - (2 * intBuffer) >= 0 ){ // scroll is between top of subject element and bottom (including top and bottom buffer)\r\n elSubject.css({ width: intSubjectWidth, position: 'fixed', top: intBuffer });\r\n // reset width of wrapping element\r\n // this was required in some cases where the only child of the wrapper was the one being scrolled and position:fixed caused all columns to collapse\r\n $( '#' + elWrap.id ).css({ width: intWrapWidth, 'max-width': intWrapWidth, 'min-width': intWrapWidth });\r\n }\r\n else if( elWrap.getBoundingClientRect().bottom >= 0 ){ // scroll is after element height minus top/bottom buffer but before subject bottom\r\n elSubject.css({ width: intSubjectWidth, position: 'fixed', top: elWrap.getBoundingClientRect().bottom - elemHeight - intBuffer });\r\n $( '#' + elWrap.id ).css({ width: intWrapWidth, 'max-width': intWrapWidth, 'min-width': intWrapWidth });\r\n }\r\n else{ // scroll is passed element bottom (element is off screen)\r\n elSubject.css({ position: 'relative', top: 0});\r\n }\r\n };\r\n\r\n /**\r\n\t\t * Helper method to set starting column widths scrollable elements and wrappers\r\n * Subsequently used by scrolling method to ensure originally rendered widths are retained\r\n * Sets a scoped object with key value pairs where key is the element id and value is the pixel width\r\n * (i.e. { 39821-48522-date-wrap: 100, ... } )\r\n\t\t */\r\n var setStartingColumnWidths = function(){\r\n $scope.columnWidths = {};\r\n var scrollableElems = document.getElementsByClassName('scrollable');\r\n for (var i = 0; i < scrollableElems.length; i++) {\r\n $scope.columnWidths[ scrollableElems[i].id ] = document.getElementById( scrollableElems[i].id ).getBoundingClientRect().width;\r\n $scope.columnWidths[ scrollableElems[i].id + '-wrap' ] = document.getElementById( scrollableElems[i].id + '-wrap' ).getBoundingClientRect().width;\r\n }\r\n };\r\n\r\n /**\r\n\t\t * Helper method to return formatted date and day\r\n\t\t * @strStart - start time\r\n\t\t */\r\n var getDateLabel = function( strStart ){\r\n var dtStart = new Date(strStart);\r\n var stcStartDate = {\r\n \"date\": $filter('date')(dtStart, $scope.signupInfo.shortdformat.replace('mm','MM')),\r\n \"day\": $filter('date')(dtStart, 'EEEE'),\r\n };\r\n return stcStartDate;\r\n };\r\n\r\n /**\r\n\t\t * Helper method to return formatted start time, and end time if appropriate\r\n\t\t * @strStart - start time\r\n\t\t * @strStart - end time, empty string if empty\r\n\t\t */\r\n var getTimeLabel = function( strStart, strEnd ){\r\n var dtStart = new Date(strStart);\r\n var strLabel = '';\r\n // Add start time\r\n strLabel += '' + $filter('date')(dtStart, 'h:mma').toLowerCase();\r\n if( !strEnd.length ){\r\n strLabel += '';\r\n }\r\n else{\r\n var dtEnd = new Date(strEnd);\r\n strLabel += '-
        ' + $filter('date')(dtEnd, 'h:mma').toLowerCase() + '';\r\n }\r\n if( strLabel.length ){ $scope.showTime = true; }\r\n return strLabel;\r\n };\r\n\r\n /**\r\n\t\t * Helper method to return formatted location info\r\n\t\t * @locId - location id\r\n\t\t */\r\n var getLocationObj = function( locId ){\r\n var stcLocation = {\r\n url: '',\r\n full: '',\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zipcode: '',\r\n };\r\n if( $scope.signupInfo.locations[locId] && Object.keys($scope.signupInfo.locations[locId]).length !== 0 ){\r\n // location object\r\n var stcLoc = $scope.signupInfo.locations[locId];\r\n // build address string\r\n var strLoc = stcLoc.address1.length ? stcLoc.address1 : '';\r\n strLoc += stcLoc.address2.length ? ' ' + stcLoc.address2 : '' ;\r\n if( strLoc.length ){ strLoc += ', '; }\r\n strLoc += stcLoc.city.length ? stcLoc.city + ', ' : '';\r\n strLoc += stcLoc.state.length ? stcLoc.state + ' ' : '';\r\n strLoc += stcLoc.zipcode > 0 ? stcLoc.zipcode.toString() : '';\r\n strLoc = strLoc.trim();\r\n // set address and url\r\n if( strLoc.length ){\r\n stcLocation.full = strLoc;\r\n stcLocation.url = 'https://www.google.com/maps/search/?api=1&query=' + strLoc.replace(/ /g, '+');\r\n stcLocation.address1 = stcLoc.address1;\r\n stcLocation.address2 = stcLoc.address2;\r\n stcLocation.city = stcLoc.city;\r\n stcLocation.state = stcLoc.state;\r\n stcLocation.zipcode = stcLoc.zipcode;\r\n }\r\n }\r\n return stcLocation;\r\n };\r\n\r\n /**\r\n * Determine how many columns are shown in the table.\r\n */\r\n $scope.getColumnCount = function(showDateColumn, showLocationColumn, showTimeColumn){\r\n // we start at one because we always display the first column\r\n var columnCountShown = 1;\r\n if( showDateColumn ){ columnCountShown++; }\r\n if( showTimeColumn ){ columnCountShown++; }\r\n if( showLocationColumn ){ columnCountShown++; }\r\n return columnCountShown;\r\n };\r\n\r\n /**\r\n * Determine which slot template to use based on how many columns we are displaying\r\n */\r\n var setLayoutValues = function(){\r\n $scope.columnCount = $scope.getColumnCount( !$scope.showHeaderDate(),!$scope.showHeaderLocation() && $scope.showLocation,!$scope.showHeaderTime() && $scope.showTimeColumn );\r\n $scope.slotTemplate = ( $scope.columnCount >= 3 ) ? 'slots_stacked.html' : 'slots_standard.html';\r\n };\r\n\r\n var init = function(){\r\n prepData();\r\n groupDates();\r\n groupLocations();\r\n $scope.setFilteredData();\r\n $scope.slotCount = getSlotCount($scope.filteredData);\r\n setLayoutValues();\r\n\r\n // set starting column width for scrollable wrappers\r\n // allow time for table to render and any slot images to load\r\n $timeout(function(){\r\n // bind scroll to function\r\n $( window ).scroll( setScroll );\r\n\r\n setStartingColumnWidths();\r\n }, 900);\r\n\r\n increaseDisplayLimits(true);\r\n };\r\n\r\n /**\r\n * Increases the limitTo value of the ng-repeat of filteredData by incrementing it periodically until all data is rendered,\r\n * this improves loading time for large signups\r\n */\r\n var increaseDisplayLimits = function( firstIteration ){\r\n var timeoutTime = firstIteration ? 600:25;\r\n var increaseSlotLimit = $scope.slotCount > $scope.displayLimits.items;\r\n var increaseDateLimit = $scope.filteredData.length > $scope.displayLimits.dates;\r\n\r\n if( increaseSlotLimit || increaseDateLimit ){\r\n $timeout( function(){\r\n if( increaseSlotLimit ){\r\n $scope.displayLimits.items = $scope.displayLimits.items+20;\r\n }\r\n if( increaseDateLimit ){\r\n $scope.displayLimits.dates = $scope.displayLimits.dates+20;\r\n }\r\n }, timeoutTime).then( increaseDisplayLimits );\r\n }\r\n };\r\n\r\n\r\n // DEV NOTE: Comment out in SUG-16260. Will be delegated to $watch \r\n init();\r\n\r\n }]);\r\n\r\n\r\n // rsvp sign up controller\r\n SUGApp.controller('rsvpSignUpController',\r\n ['$scope','SUGUtilities','signupPageService','$filter','errorService','$sce','$window','$timeout',\r\n function( $scope,util,svc,$filter,errorService,sce,$window,$timeout ) {\r\n\r\n // get the cached sign up info\r\n $scope.signupInfo = svc.getSignUpInfo();\r\n $scope.themeInfo = svc.getThemeInfo();\r\n $scope.dateFormat = typeof $scope.signupInfo.shortdformat !== 'undefined' ? $scope.signupInfo.shortdformat.replace(\"mm\",\"MM\") : 'MM/dd/yyyy';\r\n\r\n // scope variables\r\n $scope.filteredSlots = [];\r\n $scope.responses = {\r\n yes: [],\r\n no: [],\r\n maybe: [],\r\n responded: [],\r\n noresponse: [],\r\n };\r\n $scope.counts = {\r\n response: {\r\n yes: 0,\r\n no: 0,\r\n maybe: 0,\r\n noresponse: 0,\r\n },\r\n guest: {\r\n confirmed: 0,\r\n maybe: 0,\r\n },\r\n child: {\r\n confirmed: 0,\r\n maybe: 0,\r\n },\r\n };\r\n $scope.show = {\r\n slots: false,\r\n responses: false,\r\n child: false,\r\n responseNote: false,\r\n participantNames: false,\r\n participantNote: false,\r\n detail: {\r\n yes: false,\r\n no: false,\r\n maybe: false,\r\n noresponse: false,\r\n }\r\n };\r\n // local variables\r\n var slots = []; // unfiltered slots\r\n\r\n /**\r\n * Prep slot for presentation - updates local slots object\r\n */\r\n var prepSlots = function(){\r\n slots = [];\r\n if( $scope.show.slots ){\r\n // set slot title\r\n if( util.keyExists($scope.signupInfo, 'slottitle') && $scope.signupInfo.slottitle !== $scope.strings.lbls.availableSlot ){\r\n $scope.strings.lbls.availableSlot = $scope.signupInfo.slottitle;\r\n }\r\n slots = $scope.signupInfo.rsvpdetails.rsvpitems;\r\n // add quantity label\r\n for( var i=0; i 0 ){\r\n if( slots[i].qty == 999999 ){\r\n slots[i]['participantLabel'] = qtyTaken.toString() + ' slot';\r\n if( qtyTaken > 1 ){ slots[i]['participantLabel'] += 's'; }\r\n slots[i]['participantLabel'] += ' filled - more available';\r\n }\r\n else{\r\n slots[i]['participantLabel'] = qtyTaken.toString() + ' of ' + slots[i].qty.toString() + ' slot';\r\n if( slots[i].qty > 1 ){ slots[i]['participantLabel'] += 's'; }\r\n slots[i]['participantLabel'] += ' filled';\r\n }\r\n }\r\n else{ // none taken yet\r\n slots[i]['participantLabel'] = '';\r\n }\r\n // participant names\r\n slots[i]['participantNames'] = [];\r\n if( $scope.show.participantNames ){\r\n if( util.keyExists($scope.signupInfo, 'participants.' + slots[i].slotitemid.toString()) ){\r\n var objParticipant = $scope.signupInfo.participants[ slots[i].slotitemid ];\r\n for( var j=0; j