var ExlConstants={auth:{issuedUtc:".issued",tokenName:"access_token",refreshToken:"refresh_token",refreshTtl:"refresh_ttl",userName:"username",regGrpName:"regGrpName",regId:"regId",bkgId:"bkgId",regGrpId:"regGrpId",uistateRegId:"uistateRegId",flowCode:"flowCode"},integration:{Edge:"integEdge",Boost:"integBoost",Engage:"integEngage",AutoLogin:"integAutoLogin",CrossShow:"integCrossShow"},wizardTaskInternalName:{CABRoomSearch:"CABRoomSearch",RABHotelSelection:"RABHotelSelection",RABAdditionalCriteria:"RABAdditionalCriteria",RABRoomNights:"RABRoomNights",RABHome:"RABHome",RABSummary:"RABSummary",RABGuarantee:"RABGuarantee",ManageRooms:"ManageRooms",Profile:"Profile",BookingContactProfile:"BookingContactProfile",Dashboard:"Dashboard",PersonnelSearch:"PersonnelSearch",BookingSelection:"BookingSelection",ShowSummary:"ShowSummary",ShowItems:"ShowItems",Confirmation:"Confirmation",Demographic:"Demographic",Payment:"Payment",RoomOccupant:"RoomOccupant",ShowItemGE:"ShowItemGE",RoomDetail:"RoomDetail",RoomBrowse:"RoomBrowse",RoomSearch:"RoomSearch",RegistrantGroupLogin:"RegistrantGroupLogin",CompletedPersonnel:"CompletedPersonnel",GroupSummary:"GroupSummary",SelfRegExhibitorSelect:"SelfRegExhibitorSelect",Guest:"Guest",ExhibitingCompanySearch:"ExhibitingCompanySearch",ExhibitingCompanyValidate:"ExhibitingCompanyValidate",Member:"Member",RoomChoice:"RoomChoice"},wizardSectionName:{Registration:"Registration",Housing:"Housing",AddAnother:"AddAnother",RAB:"RAB",CAB:"CAB",ManageRooms:"ManageRooms",ManageGroup:"ManageGroup",Dashboard:"Dashboard",GESessions:"GESessions",ContactProfile:"ContactProfile",ViewCompleted:"ViewCompleted",Financial:"Financial",Confirmation:"Confirmation",GEHousing:"GEHousing"},wizardSectionActionName:{ReservationUpload:"ReservationUpload"},setupWizardTypeCode:{CAB:"CAB",Profile:"Profile",Demographic:"Demographic",ShowItems:"ShowItems",Guest:"Guest",RoomOccupant:"RoomOccupant",RegType:"RegType"},blockRequestStatus:{inProgress:"INPROGRESS",submitted:"SUBMITTED",fulfilled:"FULFILLED",guaranteed:"GUARANTEED",cancelled:"CANCELLED"},events:{currentRegistrantChanged:"EXL_CURRENT_REGISTRANT_CHANGED",registrantLogin:"EXL_REGISTRANT_LOGIN",creatingNewBooking:"EXL_CREATING_NEW_BOOKING",touchAllInputs:"EXL_TOUCH_ALL_INPUTS",httpRequestsPending:"EXL_HTTP_REQUESTS_PENDING",httpRequestsComplete:"EXL_HTTP_REQUESTS_COMPLETE",bookingBalanceUpdate:"EXL_BOOKING_BALANCE_UPDATE",roomOccupantChanged:"EXL_ROOM_OCCUPANT_CHANGED",registrantLikeChanged:"EXL_REGISTRANT_LIKE_CHANGED",geShowItemPricingChanged:"EXL_GE_SHOWITEM_PRICING_CHANGED",staticTextUpdate:"EXL_STATIC_TEXT_UPDATE",staticTextEditModeToggled:"EXL_STATIC_TEXT_EDIT_MODE_TOGGLED",wizardNavChanged:"EXL_WIZARD_NAV_CHANGED",selfRegCurrentRegistrantChanged:"EXL_SELFREG_CURRENT_REGISTRANT_CHANGED",paymentApplied:"EXL_PAYMENT_APPLIED",logoutStart:"EXL_LOGOUT_START"},session:{roomSearchCriteria:"RoomSearchCriteria",roomSearchCriteriaCAB:"RoomSearchCriteriaCAB",roomSearchCriteriaFacilityFeatures:"RoomSearchCriteriaFacilityFeatures",personnelRegOption:"PersonnelRegOption",geShowItem:"GEShowItem",uistateTaskName:"uistateTaskName",isPreview:"isPreview",teamName:"TeamName",teamNum:"TeamNum",teamProg:"TeamProg",paymentApplied:"PaymentApplied"},registrantGroupTypeCodes:{attendee:"ATTENDEE",exhibitor:"EXHIBITOR"},registrantInterfaceTypes:{IContact:"IContact",IOccupant:"IOccupant"},registrationStatusTypeCodes:{completed:"COM",inProgress:"INP",store:"STO",deleted:"DEL"},blockManagementTypes:{rab:"RAB",cab:"CAB"},executionMessageTypeCode:{duplicateRegistrant:"DUPE_REG",fail:"FAIL"},showItemTypeCodes:{PKG:"PKG",REG:"REG",GUE:"GUE",SES:"SES",HOU:"HOU",XPG:"XPG",ACT:"ACT",AGN:"AGN"},eventHandlerCodes:{add:"ADD",edit:"EDIT",update:"UPDATE",cancel:"CANCEL",remove:"REMOVE",addRegistration:"ADD_REG",removeRegistration:"REMOVE_REG",addHousing:"ADD_HOUSING",pay:"PAY",selectAll:"SELECT_ALL"},personnelRegOptions:{reg:"REG",housing:"HOUSING",regHousing:"REG_HOUSING",inviteIndividual:"INVITE_IND"},paymentMethods:{check:"CK",creditCard:"CC",surplus:"SURPLUS-"},flowRegistrationTypes:{none:"None",attendee:"Attendee",exhibitor:"Exhibitor"},flowHousingTypes:{none:"None",standard:"Standard",block:"Block"},noHotelTypeCodes:{StaffCancel:"STAFFCXL",WebCancel:"WEBCXL",Unavailable:"UNAVAIL",OwnAccommodations:"OWNACC",Other:"OTHER"},serviceTypeCodes:{HousingMultiEventManagement:"MEM",Engage:"ENGAGE",Registration:"REG",Housing:"HOU",SelfRegistration:"SELF",Onsite:"ONS",EXS:"EXS"},filterCompletedTypes:{RegOrRes:"REG_OR_RES",RegOnly:"REG_ONLY",ResOnly:"RES_ONLY",RegAndRes:"REG_AND_RES"}};(function(){"use strict";var n=angular.element("html");angular.module("CommonModule",["ngCookies","ngSanitize","StaticTextModule","DashboardModule","DemographicModule","PaymentModule","GuestModule","ProfileModule","RegTypeModule","ShowItemModule","SummaryModule","HousingModule","RABModule","CABModule","WidgetModule","PersonnelModule","ConfirmationModule","MemberModule","SelfRegModule","FriendInviteModule","ExhibitorModule","MarketingCodeModule","TrafficBoostModule","ui.router","mm.foundation","toaster"]).constant("REF_FILES_URL",n.data("exlRefFilesUrl")).constant("WIZARD",{flow:n.data("exlFlow"),tasks:{}}).constant("SCHEDULES",n.data("exlSchedules")).constant("SHOW",n.data("exlShow")).constant("LOGOUTURL",n.data("exlLogoutUrl")).constant("PAYMENTCASHCHECKENABLED",n.data("exlPaymentCashCheckEnabled")).constant("IS_ONSITE",n.data("exlIsOnsite")).constant("IS_DEV_DATABASE",n.data("exlIsDevDatabase")).constant("IS_QA_DATABASE",n.data("exlIsQaDatabase")).constant("IS_PROD_DATABASE",n.data("exlIsProdDatabase")).constant("SOCIALNET",n.data("exlSocialNet")).constant("FACILITYFEATURES",{NS:!1,RESTAURANT:!1,POOL:!1,"WI-RM":!1,GAMING:!1,SHUTTLE:!1,TRAIN:!1,ISHEADQUARTER:!1,MORE:!1}).constant("SCHEDULEDDOWNTIME",n.data("exlScheduledDownTime")).constant("REGEX",{isUrlForeignOrStatic:/^[^\?]+\./,emailString:"(^\\s*$)|^([\\w-\\.\\+']*[\\w-'])@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,6}|[0-9]{1,3})(\\]?)$"}).constant("DIGICERTKEY",n.data("exlDigiCertKey")).config(["$tooltipProvider","$stateProvider","$urlRouterProvider","WIZARD",function(n,t,i,r){var e,o,s;n.options({animation:!1});var u=r.flow,f=function(n){var t=u?u[n+"Schedule"]:null;return t?moment().isBetween(t.beginDate,t.endDate):!0},h=function(n,t){if(t){var i=t?t[n+"Schedule"]:null;return i?moment().isBefore(i.beginDate):!1}return!1},c=function(n,t){if(t){var i=t?t[n+"Schedule"]:null;return i?moment().isAfter(i.endDate):!1}return!1},l=function(n){var i,t,r;if(u==null)return!1;for(i=!1,t=0;t<u.wizardSections.length;t++)if(r=u.wizardSections[t],exlBaseFunctions.stringEqualsIgnoreCase(r.sectionName,n)){i=!0;break}return i},a=function(n,t){var e,i,r,f,o;if(u==null)return!1;for(e=!1,i=0;i<u.wizardSections.length;i++)if(r=u.wizardSections[i],exlBaseFunctions.stringEqualsIgnoreCase(r.sectionName,n))for(f=0;f<r.wizardSectionActions.length;f++)if(o=r.wizardSectionActions[f],exlBaseFunctions.stringEqualsIgnoreCase(o.internalName,t))return!0;return e};r.isRegistrationOpen=function(){return f("registration")};r.isBeforeRegOpen=function(){return h("registration",u)};r.isAfterRegOpen=function(){return c("registration",u)};r.isBeforHousingOpen=function(){return h("housing",u)};r.isAfterHousingOpen=function(){return c("housing",u)};r.isHousingOpen=function(){return f("housing")};r.isRABOpen=function(){return f("rab")};r.isCABOpen=function(){return f("cab")};r.isSectionEnabled=function(n){return l(n)};r.isSectionActionEnabled=function(n,t){return a(n,t)};r.defaultMaxNumOfRooms=9;u&&(o="registration",s={abstract:!0,url:"/registrant/:regId",template:"<ui-view><\/ui-view>"},t.state(o,s),angular.forEach(u.wizardSections,function(n){var f=!1;switch(n.sectionName){case"GESessions":case"GEHousing":f=!0}angular.forEach(n.wizardTasks,function(r,h){var a=this,l,c;a[r.taskInternalName]||(l={url:"/"+r.taskInternalName+"/:id",controller:r.controller||angular.noop,controllerAs:"taskCtrl",templateUrl:r.taskUrl,data:{taskName:r.taskInternalName,task:r,isGradualEngagement:f,config:angular.extend({},u.config,n.config,r.config)}},r.stateName=o+"."+r.taskInternalName,t.state(r.stateName,l),!e&&(n.inLinearFlow||u.isEmbedded)&&i.when("",s.url+l.url),a[r.taskInternalName]=r,c=n.inLinearFlow||u.isEmbedded?e:h?n.wizardTasks[h-1]:null,c&&(c.NextTask=r,r.PreviousTask=c),(n.inLinearFlow||u.isEmbedded)&&(e=r))},r.tasks)}))}]).run(["$rootScope","$uiViewScroll","$window","$state","SHOW","WIZARD","WizardNavService","RegistrantFactory","RegistrantLoginService","RegistrantGroupLoginService","BoostService","EdgeService","EngageService","WebStorageFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function y(n,t){var p,r,i,u,y;(l.process().then(function(t){if(t&&s.isLoggedIn())if(t.flowCode&&t.regId)e.switchFlow(t.flowCode,t.regId);else if(f&&f.flow&&!exlBaseFunctions.isNullOrWhiteSpace(f.flow.flowCode)){if((!n||!n.regId)&&t.registrant&&t.registrant.registrantId){o.setCurrentRegistrant(t.registrant);var i={regId:t.registrant.registrantId};e.goToTask(e.currentTask(),i,!0)}}else t.regGrpId&&e.switchFlow(t.flowCode,null,!1,t.taskName)}),c.process().then(null,function(){c.clearBoostParams()}),t)||(s.isLoggedIn()||h.isLoggedIn()||(p=a.getLocation(),r=s.autoLogin(p),r?r.success(function(t){var i,r,u;if(t.success){if(i=t.data,!i)return;s.isLoggedIn()?(s.clearAutoLoginParams(),i.flowCode&&i.regId?e.switchFlow(i.flowCode,i.regId,!1,i.taskName):f&&f.flow&&!exlBaseFunctions.isNullOrWhiteSpace(f.flow.flowCode)&&(r=i.taskName,r||(r=e.currentTask().taskInternalName),(!n||!n.regId)&&i.registrant&&i.registrant.registrantId?(o.setCurrentRegistrant(i.registrant),u={regId:i.registrant.registrantId},e.goToTaskByName(r,u,!0)):i.regGrpId&&e.switchFlow(i.flowCode,null,!1,i.taskName))):angular.isDefined(i.issueToken)&&!i.issueToken&&(s.clearAutoLoginParams(),i.flowCode&&e.switchFlow(i.flowCode,null,!1,i.taskName))}}):(i=v.getSession(ExlConstants.session.geShowItem),i&&i.promote&&(i.promote=null,v.setSession(ExlConstants.session.geShowItem,i),u=e.getFirstRegTask(),u&&e.goToTaskByName(u.taskInternalName)))),s.isLoggedIn()||h.isLoggedIn()||(y=s.crossShowLogin(),y&&y.success(function(t){var i=t.data,r;i&&s.isLoggedIn()&&f&&f.flow&&!exlBaseFunctions.isNullOrWhiteSpace(f.flow.flowCode)&&(!n||!n.regId)&&i.registrant&&i.registrant.registrantId&&(o.setCurrentRegistrant(i.registrant),r={regId:i.registrant.registrantId},e.goToTaskByName(i.taskName,r,!0))})))}s.processQueryString();l.processQueryString();c.processQueryString();a.processQueryString();s.checkForExternalLogin();f&&f.flow||y(null,!0);n.$on("$stateChangeSuccess",function(n,f,e){if(t(angular.element("html:first, body:first")),i._ga){var o=i.location.pathname,s="/"+u.showPrefix+u.showCode;exlBaseFunctions.stringStartsWith(o,s,!0)||(o=s+o);r&&r.$current&&r.$current.url&&r.$current.url.source&&(o+=r.$current.url.source);o=o.toLowerCase();i._ga("send","pageview",{page:o});i._gaClient&&i._ga("client.send","pageview",{page:o})}f.data&&f.data.task&&y(e)})}])})(),function(){"use strict";angular.module("CABModule",["CommonModule","HousingModule"])}(),function(){"use strict";angular.module("ConfirmationModule",[])}(),function(){"use strict";angular.module("DashboardModule",["LoginModule","HousingModule"])}(),function(){"use strict";angular.module("DemographicModule",[])}(),function(){"use strict";var n=angular.element("html");angular.module("DiagnosticsModule",["CommonModule","ui.router","mm.foundation"]).constant("DIAGNOSTICS",{data:n.data("exlDiagnostics")}).config(["$stateProvider","$urlRouterProvider",function(n,t){t.otherwise("/");n.state("diagnostics",{url:"/",controller:"DiagnosticsController",controllerAs:"diaCtrl",templateUrl:"App/Diagnostics/Views/Diagnostics.html"})}])}(),function(){"use strict";angular.module("ExhibitorModule",[])}(),function(){"use strict";angular.module("FriendInviteModule",["CommonModule"])}(),function(){"use strict";angular.module("GuestModule",[])}(),function(){"use strict";var n=angular.element("html");angular.module("HousingModule",["CommonModule","LoginModule","uiGmapgoogle-maps"]).constant("HOUSING",{widgetRoomSearchRedirect:n.data("exlWidgetRoomSearchRedirect"),isMapEnabled:n.data("exlIsMapEnabled"),displaySoldOut:n.data("exlHousingDisplaySoldOut"),roomSearchCriteria:{includeSoldOut:!1,arrivalDate:null,departureDate:null,numberOfRooms:1,numberOfGuests:1,hotelName:"",numberOfRoomsList:[]},roomSearchCriteriaCAB:{includeSoldOut:!1,arrivalDate:null,departureDate:null,numberOfRooms:1,numberOfGuests:1,isCreateBlockAllowed:!0,hotelName:"",numberOfRoomsList:[]}}).config(["uiGmapGoogleMapApiProvider",function(t){t.configure({key:n.data("exlGoogleMapApiKey"),v:"3",libraries:""})}]).run(["$rootScope","$q","$state","WIZARD","WizardNavService","RegistrantLoginService","RegistrantGroupLoginService","ModalFactory","HOUSING","ReservationService","WebStorageFactory","RoomSearchService",function(n,t,i,r,u,f,e,o,s,h,c,l){function b(n,t){var i,r;w();(n,t)&&(i=[],angular.forEach(t,function(n){i.push(n.taskInternalName)}),r={regId:n,allowedTaskNames:i},c.setSession(v,r))}function k(){var n=c.getSession(v);return n||(n={regId:null,allowedTaskNames:null}),n}function w(){c.setSession(v,null)}var a=r.flow,y,p,v;a&&angular.isDefined(a.config.defaultArrivalDate)&&angular.isDefined(a.config.defaultDepartureDate)&&(y=moment.utc(a.config.defaultArrivalDate),p=moment.utc(a.config.defaultDepartureDate),angular.forEach(["roomSearchCriteria","roomSearchCriteriaCAB"],function(n){angular.extend(s[n],{arrivalDate:y.isValid()?y.toDate():null,departureDate:p.isValid()?p.toDate():null})}));v="AddRoomRegistrant";s.setAddRoomRegistrant=b;s.getAddRoomRegistrant=k;s.clearAddRoomRegistrant=w;n.$on(ExlConstants.events.logoutStart,function(n,t){var i=!1;r.flow&&r.flow.housingType!==ExlConstants.flowHousingTypes.none&&(i=r.flow.isGroup?e.isLoggedIn():f.isLoggedIn());!n.defaultPrevented&&i&&(n.preventDefault(),h.delete().finally(function(){t()}))});n.$on("$stateChangeStart",function(n,t,r,f,e){var s;f.data&&f.data.taskName===ExlConstants.wizardTaskInternalName.RoomOccupant&&(t&&t.data&&t.data.task===f.data.task.PreviousTask?t.data.confirmedReservationDelete?delete t.data.confirmedReservationDelete:(n.preventDefault(),s=e.id.split(","),h.read(s).success(function(n){n.success&&n.data.reservations.length?o.showModal({bodyTemplate:"Going back will cancel "+(s.length===1?"this room reservation.":"these room reservations.")+" Are you sure you want to go back?",footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No, do not go back<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes<\/button>',controller:"ModalController",inputs:{title:"Cancel Room"+(s.length>1?"s":"")}}).then(function(n){n.status&&(angular.forEach(s,function(n){h.delete(n)}),t.data.confirmedReservationDelete=!0,i.go(t.name,r,{location:"replace"}))}):(t.data.confirmedReservationDelete=!0,i.go(t.name,r))})):t&&t.data&&t.data.task.taskInternalName===ExlConstants.wizardTaskInternalName.Dashboard&&u.nextTask()===t.data.task&&!i.$current.locals["@registration"].$scope.taskCtrl.isPromoting&&(t.data.confirmedReservationDelete?delete t.data.confirmedReservationDelete:t.data.skipToDashboard?delete t.data.skipToDashboard:(n.preventDefault(),s=e.id.split(","),h.read(s).success(function(n){n.success&&(n.data.bookingHasRegistrantWithEmailAndPassword?(t.data.skipToDashboard=!0,i.go(t.name,r)):o.showModal({bodyTemplate:"Going to the dashboard will cancel "+(s.length===1?"this room reservation.":"these room reservations.")+" Are you sure you want to go to the dashboard?",footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No, do not go back<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes<\/button>',controller:"ModalController",inputs:{title:"Cancel Room"+(s.length>1?"s":"")}}).then(function(n){n.status&&(angular.forEach(s,function(n){h.delete(n)}),t.data.confirmedReservationDelete=!0,i.go(t.name,r,{location:"replace"}))}))}))))});n.$on("$stateChangeSuccess",function(n,t,i,u){f.isLoggedIn()&&t!=u&&(r.flow&&r.flow.housingType!==ExlConstants.flowHousingTypes.none&&t.data&&t.data.taskName===ExlConstants.wizardTaskInternalName.Dashboard||u.data&&u.data.taskName===ExlConstants.wizardTaskInternalName.RoomOccupant&&t&&t.data.task!==u.data.task.PreviousTask)&&h.delete();var e=s.getAddRoomRegistrant();e.allowedTaskNames&&e.allowedTaskNames.indexOf(t.data.taskName)<0&&s.clearAddRoomRegistrant()});n.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){t&&l.hasSearched(!1)})}])}(),function(){"use strict";angular.module("InterfaceGuideModule",["ui.router","CommonModule"]).config(["$stateProvider","$urlRouterProvider","$httpProvider",function(n,t){t.otherwise("/");n.state("quickStart",{url:"/",templateUrl:"App/InterfaceGuide/Views/QuickStart.html"}).state("colors",{url:"/colors",templateUrl:"App/InterfaceGuide/Views/Colors.html"}).state("typography",{url:"/typography",templateUrl:"App/InterfaceGuide/Views/Typography.html"}).state("animations",{url:"/animations",templateUrl:"App/InterfaceGuide/Views/Animations.html",controller:"qtestController",controllerAs:"vm"}).state("utility",{url:"/utility",templateUrl:"App/InterfaceGuide/Views/Utility.html"}).state("buttons",{url:"/buttons",templateUrl:"App/InterfaceGuide/Views/buttons.html"}).state("tables",{url:"/tables",templateUrl:"App/InterfaceGuide/Views/Tables.html"}).state("resources",{url:"/resources",templateUrl:"App/InterfaceGuide/Views/Resources.html"}).state("faqs",{url:"/faqs",templateUrl:"App/InterfaceGuide/Views/FAQs.html"}).state("resizegraphics",{url:"/resizegraphics",templateUrl:"App/InterfaceGuide/Views/ResizeGraphics.html"}).state("accordions",{url:"/accordions",templateUrl:"App/InterfaceGuide/Views/Accordions.html"})}])}(),function(){"use strict";angular.module("LoginModule",["CommonModule"]).run(["$rootScope","WIZARD","LoginService","RegistrantLoginService","RegistrantGroupLoginService",function(n,t,i,r,u){var e=t&&t.flow&&t.flow.flowCode,f;i.getToken()&&i.getFlowCode()!=e&&(r.logout(),u.logout());f=n.$on("$stateChangeSuccess",function(n){n.defaultPrevented||(i.setTokenTimeoutWarning(),angular.isFunction(f)&&f())})}])}(),function(){"use strict";angular.module("MarketingCodeModule",["ngAnimate","ngMessages","CommonModule","ui.router","mm.foundation"]).config(["$httpProvider",function(n){n.interceptors.push("AuthenticationFactory")}])}(),function(){"use strict";angular.module("MarketingCodeRoutingModule",["MarketingCodeModule","ui.router",]).config(["$stateProvider","$urlRouterProvider","$httpProvider",function(n,t){t.otherwise("/");n.state("root",{abstract:!0,template:"<div ui-view/>"}).state("root.login",{url:"/",controller:"MarketingCodeLoginController",controllerAs:"mclCtrl",templateUrl:"App/MarketingCode/Views/MarketingCodeLogin.html"}).state("root.all",{url:"/All",controller:"MarketingCodeAllController",controllerAs:"mcCtrl",templateUrl:"App/MarketingCode/Views/MarketingCodeAll.html",resolve:{marketingCodes:["MarketingCodeFactory",function(n){return n.getAllCodes()}]}}).state("marketingCode",{abstract:!0,template:"<div ui-view/>"}).state("marketingCode.add",{controller:"MarketingCodeController",controllerAs:"mcCtrl",templateUrl:"App/MarketingCode/Views/MarketingCode.html",resolve:{marketingCode:["$q",function(n){return n.when()}]}}).state("marketingCode.edit",{url:"/{code}",controller:"MarketingCodeController",controllerAs:"mcCtrl",templateUrl:"App/MarketingCode/Views/MarketingCode.html",resolve:{marketingCode:["$stateParams","$q","MarketingCodeFactory",function(n,t,i){return angular.isDefined(n.code)&&n.code!==""?i.getCode(n.code):t.when()}]}}).state("marketingCode.edit.discount-edit",{url:"/discount/{discountID:int}",controller:"EditDiscountController",controllerAs:"EditDiscountCtrl",templateUrl:"App/MarketingCode/Views/EditDiscount.html",resolve:{discount:["$stateParams","$q","DiscountFactory",function(n,t,i){return angular.isDefined(n.discountID)&&angular.isNumber(n.discountID)&&n.discountID>0?i.getDiscount(n.discountID):t.when()}]}}).state("marketingCode.edit.discount-new",{url:"/discount/new/{type}",controller:"EditDiscountController",controllerAs:"EditDiscountCtrl",templateUrl:"App/MarketingCode/Views/EditDiscount.html",resolve:{discount:["$q",function(n){return n.when()}]}}).state("marketingCode.edit.discount-edit.qualifiers",{url:"/qualifiers",controller:"EditQualifiersController",controllerAs:"EditQualsCtrl",templateUrl:"App/MarketingCode/Views/EditQualifiers.html",resolve:{qualifierType:function(){return"DISCOUNT"},marketingCode:["$stateParams","MarketingCodeFactory",function(n,t){return t.getCode(n.code)}]}}).state("marketingCode.edit.discount-edit.regtype-qualifiers",{url:"/regtype-qualifiers",controller:"EditQualifiersController",controllerAs:"EditQualsCtrl",templateUrl:"App/MarketingCode/Views/EditQualifiers.html",resolve:{qualifierType:function(){return"REGTYPE"},marketingCode:["$stateParams","MarketingCodeFactory",function(n,t){return t.getCode(n.code)}]}}).state("marketingCode.edit.discount-edit.targets",{url:"/targets",controller:"EditDiscountTargetsController",controllerAs:"EditTargetsCtrl",templateUrl:"App/MarketingCode/Views/EditDiscountTargets.html",resolve:{discount:["$stateParams","DiscountFactory",function(n,t){return t.getDiscount(n.discountID)}]}}).state("marketingCode.edit.qualifiers",{url:"/qualifiers",controller:"EditQualifiersController",controllerAs:"EditQualsCtrl",templateUrl:"App/MarketingCode/Views/EditQualifiers.html",resolve:{qualifierType:function(){return"MARKETINGCODE"},marketingCode:["$stateParams","MarketingCodeFactory",function(n,t){return t.getCode(n.code)}]}})}]).run(["$rootScope","MarketingCodeLoginService","$location",function(n,t,i){n.$on("$routeChangeStart",function(n){t.isLoggedIn()||(n.preventDefault(),i.path("/"))})}])}(),function(){"use strict";angular.module("MemberModule",[])}(),function(){"use strict";angular.module("PaymentModule",[])}(),function(){"use strict";angular.module("PersonnelModule",["CommonModule",])}(),function(){"use strict";angular.module("ProfileModule",[])}(),function(){"use strict";angular.module("RABModule",["CommonModule","HousingModule"])}(),function(){"use strict";angular.module("RegTypeModule",[]).run(["$rootScope","WIZARD","RegistrantFactory","WizardNavService","WizardTaskStateService","RegTypeService",function(n,t,i,r,u,f){t&&t.flow&&n.$on("$stateChangeStart",function(n,t,e,o){var c,l;if(!n.defaultPrevented){var h=e.regId,v=t.data,a=v.config,s=v.task,y=s.setupWizardTypeCode;a.defaultRegType&&a.skipRegTypePage&&y===ExlConstants.setupWizardTypeCode.RegType&&(n.preventDefault(),c=o.data.task===s.NextTask?s.PreviousTask:s.NextTask,l={regId:h},i.getCurrentRegistrant(e).then(function(n){n.regTypeCode?u.addData(h,s.taskInternalName).then(function(){r.goToTask(c,l)}):f.setRegType(h,a.defaultRegType).then(function(n){var e=n.data,t;e.success&&(i.setCurrentRegistrant(e.data),t=f.addGEShowItem(),t&&angular.isFunction(t.then)?t.then(function(){u.addData(h,s.taskInternalName).then(function(){r.goToTask(c,l)})}):u.addData(h,s.taskInternalName).then(function(){r.goToTask(c,l)}))})}))}})}])}(),function(){"use strict";angular.module("SelfRegModule",[]).constant("SELFREGSETTINGS",angular.element("html").data("exlSelfRegSettings")).constant("ISSELFREG",angular.isDefined(angular.element("html").data("exlSelfRegSettings"))?angular.element("html").data("exlSelfRegSettings").isSelfReg:!1).constant("LOGOUTURLSELFREG",angular.element("html").data("exlLogoutUrlSelfReg"))}(),function(){"use strict";angular.module("ShowItemModule",[])}(),function(){"use strict";angular.module("StaticTextModule",["CommonModule","ui.tinymce"])}(),function(){"use strict";angular.module("SummaryModule",[])}(),function(){"use strict";angular.module("TrafficBoostModule",[])}(),function(){"use strict";var n=angular.element("html");angular.module("WidgetModule",["timer"]).constant("CUST_CHAT_ENABLED",n.data("exlCustChatEnabled")).constant("WIDGETS",n.data("exlWidgets"))}(),function(){"use strict";function n(n){n.interceptors.push(t)}function t(n,t){return{response:function(i){if(i&&i.data&&i.data.data&&i.data.data.bookingLockUrl){var r=n.get("RegistrantLoginService"),u=n.get("RegistrantGroupLoginService");r&&u&&(r.isLoggedIn()||u.isLoggedIn())&&(r.logout(!0),u.logout(!0),t.setWindowLocation(i.data.data.bookingLockUrl))}return i}}}angular.module("CommonModule").config(n);n.$inject=["$httpProvider"];t.$inject=["$injector","UrlService"]}(),function(){"use strict";function n(n){n.interceptors.push(t)}function t(n,t){return{request:function(i){i.headers=i.headers||{};var r=t.getSession(ExlConstants.integration.Boost);return r&&r.auth&&(i.headers.BoostCampaignInfo=r.auth),i||n.when(i)}}}angular.module("CommonModule").config(n);n.$inject=["$httpProvider"];t.$inject=["$q","WebStorageFactory"]}(),function(){"use strict";function n(n){n.interceptors.push(t)}function t(n,t){return{request:function(i){i.headers=i.headers||{};var r=t.getSession(ExlConstants.integration.Edge);return r&&r.auth&&(i.headers.EdgeCampaignInfo=r.auth),i||n.when(i)}}}angular.module("CommonModule").config(n);n.$inject=["$httpProvider"];t.$inject=["$q","WebStorageFactory"]}(),function(){"use strict";function n(n){this.message=n;this.name="HttpResponseError"}function t(n){n.decorator("$exceptionHandler",i)}function i(n,t,i,r,u){return function(f,e){u.isWindowLocationChanging()||(n(f,e),t.get("$rootScope").$broadcast("exception",r),exlExceptionHandling.queueExceptionInfo(e,f),exlExceptionHandling.presentException(i,(f.stack?"<pre>"+f.stack+"<\/pre>":null)||f.message||f||r))}}function r(n){n.interceptors.push(u)}function u(t,i,r,u,f,e,o,s,h){return{request:function(n){return n.msBeforeAjaxCall=(new Date).getTime(),n},response:function(n){var i=n.config.warningAfter,u,t;return i>=0&&(u=(new Date).getTime(),t=u-n.config.msBeforeAjaxCall,t>=i&&(r.$broadcast("warning",s),JL!==null&&JL().warn({timeTakenInMs:t,config:n.config,data:n.data}),toastr.warning(s,"Http Warning"))),n},responseError:function(u){if(u.data&&u.data.error_description&&u.data.error_description=="OAuthError")return i.reject(u);switch(u.status){case 400:if(u.data.error==="invalid_grant")return i.reject(u);break;case 401:return i.reject(u)}if(h.isWindowLocationChanging())return i.reject(u);var s=u.headers&&u.headers("logged-status")||"",f=u.data&&u.data.message||e;if(u.status===0&&(f=o),r.$broadcast("exception",f),r.$broadcast("exceptionLoggedStatus",s),s!="SERVER_LOGGED")try{throw new n(f);}catch(c){t(c,u)}return i.reject(u)}}}n.prototype=new Error;angular.module("CommonModule").constant("SCRIPT_EXCEPTION_MSG","An error has occured and the details have been logged.").config(t);t.$inject=["$provide"];i.$inject=["$delegate","$injector","$window","SCRIPT_EXCEPTION_MSG","UrlService"];angular.module("CommonModule").constant("HTTP_DEFAULT_EXCEPTION_MSG","An HTTP error has occured.").constant("HTTP_NETWORK_EXCEPTION_MSG","Unable to communicate with the server. Make sure you are connected to the internet and try again.").constant("HTTP_NETWORK_LONG_REQ_WARN","Warning!  HTTP request is taking longer than threshold.").config(r);r.$inject=["$httpProvider"];u.$inject=["$exceptionHandler","$q","$rootScope","$injector","$window","HTTP_DEFAULT_EXCEPTION_MSG","HTTP_NETWORK_EXCEPTION_MSG","HTTP_NETWORK_LONG_REQ_WARN","UrlService"]}(),function(){"use strict";function n(n){n.interceptors.push(t)}function t(n){return{response:function(t){return t.config.method==="GET"&&(t.status===200||t.status===304)&&n.requestTranslate(),t}}}angular.module("CommonModule").config(n);n.$inject=["$httpProvider"];t.$inject=["TranslateService"]}(),function(){"use strict";function n(n){function i(){var t=this;n.getShowInfo().then(function(n){t.showInfo=n},function(){})}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={link:r,restrict:"E",scope:{},templateUrl:"App/Housing/Views/OfficialProvider.html",bindToController:!0,controller:i,controllerAs:"officialProviderCtrl"};return t}angular.module("HousingModule").directive("exlOfficialProvider",n);n.$inject=["ShowInfoFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function p(){return c}function w(n){c=n}function b(i){var r=t.defer(),u=h+"/SourceSubBlockForDestination",f={destinationSubBlock:i};return n.put(u,f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function v(){var i=t.defer(),r;return l?i.resolve(l):(r=h+"/CreateBlockConfigPolicy",n.get(r).success(function(n){n.success?(l=n.data,i.resolve(l)):i.reject(n.messages)})),i.promise}function k(i,r,u,f){var e=t.defer(),o=h+"/DistributedRoomNightQuantities",s={roomNightStartDate:i,roomNightEndDate:r,currentRoomNightList:u,peakRoomQuantity:f};return n.put(o,s).success(function(n){n.success?e.resolve(n.data):e.reject(n.messages)}),e.promise}function d(n,i){var u=t.defer(),r=null;return v().then(function(t){t!=null&&angular.forEach(n,function(n){var u,f,e;r=t.maxRoomsRequested>0?t.maxRoomsRequested:null;r!=null&&i!=null&&(u=0,f=exlBaseFunctions.findFirstDateByKey(i,"key",n.dayDate),f!=null&&(u=f.value,e=r-u,r=e>0?e:0));n.max=r})}).finally(function(){u.resolve()}),u.promise}function g(i){var r=t.defer(),u;return c==null?r.reject("No source sub block has been set to move inventory from."):(u=h+"/ValidateInventoryUpdate",n.post(u,{sourceSubBlock:c,roomNights:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})),r.promise}function nt(i){var r=t.defer(),u=h+"/ValidateMinRoomNights";return n.post(u,{roomNights:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function tt(){var i=t.defer(),r;return c==null?i.reject("No source sub block has been set to create new sub block from."):(r=h+"/CreateSubBlock",n.post(r,{sourceSubBlock:c}).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)})),i.promise}function it(i){var r=t.defer(),u;return c==null?r.reject("No source sub block has been set to move inventory from."):(u=h+"/MoveInventory",n.post(u,{sourceSubBlock:c,roomNights:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})),r.promise}function rt(){var n=t.defer();return s.setSession(ExlConstants.session.paymentApplied,!0),u.redirectToSecuremit().then(null,function(t){s.setSession(ExlConstants.session.paymentApplied,!1);n.reject(t)}),n.promise}function ut(){return s.getSession(ExlConstants.session.paymentApplied)}function ft(){s.setSession(ExlConstants.session.paymentApplied,null)}function et(){var i=t.defer(),r=h+"/SendCreateBlockConfirmation";return n.post(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function ot(){a=[]}function st(n){a=a.concat(n)}function ht(){return a}function ct(){var r=t.defer(),n=[];return n.push(f.getRegGroupSummary()),n.push(e.getBookingSummary()),n.push(v()),t.all(n).then(function(n){var t=i.isSectionEnabled(ExlConstants.wizardSectionName.CAB)&&exlBaseFunctions.stringEqualsIgnoreCase(n[0].blockRequestSettings.blockManagementType,ExlConstants.blockManagementTypes.cab),u=n[1].contact?n[1].contact.isVerified:!1,f=n[2]!=null?n[2].addBlockEnabled:!1;t&&u&&f||o.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard);r.resolve()}),r.promise}var y={getSourceSubBlock:p,setSourceSubBlock:w,getSourceSubBlockForDestination:b,getCreateBlockConfigPolicy:v,getDistributedRoomNightQuantites:k,setMaxRooms:d,validateInventoryUpdate:g,validateMinRoomNights:nt,createSubBlock:tt,moveInventory:it,applyPayment:rt,getPaymentApplied:ut,clearPaymentApplied:ft,sendCreateBlockConfirmation:et,resetNonFatalErrors:ot,addNonFatalErrors:st,getNonFatalErrors:ht,navigateIfDisabled:ct},h="api/cab",l,c=null,a=[];return y}angular.module("CABModule").factory("CABFactory",n);n.$inject=["$http","$q","WIZARD","RegistrantLoginService","PaymentService","RegistrantGroupFactory","BookingFactory","WizardNavService","WebStorageFactory"]}(),function(){"use strict";function n(n,t,i,r){function u(r){if(!i.isUrlForeignOrStatic.test(r.url)){r.headers=r.headers||{};var u=t.get("LoginService").getToken();u&&(r.headers.Authorization="Bearer "+u)}return r||n.when(r)}function f(i){var r,u,f;return i.status/100==2&&(r=i.data,r&&r.success&&(u=r.auth,u&&(f=t.get(/^api\/MarketingCode\b/i.test(i.config.url)?"MarketingCodeLoginService":u.regGrpId?"RegistrantGroupLoginService":"RegistrantLoginService"),f.isLoggedIn()&&!u.regGrpId||t.get("LoginService").setAuthResponse(u)||(r.success=!1)))),i||n.when(i)}function e(i){var f=t.get("LoginService"),u;return i.status===401&&f.getToken()?(u=n.defer(),f.refresh().error(function(){t.get(/^api\/MarketingCode\b/i.test(i.config.url)?"MarketingCodeLoginService":r.getSession(ExlConstants.auth.regGrpId)?"RegistrantGroupLoginService":"RegistrantLoginService").logout()}).then(function(n){n.status/100==2?t.get("$http")(i.config).then(function(n){n.status/100==2?u.resolve(n):u.reject(n)},function(n){u.reject(n)}):u.reject(n)},function(n){u.reject(n)}),u.promise):n.reject(i)}return{request:u,response:f,responseError:e}}angular.module("CommonModule").factory("AuthenticationFactory",n);n.$inject=["$q","$injector","REGEX","WebStorageFactory"]}(),function(){"use strict";function n(n,t,i){function c(){var i=t.defer();return f&&f.bookingId&&f.bookingId>0&&f.bookingId==e?i.resolve(f):n.get(u+"/Contact").success(function(n){n.success?(i.resolve(n.data),f=n.data):i.reject(n.messages)}),i.promise}function l(t){var i=[u,"Contact"],r;return t&&i.push(t),r=i.join("/"),n.post(r)}function a(){var i=t.defer();return e&&e>0?i.resolve(e):n.get(u+"/GetCurrentBookingId").success(function(n){n.success?(i.resolve(n.data),e=n.data):i.reject(n.messages)}),i.promise}function v(i){var r=t.defer();return n.get(u+"/BookingSummary",{params:{recalculateData:i}}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function y(){e=null;o=null;r&&r.reject(null);r=null}function p(){o=null;r&&r.reject(null);r=null;i.$broadcast(ExlConstants.events.bookingBalanceUpdate,!0)}function w(){var i=t.defer();return n.get(u+"/HasSaveOnlyCCG").success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function b(){var i=t.defer();return n.get(u+"/GetWidgetRegSummaryList").success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function k(){return r?r.promise:(r=t.defer(),o?r.resolve(o):n.get(u+"/GetBookingFinancials").success(function(n){n.success?(o=n.data,r&&r.resolve(o)):r&&r.reject(n.messages)}).finally(function(){r=null}),r.promise)}function d(){return s}function g(n){s=n}function nt(){return n.get(u+"/HasMultipleRegistrants")}function tt(){return n.get(u+"/IsUnderReservationLimit")}var h={getCurrentBookingId:a,clearCurrentBooking:y,refreshBookingFinancials:p,getContact:c,setContact:l,getBookingSummary:v,getHasSaveOnlyCCG:w,getWidgetRegSummaryList:b,getBookingFinancials:k,getCreateNewBooking:d,setCreateNewBooking:g,getHasMultipleRegistrants:nt,getIsUnderReservationLimit:tt},u="api/Booking",f,e,r,o,s;return h}angular.module("CommonModule").factory("BookingFactory",n);n.$inject=["$http","$q","$rootScope"]}(),function(){"use strict";function n(n,t){function u(){var r=t.defer();return n.get(i+"country",{cache:!0}).success(function(n){r.resolve(n)}),r.promise}function f(){var r=t.defer();return n.get(i+"state",{cache:!0}).success(function(n){r.resolve(n)}),r.promise}function e(r){var u=t.defer();return n.get(i+"locale/"+r,{cache:!0}).success(function(n){n.success?u.resolve(n.data):u.reject(n.data)}),u.promise}var r={getCountry:u,getState:f,getLocale:e},i="api/countrystate/";return r}angular.module("CommonModule").factory("CountryStateFactory",n);n.$inject=["$http","$q"]}(),function(){"use strict";function n(n){function t(t,i){i=(i||"").toUpperCase();var r={description:t,displayTypeCode:"TEXTBOX",fieldName:t,fieldTypeCode:"FREE",html5TypeCode:"text",isRequired:!0,isDisabled:!1,maxLength:50,pattern:"",labelIdCode:i+"_FIELDLABEL_"+t.toUpperCase(),closingIdCode:i+"_CLOSINGLABEL_"+t.toUpperCase()};switch(t){case"email":return r.description="Email",r.html5TypeCode="email",r.pattern=n.emailString,r;case"firstName":return r.description="First Name",r;case"lastName":return r.description="Last Name",r;default:return r.description=r.description[0].toUpperCase()+r.description.slice(1),r}}function i(n,t){var i=n;return{colSize:12,columnNumber:1,description:i,displayColumnCount:2,displayTypeCode:"OPEN",fieldName:n,fieldPicks:t,fieldTypeCode:"SINGLE",isDisabled:!1,isPick:!0,isRequired:!0,labelIdCode:"FIELDDETAIL_LABEL_"+n.toUpperCase()}}return{createFieldDetailTextBox:t,createFieldDetailSelectList:i}}angular.module("CommonModule").factory("FieldDetailFactory",n);n.$inject=["REGEX"]}(),function(){"use strict";function n(n,t,i,r,u,f){function c(n){var c=r.defer(),l={},a={modal:h,body:n.bodyTemplateUrl,footer:n.footerTemplateUrl};return angular.forEach(a,function(n,r){n&&(this[r]=i(t.getTrustedResourceUrl(n)))},l),r.all(l).then(function(t){var h=new RegExp("\\b"+o+"\\b","g"),l={},r,i;angular.forEach(["body","footer"],function(i){var r=t[i]||n[i+"Template"];angular.isDefined(r)&&(this[i]=n.controllerAs&&n.controllerAs!==o?r.replace(h,n.controllerAs):r)},l);r=t.modal;i=u.open({template:n.controllerAs&&n.controllerAs!==o?r.replace(h,n.controllerAs):r,controller:n.controller||"ModalController",controllerAs:n.controllerAs||o,resolve:{templates:function(){return l},inputs:function(){return n.inputs}},windowClass:n.modalcss,keyboard:angular.isDefined(n.keyboard)?n.keyboard:!0,backdrop:"static",scope:n.scope});e.push(i);i.opened.then(function(){n.inputs&&n.inputs.setFocusCtlName&&f.setFocusByName(n.inputs.setFocusCtlName);angular.isFunction(n.onOpen)&&n.onOpen()});i.result.then(function(n){s(i);c.resolve(n)},function(n){s(i);c.reject(n)})}),c.promise}function s(n){for(var i=-1,t=0;t<e.length;t++)if(e[t]===n){i=t;break}i>=0&&e.splice(i,1)}var h="App/Common/Views/ModalTemplate.html",o="modalCtrl",e=[];return n.$on("$stateChangeStart",function(n){var i,t;if(!n.defaultPrevented&&e.length)for(i=e.slice(0),t=i.length-1;t>=0;t--)i[t].dismiss()}),n.$on(ExlConstants.events.roomOccupantChanged,function(n,t){var r,i;if(t!=null&&t.method=="roomCancel"&&e.length)for(r=e.slice(0),i=r.length-1;i>=0;i--)r[i].dismiss()}),{showModal:c}}angular.module("CommonModule").factory("ModalFactory",n);n.$inject=["$rootScope","$sce","$templateRequest","$q","$modal","DocumentService"]}(),function(){"use strict";function n(n,t,i){function s(n){return++r==1&&i.$broadcast(ExlConstants.events.httpRequestsPending),n||t.when(n)}function h(n){return--r==0&&i.$broadcast(ExlConstants.events.httpRequestsComplete),n.data&&angular.isDefined(n.data.success)&&angular.isArray(n.data.messages)&&n.data.messages.length&&f(n.data.messages),n||t.when(n)}function c(n){return--r==0&&i.$broadcast(ExlConstants.events.httpRequestsComplete),t.reject(n)}function u(t){n.pop("error","",t,null,"trustedHtml")}function l(t){n.pop("info","",t,null,"trustedHtml")}function a(t){n.pop("success","",t,3e3,"trustedHtml")}function v(t){n.pop("warning","",t,null,"trustedHtml")}function f(n){if(angular.isString(n))u(n);else if(angular.isArray(n))for(var t=0;t<n.length;t++)e(n[t]);else angular.isObject(n)&&e(n)}function e(t){t.severity&&t.text?n.pop(t.severity.toLowerCase(),"",t.text,null,"trustedHtml"):t.text&&u(t.text)}function y(t){n.pop(t)}var o={request:s,response:h,responseError:c,displayMessages:f,displayInfo:l,displayError:u,displaySuccess:a,displayWarning:v,displayToast:y},r=0;return i.$on("$stateChangeSuccess",function(t){t.defaultPrevented||n.clear()}),o}angular.module("CommonModule").factory("NotificationFactory",n);n.$inject=["toaster","$q","$rootScope"]}(),function(){"use strict";function n(n,t,i){function h(r){var f=t.defer(),o;return r=r||i.params.regId,o=r?u+"/"+r:u,n.get(o).success(function(n){n.success?(e=n.data,f.resolve(e)):f.reject(n.messages)}),f.promise}function c(r){var o=t.defer(),e;return r=r!=null?r:i.params.regId,f&&(f.registrantId==r||r==="")?o.resolve(f):(e=u+"/Contact/",e=r?e+"/"+r:e,n.get(e).success(function(n){n.success?(f=n.data,o.resolve(f)):o.reject(n.messages)})),o.promise}function o(i,r,f){var e=t.defer(),o;return i?(f=f||u,o="POST",angular.isDefined(i.registrantId)&&i.registrantId!==0?(f=f+"/"+i.registrantId,o="PUT"):r&&(f=f+"/Login/"),i.isDupe=!1,n({method:o,url:f,data:i}).success(function(n){n.success?e.resolve(n.data):e.reject(n.messages);i.isDupe=exlBaseFunctions.findFirstByKey(n.messages,"messageTypeCode",ExlConstants.executionMessageTypeCode.duplicateRegistrant)!=null})):e.reject([{text:"Profile does not exist"}]),e.promise}function l(n,t){return o(n,t,u+"simple")}function a(i){var r=t.defer(),f,e;return i?(f=u+"/Contact/",e="POST",i.registrantId!==0&&(f=f+"/"+i.registrantId,e="PUT"),i.isDupe=!1,n({method:e,url:f,data:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages);i.isDupe=exlBaseFunctions.findFirstByKey(n.messages,"messageTypeCode",ExlConstants.executionMessageTypeCode.duplicateRegistrant)!=null})):r.reject([{text:"Profile does not exist"}]),r.promise}function v(i,f){if(i&&f){if(r)return r.promise;r=t.defer();var e=u+"/NoHotelReason/"+i;return n({method:"PUT",url:e,data:f}).success(function(n){n.success?n.data?r.resolve(n.data):r.reject([{text:"No Hotel Reason update failed."}]):r.reject(n.messages)}).finally(function(){r=null}),r.promise}return t.reject([{text:"Registrant ID and Profile required."}])}function y(n){return o(n,!1,"api/ProfileDemographic")}var s={getProfile:h,getContactProfile:c,postProfile:o,postContactProfile:a,putNoHotelReason:v,currentProfile:e,currentContactProfile:f,postSimpleProfile:l,postFollowUpDemographics:y},e,f,u="api/Profile",r;return s}angular.module("CommonModule").factory("ProfileFactory",n);n.$inject=["$http","$q","$state"]}(),function(){"use strict";function n(n,t,i,r){function e(e){var o=t.defer(),s=e||i.params,h;return u&&u.registrantId==s.regId?o.resolve(u):s.regId?(h=[f,s.regId],n.get(h.join("/")).success(function(n){n.success?(angular.equals(u,n.data)||(u=n.data,r.$broadcast(ExlConstants.events.currentRegistrantChanged,u)),o.resolve(u)):o.reject(n.messages)})):o.resolve(null),o.promise}function s(){if(i.params.regId)return u=null,e()}function h(n){var t=u!=n;u=n;t&&r.$broadcast(ExlConstants.events.currentRegistrantChanged,u)}function c(i){var r=t.defer(),e;return u&&u.registrantId==i?r.resolve(u):i?(e=[f,i],n.get(e.join("/")).success(function(n){n.success&&r.resolve(n.data)})):r.resolve(null),r.promise}function l(){var t=[f,"getAll"];return n.get(t.join("/"))}function a(){var t=[f,"Summary"];return n.get(t.join("/"))}function v(r){var e=r||i.params.regId,u,o;return e?(o=[f,"GroupIndividualRegistrants"],n.get(o.join("/"),{params:{regId:e}})):(u=t.defer(),u.reject(),u.promise)}function y(t){var i=[f,t];return n.delete(i.join("/"))}function p(t){var i=[f,"CalendarUrl",t];return n.get(i.join("/"))}var o={getCurrentRegistrant:e,setCurrentRegistrant:h,loadCurrentRegistrant:s,getAllRegistrants:l,getAllRegistrantsDetailed:a,getGroupIndividualRegistrants:v,"delete":y,getRegistrant:c,getCalendarUrl:p},u,f="api/Registrant";return o}angular.module("CommonModule").factory("RegistrantFactory",n);n.$inject=["$http","$q","$state","$rootScope"]}(),function(){"use strict";function n(n,t){function u(r){var u=t.defer();return n.post(i+"CreateNewGroup",{profile:r}).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}),u.promise}function f(){var r=t.defer();return n.get(i).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function e(){var r=t.defer();return n.get(i+"RegistrantGroupSummary").success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function o(){var r=t.defer();return n.get(i+"Bookings").success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function s(r,u){var f=t.defer();return n.post(i+"RoomNightCapacityPerDay",{startDate:r,endDate:u}).success(function(n){n.success?f.resolve(n.data):f.reject(n.messages)}),f.promise}function h(r,u){var f=t.defer();return n.post(i+"HotelItemInventory",{startDate:r,endDate:u}).success(function(n){n.success?f.resolve(n.data):f.reject(n.messages)}),f.promise}function c(){var r=t.defer();return n.get(i+"BlockRequestSettings").success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function l(){var r=t.defer();return n.get(i+"HasSaveOnlyCCG").success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function a(){var r=t.defer();return n.get(i+"AssignedHotels").success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function v(r){var u=t.defer();return n.post(i+"TeamSearch",{searchCriteria:r}).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}),u.promise}function y(r){var u=t.defer();return n.post(i+"SelectUsernameByTeam",{teamInfo:r}).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}),u.promise}var r={createNewGroup:u,getCurrent:f,getRegGroupSummary:e,getBookings:o,getHotelItemInventory:h,getRoomNightCapacityPerDay:s,getBlockRequestSettings:c,getHasSaveOnlyCCG:l,getAssignedHotels:a,teamSearch:v,selectUsernameByTeam:y},i="api/registrantgroup/";return r}angular.module("CommonModule").factory("RegistrantGroupFactory",n);n.$inject=["$http","$q"]}(),function(){"use strict";function n(n,t){function u(){var r=t.defer(),u=i+"EnableSingleSignon";return n.post(u).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function f(){var r=t.defer(),u=i+"GetSingleSignonURL";return n.get(u,{cache:!0}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}var r={getSingleSignonURL:f,enableSSOLink:u},i="api/rtsservice/";return r}angular.module("CommonModule").factory("RTSServiceFactory",n);n.$inject=["$http","$q"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function o(){!i||!i.schedules||i.schedules.length<=0||angular.forEach(i.schedules,function(i){var h=new Date(i.beginDate),w=new Date(i.endDate),o=new Date,c,v,y,l,a,p;o>h&&o<w?(f.logout(!0),e.logout(!0),c=r.baseHref()+"Home/ScheduledDownTime",exlBaseFunctions.stringEqualsIgnoreCase(c,n.location.pathname)||(v=n.location.protocol+"//"+n.location.host+c,u.setWindowLocation(v))):o<=h&&(y=9e5,l=h-o,l<=y&&(a=s(l),p=a<=1?"1 minute.":a+" minutes.",t.displayWarning("The site is scheduled for maintenance in "+p)))})}function s(n){var t=new Date(n);return t.getMinutes()}return{process:o}}angular.module("CommonModule").factory("ScheduledDownTimeFactory",n);n.$inject=["$window","NotificationFactory","SCHEDULEDDOWNTIME","DocumentService","UrlService","RegistrantLoginService","RegistrantGroupLoginService"]}(),function(){"use strict";function n(n,t){function i(n){if(!angular.isString(n)||!n.trim())throw'WebStorageFactory: "key" must be a non-empty string.';return f+n}function s(t){var r=i(t);return u.hasOwnProperty(r)?u[r]:angular.fromJson(n.localStorage[r])}function h(t,r){if(!angular.isDefined(r)){c(t);return}var f=i(t);u[f]=r;n.localStorage[f]=angular.toJson(r)}function c(t){var r=i(t);delete u[r];n.localStorage.removeItem(r)}function l(t){var u=i(t);return r.hasOwnProperty(u)?r[u]:angular.fromJson(n.sessionStorage[u])}function a(t,u){if(!angular.isDefined(u)){e(t);return}var f=i(t);r[f]=u;n.sessionStorage[f]=angular.toJson(u)}function e(t){var u=i(t);delete r[u];n.sessionStorage.removeItem(u)}function v(){for(var i=n.sessionStorage.length,t;i--;)t=n.sessionStorage.key(i),t.indexOf(f)===0&&(delete r[t],n.sessionStorage.removeItem(t))}var o={getLocal:s,setLocal:h,getSession:l,setSession:a,removeSessionItem:e,clearSession:v},f=t.showCode+t.appPath+"|",u={},r={};return o}angular.module("CommonModule").factory("WebStorageFactory",n);n.$inject=["$window","SHOW"]}(),function(){"use strict";function n(n,t,i){function r(r){var u,f,e;if(!i.isUrlForeignOrStatic.test(r.url)&&t.flow&&t.flow.flowCode){r.headers||(r.headers={});r.headers["X-EXL-FLOW-CODE"]=t.flow.flowCode;r.headers["X-EXL-FLOW-TYPE"]=t.flow.flowType;var o=n.get("$state"),s=o.current,h=o.params;s&&(u=s.data,u&&(f=u.taskName,f&&(r.headers["X-EXL-TASK-NAME"]=f)));h&&(e=h.regId,e&&(r.headers["X-EXL-REG-ID"]=e))}return r}return{request:r}}angular.module("CommonModule").factory("WizardHttpHeaderFactory",n);n.$inject=["$injector","WIZARD","REGEX"]}(),function(){"use strict";function n(n,t){function i(){return n.data}function r(){t.setWindowLocation("Diagnostics?forcetests=1")}return{getDiagnosticsResults:i,getDiagnosticsResultsForced:r}}angular.module("DiagnosticsModule").factory("DiagnosticsFactory",n);n.$inject=["DIAGNOSTICS","UrlService"]}(),function(){"use strict";function n(n,t){function f(u){var f=t.defer(),e=i+u;return n.get(e).success(function(n){if(n.success){var t=n.data;t.type=r(t);f.resolve(t)}else f.reject(n.messages)}).error(function(n){f.reject(n)}),f.promise}function e(r,u){var f=t.defer(),e,o;return angular.isUndefined(r)?f.reject([{text:"Marketing Code Discount does not exist"}]):(e=i,o="POST",r.marketingCodeDiscountID!==0?(e=i+"/"+r.marketingCodeDiscountID,o="PUT"):(e+="new",u==="REGTYPE"&&(r.discountTargets=r.discountTargets||[],r.discountTargets.indexOf("REG")===-1&&r.discountTargets.push("REG"))),n({method:o,url:e,data:r}).success(function(n){n.success?f.resolve(n.data):f.reject(n.messages)})),f.promise}function o(r,u){var f=t.defer(),e,o;return angular.isUndefined(r)&&angular.isArray(r.marketingCodeDiscounts)?f.reject([{text:"Marketing Code does not exist"}]):(e=i+"mc",o="PUT",n({method:o,url:e,data:{code:r.code,discounts:u}}).success(function(n){n.success?f.resolve(n.data):f.reject(n.messages)})),f.promise}function s(r,u){var f=t.defer(),e,o;return u=u||[],angular.isArray(u)||(u=u.split(",")),e=i+r.marketingCodeDiscountID+"/targets",o="PUT",n({method:o,url:e,data:{discountID:r.marketingCodeDiscountID,discountTargets:u}}).success(function(n){f.resolve(n.data)}).error(function(n){f.reject(n)}),f.promise}function h(){var r=t.defer(),u=i+"targets";return n.get(u).success(function(n){r.resolve(n.data)}).error(function(n){r.reject(n)}),r.promise}function r(n){return n?n.discountTargets&&_.findIndex(n.discountTargets,{discountTarget:"REG",isActive:!0})>-1?"REGTYPE":"SHOWITEM":""}var u={getDiscount:f,postDiscount:e,postDiscounts:o,saveDiscountTargets:s,getAllDiscountTargets:h,determineDiscountType:r,discountTypes:[{text:"Amount Off",value:"FLATOFF"},{text:"Percent Off",value:"PERCENT"},{text:"Set Fee",value:"SETFEE"}]},i="api/marketingcode/discount/";return u}angular.module("MarketingCodeModule").factory("DiscountFactory",n);n.$inject=["$http","$q"]}(),function(){"use strict";function n(n,t,i){function h(){var i=t.defer(),f;return angular.isUndefined(u)?(f=r+"CanPush",n.get(f).success(function(n){u=n;i.resolve(u)})):i.resolve(u),i.promise}function c(){var i=t.defer(),u;return angular.isUndefined(f)?(u=r+"CanSave",n.get(u).success(function(n){f=n;i.resolve(f)})):i.resolve(f),i.promise}function l(){var i=t.defer(),u=r+"GetAllCodes";return n.get(u).success(function(n){n.success?(e=n.data,i.resolve(e)):i.reject(n.messages)}),i.promise}function a(i){var u=t.defer(),f;return i?(f=r+"Code",n.get(f,{params:{code:i}}).success(function(n){n.success?(s=n.data,n.data.beginDate&&(n.data.beginDate=new Date(n.data.beginDate)),n.data.endDate&&(n.data.endDate=new Date(n.data.endDate)),u.resolve(n.data)):u.reject(n.message)})):u.resolve(null),u.promise}function v(u){var e=[],o,s,f;if(u)o=r,s="POST",o=r+"Code",u.marketingCodeID!==0&&(s="PUT"),f=t.defer(),n({method:s,url:o,data:u}).success(function(n){n.success?f.resolve(n.data):f.reject(n.messages)}),e.push(f.promise),angular.forEach(u.marketingCodeDiscounts,function(n){n.hasChanged&&e.push(i.postDiscount(n))});else return t.reject([{text:"Invalid or missing code."}]);return t.all(e)}function y(i){if(!i)return t.when();var u=r+"IsCodeValid";return n.get(u,{params:{code:i}})}function p(i){if(!i)return t.when();var u=r+"GetUsedLimit";return n.get(u,{params:{code:i}})}function w(){var i=t.defer(),f;return u?(f=r+"Push",n.get(f).success(function(n){i.resolve(n)})):i.resolve(!1),i.promise}function b(){var t=r+"GetProofingReport";return n.get(t,{responseType:"blob"})}var o={getAllCodes:l,getCode:a,postCode:v,isCodeValid:y,getUsedLimit:p,pushMarketingCodes:w,getCanPush:h,getCanSave:c,getProofingReport:b,codeTypes:[{text:"Discount",value:"DISCOUNT"},{text:"Access",value:"ACCESS"},{text:"Tracking",value:"TRACKING"}]},e,r="api/MarketingCode/",s,u,f;return o}angular.module("MarketingCodeModule").factory("MarketingCodeFactory",n);n.$inject=["$http","$q","DiscountFactory"]}(),function(){"use strict";function n(n,t){function l(){var n=[];return n.push(o()),n.push(s()),n.push(h()),t.all(n)}function a(n){var i=t.defer();switch(n.toUpperCase()){case"REGISTRATION":o().then(function(n){n={type:"Registration",options:n};i.resolve(n)});break;case"MEMBERSHIP":s().then(function(n){n={type:"Membership",options:n};i.resolve(n)});break;case"DATE":h().then(function(n){n={type:"Date",options:n};i.resolve(n)});break;default:i.resolve()}return i.promise}function o(){var n=t.defer();return r?n.resolve(r):e("registration").then(function(t){r=t;n.resolve(t)},function(){n.reject()}),n.promise}function s(){var n=t.defer();return u?n.resolve(u):e("membership").then(function(t){u=t;n.resolve(t)},function(){n.reject()}),n.promise}function h(){var n=t.defer();return f?n.resolve(f):e("date").then(function(t){f=t;n.resolve(t)},function(){n.reject()}),n.promise}function e(r){var u=t.defer(),f;return r||u.reject(),f=i+r,n.get(f).success(function(n){n.success?u.resolve(n.data):u.reject(n.data)}),u.promise}function v(r,u){var f=t.defer(),e,o;return angular.isUndefined(r)&&angular.isArray(r.marketingCodeQualifiers)?f.reject([{text:"Marketing Code does not exist"}]):(e=i,o="PUT",n({method:o,url:e,data:{code:r.code,qualifiers:u}}).success(function(n){n.success?f.resolve(n.data):f.reject(n.data)})),f.promise}function y(r,u){var f=t.defer(),e,o;return angular.isUndefined(r)?f.reject([{text:"Marketing Code does not exist"}]):(e=i+"discount/"+r.marketingCodeDiscountID,o="PUT",n({method:o,url:e,data:{discountID:r.marketingCodeDiscountID,qualifiers:u}}).success(function(n){n.success?f.resolve(n.data):f.reject(n.data)})),f.promise}function p(r){var u=t.defer(),f=i+"discount/"+r+"/validate";return n.get(f).success(function(n){u.resolve(n)}).error(function(){}),u.promise}var c={getAllQualifierOptions:l,getQualifierOptions:a,postQualifiers:v,postDiscountQualifiers:y,validateDiscountQualifiers:p,qualifierTypes:["Registration","Membership","Date"]},r=null,u=null,f=null,i="api/marketingcode/qualifier/";return c}angular.module("MarketingCodeModule").factory("QualifierFactory",n);n.$inject=["$http","$q"]}(),function(){"use strict";function n(n,t,i){function a(){c();u=null;f=null;o=null;e={}}function v(){var i=t.defer(),r=h+"/CompletedPersonnel";return n.get(r,{params:{lastSelectedDate:o}}).success(function(n){var t,s,r,u;if(n.success){if(t=n.data,y(t),f)for(r=0;r<t.personnel.length;r++){for(s=!1,u=f.length-1;u>=0;u--)if(f[u].registrantId==t.personnel[r].registrantId){f[u]=t.personnel[r];s=!0;break}s||f.push(t.personnel[r])}else f=t.personnel;p(f,t.confSettings);t.personnel=f;o=t.lastSelectedDate;e.status||(e.status=t.confirmationsSent);t.hasContactConfirmationSent&&(e.hasContactConfirmationSent=t.hasContactConfirmationSent);t.latestContactConfirmationDate&&(e.latestContactConfirmationDate=t.latestContactConfirmationDate);i.resolve(t)}else i.reject(n.messages)}),i.promise}function y(n){if(n&&(n.latestContactConfirmationDate&&(n.latestContactConfirmationDate=moment(n.latestContactConfirmationDate).toDate()),n.personnel))for(var t=0;t<n.personnel.length;t++)n.personnel[t].latestConfirmationDate&&(n.personnel[t].latestConfirmationDate=moment(n.personnel[t].latestConfirmationDate).toDate())}function p(n,t){var i,r,u;if(n)for(t||(t=[]),i=0;i<n.length;i++)if(n[i].confSettings={isIndividualConfEnabled:!1,noConfirmationReason:"Confirmation Hold"},n[i].isSelected=!1,n[i].isContact){n[i].confSettings.noConfirmationReason="Contact";continue}else if(n[i].isGuest){n[i].confSettings.noConfirmationReason="Guest";continue}else for(r=0;r<t.length;r++)if(n[i].registrantId==t[r].registrantId){n[i].confSettings=t[r];u=exlBaseFunctions.stringEqualsIgnoreCase(n[i].confSettings.confirmationSendTypeCode,"Email");!u||n[i].confSettings.hasAutoHold||n[i].confSettings.holdConfirmation?(n[i].confSettings.isIndividualConfEnabled=!1,n[i].confSettings.noConfirmationReason=u?n[i].confSettings.hasWaitListHold?"Room is Waitlisted":n[i].confSettings.holdConfirmation?"Manual Hold":"Confirmation Hold":"No Email Address"):(n[i].confSettings.isIndividualConfEnabled=!0,n[i].confSettings.noConfirmationReason=null,n[i].needsConfirmation=n[i].confSettings.needsConfirmation);break}}function w(n){var f=t.defer();return u&&!n?f.resolve(u):i.getFilterData(n).then(function(n){u=angular.copy(n);r.selectLists.regType=u.registrationTypes;r.selectLists.hotel=u.qualifiedHotelItemList;f.resolve(u)},function(n){f.reject(n)}),f.promise}function b(){return r}function c(){var n=r.filterFields.completedType;return r=s(),r.filterFields.completedType=n,r}function s(){var n=angular.copy(i.getNewFilter());return n.selectLists.regType=u?u.registrationTypes:[],n.selectLists.hotel=u?u.qualifiedHotelItemList:[],n.filterFields.viewCompleted=!0,n.filterFields.completedType=ExlConstants.filterCompletedTypes.RegOrRes,n}function k(){return r.selectedFilterFields=[],angular.forEach(r.filterFields,function(n,t){var f,i,u;angular.isObject(n)&&n.value&&(f=n.shortTitle?n.shortTitle:n.title,i=n.displayValue?n.displayValue:n.value,n.hasSelectList&&(u=exlBaseFunctions.findFirstByKey(r.selectLists[t],"value",n.value),i=u?u.text:i),this.push({propertyName:t,title:f,value:i}))},r.selectedFilterFields),r.selectedFilterFields}function d(i,r){var u=t.defer(),f;return i||r&&r.length?(i=i!=null?i:!1,f=h+"/SendConfirmations/"+i,n.post(f,r).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)})):u.reject(),u.promise}function g(){return e}function nt(n){e=n}var l={resetDataMembers:a,selectPersonnel:v,getFilterData:w,getFilter:b,getNewFilter:s,setSelectedFilterFields:k,resetFilter:c,sendConfirmations:d,getConfirmationsSent:g,setConfirmationsSent:nt,eventHandlerCodes:{sendConfirmation:"SendConfirmation"}},h="api/personnel",r=s(),u,f,o,e={};return l}angular.module("PersonnelModule").service("CompletedPersonnelFactory",n);n.$inject=["$http","$q","PersonnelFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function d(){w();c=null;s=null;y=null;a=null;v={}}function g(){var i=t.defer();return n.get(h,{params:{lastSelectedDate:y}}).success(function(n){var t,f,r,u,e;if(n.success){if(t=n.data,nt(t.personnel),s)for(r=0;r<t.personnel.length;r++){for(f=!1,u=s.length-1;u>=0;u--)if(s[u].registrantId==t.personnel[r].registrantId){e=s[u].isSelected;s[u]=t.personnel[r];s[u].isSelected=e;f=!0;break}f||(a&&a.hasInviteSent&&t.personnel[r].registrantId==a.registrantId&&(t.personnel[r].hasInviteSent=a.hasInviteSent),s.push(t.personnel[r]))}else s=t.personnel;t.personnel=s;y=t.lastSelectedDate;v.status||(v.status=t.invitesSent);i.resolve(t)}else i.reject(n.messages)}),i.promise}function nt(n){var t,i;if(n)for(i=0;i<n.length;i++)t=n[i],t.latestInviteDate&&(t.latestInviteDate=moment(t.latestInviteDate).toDate()),t.hasPaid="0",t.totalPaid<0?t.hasPaid="1":t.isGuest&&t.hasCompletedRegistration&&(t.hasPaid="2")}function tt(){var i=t.defer(),r=h+"/RegistrationOptions/";return n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function it(i){var r=t.defer(),u;return c&&!i?r.resolve(c):(u=h+"/FilterData/",n.get(u).success(function(n){n.success?(c=n.data,l.selectLists.regType=c.registrationTypes,l.selectLists.hotel=c.qualifiedHotelItemList,r.resolve(c)):r.reject(n.messages)})),r.promise}function rt(){return l}function w(){return l=p()}function p(){return{filterFields:{registrantId:{title:"Customer ID",value:""},firstName:{title:"First Name",value:""},lastName:{title:"Last Name",value:""},email:{title:"Email",value:""},company:{title:"Company",value:""},regType:{title:"Reg Type",value:"",hasSelectList:!0},noReg:{title:"Show people without registration",shortTitle:"No Registration",value:"",displayValue:"True"},hotel:{title:"Hotel",value:"",hasSelectList:!0},noRes:{title:"Show people without reservations",shortTitle:"No Reservations",value:"",displayValue:"True"},waitlist:{title:"Waitlisted reservations only",shortTitle:"Waitlisted Reservations",value:"",displayValue:"True"}},selectLists:{regType:c?c.registrationTypes:[],hotel:c?c.qualifiedHotelItemList:[]},selectedFilterFields:[]}}function ut(){return l.selectedFilterFields=[],angular.forEach(l.filterFields,function(n,t){var u,i,r;n.value&&(u=n.shortTitle?n.shortTitle:n.title,i=n.displayValue?n.displayValue:n.value,n.hasSelectList&&(r=exlBaseFunctions.findFirstByKey(l.selectLists[t],"value",n.value),i=r?r.text:i),this.push({propertyName:t,title:u,value:i}))},l.selectedFilterFields),l.selectedFilterFields}function ft(i){var f=t.defer(),r={},e,u;if(i=i||0,e=h+"/Profile/",i>0&&(e=e+"/"+i,s))for(u=0;u<s.length;u++)if(s[u].registrantId==i){r=s[u];break}return r.loadedProfile?f.resolve(angular.copy(r.loadedProfile)):n.get(e).success(function(n){n.success?(r.loadedProfile=n.data,f.resolve(angular.copy(r.loadedProfile))):f.reject(n.messages)}),f.promise}function et(i){var r=t.defer();if(i){var u=h+"/Profile/",f="POST",e=i.needsInviteIndividual?"Yes":null;i.registrantId!==0&&(u=u+"/"+i.registrantId,f="PUT");n({method:f,url:u,data:i}).success(function(n){n.success?(n.data.addedRegistrant&&(a={registrantId:n.data.addedRegistrant.registrantId,hasInviteSent:e}),r.resolve(n.data)):r.reject(n.messages)})}else r.reject([{text:"Profile does not exist"}]);return r.promise}function ot(i){var r=t.defer(),u=h+"/RemoveRegistration/"+i;return n.put(u).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function st(i){var r=t.defer(),u;return i&&i.length?(u=h+"/SendGroupIndividualInvites",n.post(u,i).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})):r.reject(),r.promise}function ht(){return v}function ct(n){v=n}function lt(n){i.setSession(ExlConstants.session.personnelRegOption,n?n:null)}function at(){return i.getSession(ExlConstants.session.personnelRegOption)}function vt(n,t){n?(t.needsRegistration=n.value==ExlConstants.personnelRegOptions.reg||n.value==ExlConstants.personnelRegOptions.regHousing,t.needsHousing=n.value==ExlConstants.personnelRegOptions.housing||n.value==ExlConstants.personnelRegOptions.regHousing,t.needsInviteIndividual=n.value==ExlConstants.personnelRegOptions.inviteIndividual):t.isInviteIndividualEnabled||t.isHousingEnabled&&r.isRegistrationOpen()&&t.isRegistrationEnabled&&r.isHousingOpen()?(t.needsRegistration=!1,t.needsHousing=!1,t.needsInviteIndividual=!1):(t.needsRegistration=(!t.isHousingEnabled||!r.isHousingOpen())&&t.isRegistrationEnabled&&r.isRegistrationOpen(),t.needsHousing=(!t.isRegistrationEnabled||!r.isRegistrationOpen())&&t.isHousingEnabled&&r.isHousingOpen()&&t.housingRequirementsSatisfied,t.needsInviteIndividual=!1)}function yt(){return k}function pt(n){var t=!1;return n.noHotelTypeCode&&n.noHotelTypeCode!=ExlConstants.noHotelTypeCodes.WebCancel&&n.noHotelTypeCode!=ExlConstants.noHotelTypeCodes.StaffCancel&&(t=!0),t}function wt(n){var t=_.find(r.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.Housing});t&&(f.setAddRoomRegistrant(n,[].concat(t.wizardTasks)),u.goToSection(t,!0))}function bt(){var r=h+"/DownloadTemplate",i=t.defer();return n.get(r,{responseType:"arraybuffer"}).success(function(n,t,r){e.processDownload(n,t,r);i.resolve(n)}).error(function(){i.reject("failed download excel file")}),i.promise}function kt(i){var u=h+"/DownloadExport",r=t.defer();return n.get(u,{responseType:"arraybuffer",params:{downloadType:i}}).success(function(n,t,i){e.processDownload(n,t,i);r.resolve(n)}).error(function(){r.reject("failed download excel file")}),r.promise}function dt(i){var f=i,r,u;if(f===undefined||f.attachment===undefined){o.displayError("Please attach the file to process your upload.");return}return r=t.defer(),u=new FormData,angular.forEach(i,function(n,t){u.append(t,n)}),n({url:h+"/UploadFile",method:"POST",data:u,transformRequest:angular.identity,headers:{"Content-Type":undefined}}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}).error(function(){r.reject("failed upload file")}),r.promise}function gt(n){var t=_.find(r.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.Housing});t&&f.setAddRoomRegistrant(n,[].concat(t.wizardTasks))}function ni(i){var r=t.defer(),u,f;return i?(u=h+"/AddPersonQuick/",f="POST",n({method:f,url:u,data:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})):r.reject([{text:"Person does not exist"}]),r.promise}function ti(i){var r=t.defer(),u=h+"/EditIndividualsQuick/";return n({method:"POST",url:u,data:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}var b={resetDataMembers:d,selectPersonnel:g,getRegistrationOptions:tt,getFilterData:it,getFilter:rt,getNewFilter:p,setSelectedFilterFields:ut,resetFilter:w,getProfile:ft,postProfile:et,removeRegistration:ot,setRegOptionPreference:lt,getRegOptionPreference:at,setPersonNeeds:vt,getAllowAddNewWhenClosed:yt,hasNoHotelTypeSet:pt,addRoomRegistrant:wt,sendGroupIndividualInvites:st,getInvitesSent:ht,setInvitesSent:ct,eventHandlerCodes:{setSelectedFilterFields:"SetSelectedFilterFields",sendInvite:"SendInvite"},downloadTemplate:bt,downloadExport:kt,uploadList:dt,addRoomRegistrantNoNavigation:gt,addPersonQuick:ni,editIndividualsQuick:ti},h="api/personnel",l=p(),c,s,y,a,v={},k=!1;return b}angular.module("PersonnelModule").service("PersonnelFactory",n);n.$inject=["$http","$q","WebStorageFactory","WIZARD","WizardNavService","HOUSING","DownloadService","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f){function l(){var i=t.defer(),r;return s?i.resolve(s):(r=e+"/BlockRequest",n.get(r).success(function(n){n.success?(s=n.data,i.resolve(s)):i.reject(n.messages)})),i.promise}function y(){var i=t.defer(),r=e+"/NewBlockRequest";return n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function p(n){s=n}function o(){var i=t.defer(),r;return h?i.resolve(h):(r=e+"/BlockRequestConfigPolicy",n.get(r).success(function(n){n.success?(h=n.data,i.resolve(h)):i.reject(n.messages)})),i.promise}function a(n){var t={isNew:!0};if(n){t.isNew=!1;switch(n.requestStatus.toUpperCase()){case ExlConstants.blockRequestStatus.inProgress:t.isInProgress=!0;break;case ExlConstants.blockRequestStatus.submitted:t.isSubmitted=!0;break;case ExlConstants.blockRequestStatus.fulfilled:t.isFulfilled=!0;break;case ExlConstants.blockRequestStatus.guaranteed:t.isGuaranteed=!0;break;case ExlConstants.blockRequestStatus.cancelled:t.isCancelled=!0}}return t}function w(n){var r=t.defer(),i=!0;return o().then(function(t){if(n==null||t==null)i=!1;else switch(n.requestStatus.toUpperCase()){case ExlConstants.blockRequestStatus.inProgress:break;case ExlConstants.blockRequestStatus.submitted:t.editRequestEnabled||(i=!1);break;default:i=!1}}).finally(function(){r.resolve(i)}),r.promise}function b(){var i=t.defer(),r=e+"/BlockRequestHotelChoices";return n.get(r).success(function(n){n.success?(k(n.data.choice,n.data.fee),i.resolve(n.data)):i.reject(n.messages)}),i.promise}function k(n,t){for(var f in n){var u=n[f],r=t.filter(function(n){return n.hotelItemId==this?!0:!1},u.hotelItemId),i={isVariableRate:!1,isRateDefined:!0,singleRate:0,doubleRate:0};r.length?r.length==1?(i.singleRate=r[0].ratePlanFeeAmt,i.doubleRate=r[0].ratePlanFeeAmt2):i.isVariableRate=!0:i.isRateDefined=!1;u.hotelItemRate=i}}function d(i,r){var u=t.defer();return o().then(function(t){var f=e+"/AddBlockRequestHotelItem",o={currentBlockRequest:i,blockRequestConfigPolicy:t,hotelItemChoice:r};n.put(f,o).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)})},function(n){u.reject(n)}),u.promise}function g(i,r){var u=t.defer(),f=e+"/RemoveBlockRequestHotelItem",o={currentBlockRequest:i,hotelItemChoice:r};return n.put(f,o).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}),u.promise}function nt(n,t){var i=t.priority-1,r=exlBaseFunctions.findFirstByKey(n.hotelItemCollection,"priority",i);r!=null&&(r.priority=t.priority,t.priority=i)}function tt(n,t){var i=t.priority+1,r=exlBaseFunctions.findFirstByKey(n.hotelItemCollection,"priority",i);r!=null&&(r.priority=t.priority,t.priority=i)}function it(n,t){var i=t.priority-1,r=exlBaseFunctions.findFirstByKey(n.selectionCriteriaCollection,"priority",i);r!=null&&(r.priority=t.priority,t.priority=i)}function rt(n,t){var i=t.priority+1,r=exlBaseFunctions.findFirstByKey(n.selectionCriteriaCollection,"priority",i);r!=null&&(r.priority=t.priority,t.priority=i)}function ut(n){return n&&n.roomNightCollection[0]!=null?n.roomNightCollection[0]:null}function ft(n){return n&&n.roomNightCollection[n.roomNightCollection.length-1]!=null?n.roomNightCollection[n.roomNightCollection.length-1]:null}function et(n){var t="";switch(n.requestStatus){case ExlConstants.blockRequestStatus.inProgress:t="In Progress";break;case ExlConstants.blockRequestStatus.submitted:t="Submitted";break;case ExlConstants.blockRequestStatus.fulfilled:t="Fulfilled";break;case ExlConstants.blockRequestStatus.guaranteed:t="Guaranteed";break;case ExlConstants.blockRequestStatus.cancelled:t="Cancelled";break;default:t=""}return t}function ot(){var i=t.defer(),r=e+"/RegGroupBlockConfigSettings";return n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function st(i,r,u,f){var s=t.defer();return o().then(function(t){var o="DistributeRoomNightQuantities",h,c;f.suggestedHistoricalRoomNightsActive&&(o="DistributeHistoricalRoomNightQuantities");h=e+"/"+o;c={currentBlockRequest:u,blockRequestConfigPolicy:t,roomNightStartDate:i,roomNightEndDate:r,regGroupBlockConfigSettings:f};n.put(h,c).success(function(n){n.success?s.resolve(n.data):s.reject(n.messages)})},function(n){s.reject(n)}),s.promise}function ht(i){var r=t.defer();return o().then(function(t){var u=e+"/BlockRequestHotelItems",f={currentBlockRequest:i,blockRequestConfigPolicy:t};n.post(u,f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})},function(n){r.reject(n)}),r.promise}function ct(i){var r=t.defer();return o().then(function(t){var u=e+"/BlockRequestSelectionCriteria",f={currentBlockRequest:i,blockRequestConfigPolicy:t};n.post(u,f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})},function(n){r.reject(n)}),r.promise}function lt(i){var r=t.defer();return o().then(function(t){var u=e+"/BlockRequestRoomNights",f={currentBlockRequest:i,blockRequestConfigPolicy:t};n.post(u,f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})},function(n){r.reject(n)}),r.promise}function at(i){var r=t.defer();return o().then(function(t){var u=e+"/BlockRequest",f={currentBlockRequest:i,blockRequestConfigPolicy:t};n.post(u,f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})},function(n){r.reject(n)}),r.promise}function vt(i){var r=t.defer();return o().then(function(t){var u=e+"/BlockRequestGuarantee",f={currentBlockRequest:i,blockRequestConfigPolicy:t};n.post(u,f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)})},function(n){r.reject(n)}),r.promise}function yt(){var i=t.defer(),r=e+"/SendBlockRequestConfirmation";return n.post(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function pt(n){c=n}function wt(){return c}function bt(){return[ExlConstants.wizardTaskInternalName.RABHotelSelection,ExlConstants.wizardTaskInternalName.RABAdditionalCriteria,ExlConstants.wizardTaskInternalName.RABRoomNights,ExlConstants.wizardTaskInternalName.RABSummary]}function kt(){var s=t.defer(),e=!1,n=[];return n.push(i.getBlockRequestSettings()),n.push(r.getBookingSummary()),n.push(l()),n.push(o()),t.all(n).then(function(n){var r=u.isSectionEnabled(ExlConstants.wizardSectionName.RAB)&&exlBaseFunctions.stringEqualsIgnoreCase(n[0].blockManagementType,ExlConstants.blockManagementTypes.rab),o=n[1].contact?n[1].contact.isVerified:!1,t=a(n[2]),s=n[3]?n[3].addRequestEnabled:!1,i=!1;(u.isRABOpen()&&s||t.isSubmitted||t.isFulfilled||t.isGuaranteed)&&(i=!0);r&&i&&o||(e=!0,f.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard))}).catch(function(){e=!0;f.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)}).finally(function(){s.resolve(e)}),s.promise}var v={getCurrentBlockRequest:l,addNewBlockRequest:y,updateCurrentBlockRequest:p,getBlockRequestConfigPolicy:o,getRABStatus:a,isBlockRequestEditAllowed:w,getBlockRequestHotelChoices:b,addHotelItemChoice:d,removeHotelItemChoice:g,increaseHotelItemPriority:nt,decreaseHotelItemPriority:tt,increaseSelectionCriteriaPriority:it,decreaseSelectionCriteriaPriority:rt,getFirstRoomNight:ut,getLastRoomNight:ft,getBlockRequestStatusText:et,getRegGroupBlockConfigSettings:ot,distributeRoomNightQuantities:st,postHotelItems:ht,postSelectionCriteria:ct,postRoomNights:lt,postBlockRequest:at,postBlockRequestGuarantee:vt,sendBlockRequestConfirmation:yt,setBlockRequestUpdated:pt,getBlockRequestUpdated:wt,getSubNavTaskList:bt,navigateIfDisabled:kt},e="api/rab",s,h,c=!1;return v}angular.module("RABModule").factory("RABFactory",n);n.$inject=["$http","$q","RegistrantGroupFactory","BookingFactory","WIZARD","WizardNavService"]}(),function(){"use strict";function n(n,t,i){function e(){var u=t.defer(),f=r;return i&&i.flow&&(f+="/"+i.flow.flowCode),n.get(f,{cache:!0}).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}),u.promise}function o(i){var f=t.defer(),e;return i?(e=r+"/RegInfo/"+i,n.get(e).success(function(n){n.success?(u=n.data,f.resolve(u)):f.reject(n.messages)})):f.reject(null),f.promise}var f={getHelpfulLinks:e,getRegInfo:o},r="api/HelpfulLinks",u;return f}angular.module("WidgetModule").factory("HelpfulLinksFactory",n);n.$inject=["$http","$q","WIZARD","$state"]}(),function(){"use strict";function n(n,t){function u(){var r=t.defer();return n.get(i+"ShowInfo",{cache:!0}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function f(){var r=t.defer();return n.get(i+"CSChatInfo",{cache:!0}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}var r={getShowInfo:u,getCSChatInfo:f},i="api/ShowInfo/";return r}angular.module("WidgetModule").factory("ShowInfoFactory",n);n.$inject=["$http","$q"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function c(){var i=t.defer();return o?i.resolve(o):n.get(h).success(function(n){n.success?(o=n.data,i.resolve(o)):i.reject(n.messages)}),i.promise}function l(){return f.isLoggedIn()||e.isLoggedIn()}var s={getCurrentWidgets:c,isLoggedIn:l},o,h="api/widget/"+(r&&r.flow?r.flow.flowCode:"");return s}angular.module("CommonModule").factory("WidgetFactory",n);n.$inject=["$http","$q","$window","WIZARD","$state","RegistrantLoginService","RegistrantGroupLoginService"]}(),function(){"use strict";function n(n,t,i,r,u){function s(){var n=u.getQueryString(),t=n&&(n.customerid||n.campaignid||n.signature),r=i.getSession(ExlConstants.integration.Boost);t&&!r&&(i.setSession(ExlConstants.integration.Boost,{params:{customerGuid:n.customerid||"",campaignID:n.campaignid||"",signature:n.signature||""}}),n.customerid=null,n.campaignid=null,n.signature=null,u.resetQueryStringWindow(n))}function h(){if(u.isWindowLocationChanging())return e();var n=i.getSession(ExlConstants.integration.Boost);return n?n.params?c(n.params):e():e()}function e(){var n=t.defer();return n.resolve(null),n.promise}function c(r){return f?f.promise:(f=t.defer(),r?n({method:"GET",url:o+"ProcessCampaign/",params:r}).success(function(n){n.success?(i.setSession(ExlConstants.integration.Boost,{auth:n.data.auth}),f.resolve(n.data)):f.reject(n.messages)}).finally(function(){f=null}):f.resolve(null),f.promise)}function l(){i.setSession(ExlConstants.integration.Boost,null)}this.processQueryString=s;this.process=h;this.clearBoostParams=l;var o="api/boost/",f}angular.module("CommonModule").service("BoostService",n);n.$inject=["$http","$q","WebStorageFactory","$window","UrlService","DocumentService","WIZARD","$state","RegistrantLoginService"]}(),function(){"use strict";function n(n,t,i){function h(n,t){var i="[name="+n+"]";f(i,t)}function u(n,t,i){var r=["form[name='","ng-form[name='","[ng-form='","[data-ng-form='"],u;r.forEach(function(i,r,u){u[r]=i+n+"'] [name='"+t+"']"});u=r.join(",");f(u,i)}function f(t,i){var u=n.find(t);u&&u.length&&(u[0].focus(),i&&r(u))}function e(n,t){for(var u,r,i=0;i<t.length;i++)if(u=t[i],r=n[u],r)return r.$name}function o(n){var i=[],r;return angular.forEach(n,function(n){n&&n.$setTouched&&!n.touched&&(n.$setTouched(),n.$invalid&&i.push(n.$name))}),r=e(n,i),t.$broadcast(ExlConstants.events.touchAllInputs),r}function c(n,t){angular.forEach(n,function(n){n&&n.$setTouched&&!n.touched&&n.$name===t&&n.$setTouched()})}function l(){return n.find("base").attr("href")}function a(n){var i,t;for(i in n)t=n[i],t&&t.$setViewValue&&(t.$touched=!1,t.$setViewValue(""),t.$render())}function v(){n.find("html,body").animate({scrollTop:0},"slow")}function r(t){var u=(t.closest(".reveal-modal").length?null:angular.element(".user-bar").outerHeight())||0,i=t.closest("label"),r;!i.length&&t.is(":input")&&(r=t.attr("id"),angular.isDefined(r)&&(i=angular.element("label[for="+r+"]")));i.length||(i=t);n.find("html,body").animate({scrollTop:~~i.offset().top-u},"slow")}function y(n){var t=angular.element("#"+n);r(t)}function p(n){if(n.$invalid){var t=o(n);return t&&i(function(){u(n.$name,t,!0)},0),!1}return!0}function w(){var t=["form","ng-form","[ng-form]","[data-ng-form]"],i;return t.forEach(function(n,t,i){i[t]=n+".ng-dirty:not([ignore-dirty])"}),i=n.find(t.join(",")).find(".ng-dirty.ng-touched"),!!i.length}function s(n){n&&n.$setPristine&&n.$setPristine()}function b(){var i=["form","ng-form","[ng-form]","[data-ng-form]"],t;i.forEach(function(n,t,i){i[t]=n+".ng-dirty:not([ignore-dirty])"});t=n.find(i.join(","));t.length&&angular.forEach(t,function(n){s(n)})}this.setFocusByName=h;this.setFocusByNameInForm=u;this.findFirstControlByName=e;this.touchAllInputs=o;this.touchInputByName=c;this.baseHref=l;this.resetForm=a;this.scrollTop=v;this.scrollToElem=r;this.scrollToElemById=y;this.checkFormIsValid=p;this.areAnyFormsDirty=w;this.setFormPristine=s;this.setAllFormsPristine=b}angular.module("CommonModule").service("DocumentService",n);n.$inject=["$document","$rootScope","$timeout"]}(),function(){"use strict";function n(n){function t(t,i,r){var u=r()["x-filename"]||"templatefile.xls",e=r()["content-type"]||"application/octet-stream",f;try{console.log(u);console.log("Trying saveAs method ...");f=new Blob([t],{type:e});n.saveAs(f,u);console.log("saveAs succeeded")}catch(o){console.log("saveAs method failed with the following exception:");console.log(o)}}this.processDownload=t}angular.module("CommonModule").service("DownloadService",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function p(){var n=u.getQueryString(),t=n&&(n.token||n.activitycode||n.promocode),r=i.getSession(ExlConstants.integration.Edge);t&&!r&&(i.setSession(ExlConstants.integration.Edge,{params:{token:n.token||"",activityCode:n.activitycode||"",promoCode:n.promocode||""}}),n.token=null,n.activitycode=null,n.promocode=null,u.resetQueryStringWindow(n))}function w(){if(u.isWindowLocationChanging())return a();var n=i.getSession(ExlConstants.integration.Edge);if(!n)return a();if(e&&e.flow&&!exlBaseFunctions.isNullOrWhiteSpace(e.flow.flowCode)){if(e.flow.isGroup)return a();if(s.isLoggedIn()||o.params.regId){if(n.auth&&o.params.regId)return k(n.auth,o.params.regId)}else{if(n.params)return y(n.params);if(n.auth)return b(n.auth)}}else if(n.params)return y(n.params);return a()}function a(){var n=t.defer();return n.resolve(null),n.promise}function y(r){return h?h.promise:(h=t.defer(),r?n({method:"GET",url:v+"ProcessCampaign/",params:r}).success(function(n){n.success?(i.setSession(ExlConstants.integration.Edge,{auth:n.data.auth}),h.resolve(n.data)):h.reject(n.messages)}).finally(function(){h=null}):h.resolve(null),h.promise)}function b(r){return c?c.promise:(c=t.defer(),r?n({method:"GET",url:v+"FillRegistrant/"}).success(function(n){n.success?(i.setSession(ExlConstants.integration.Edge,{auth:n.data.auth}),c.resolve(n.data)):c.reject(n.messages)}).finally(function(){c=null}):c.resolve(null),c.promise)}function k(i,r){return l?l.promise:(l=t.defer(),i?n({method:"GET",url:v+"UpdateTransactions/"+r}).success(function(n){n.success?l.resolve(n.data):l.reject(n.messages)}).finally(function(){l=null}):l.resolve(null),l.promise)}function d(){i.setSession(ExlConstants.integration.Edge,null)}this.processQueryString=p;this.process=w;this.clearEdgeParams=d;var v="api/edge/",h,c,l}angular.module("CommonModule").service("EdgeService",n);n.$inject=["$http","$q","WebStorageFactory","$window","UrlService","DocumentService","WIZARD","$state","RegistrantLoginService"]}(),function(){"use strict";function n(n,t,i,r){function o(){var n=r.getQueryString(),f=n&&(n.returnurl||n.loc||n.hideheader),e=i.getSession(ExlConstants.integration.Engage),t,u;f&&!e&&(t={params:{returnUrl:n.returnurl?decodeURIComponent(n.returnurl):"",loc:n.loc||"",hideHeader:n.hideheader?!0:!1}},i.setSession(ExlConstants.integration.Engage,t),n.returnurl=null,n.loc=null,n.hideheader=null,u=i.getSession(ExlConstants.integration.AutoLogin),u&&(n.passthrough=null),r.resetQueryStringWindow(n))}function s(){var n=t.defer();return n.resolve(null),n.promise}function h(){i.setSession(ExlConstants.integration.Engage,null)}function c(i,r){return u?u.promise:(u=t.defer(),r?n({method:"GET",url:e+"ReturnID/"+r}).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}).finally(function(){u=null}):u.resolve(null),u.promise)}function l(n){var t=i.getSession(ExlConstants.auth.regId);return t?c(n,t):s()}function a(){return f()?!0:!1}function f(){var n=i.getSession(ExlConstants.integration.Engage);return n&&n.params?n.params.returnUrl:null}function v(){var n=i.getSession(ExlConstants.integration.Engage);return n&&n.params?n.params.loc:null}this.processQueryString=o;this.clearEngageParams=h;this.handleReturn=l;this.hasReturnUrl=a;this.getReturnUrl=f;this.getLocation=v;var e="api/engage/",u}angular.module("CommonModule").service("EngageService",n);n.$inject=["$http","$q","WebStorageFactory","UrlService"]}(),function(){"use strict";function n(n,t,i){function f(){return n.get(r,u)}function o(){return n.get(r+"/Hotels",u)}function s(){return n.get(r+"/Event",u)}function h(){return n.get(r+"/Images",u)}function c(i){var e=t.get("$http"),o;return angular.isDefined(e)&&(o=e.get(r),angular.isDefined(o))?f():n.get(r+"/"+i,u)}function l(){return n.get(r+"/MapExclusions",u)}function a(n){var i={},t,u,e,f,r,o;for(t in n)if(n[t]&&n[t].length)for(i[t]={},u=0;u<n[t].length;u++){e={};for(f in n[t][u])f==="facilityID"?(r=n[t][u][f],t==="ada"?(o=n[t][u].codeMaster,angular.isUndefined(i[t][r])&&(i[t][r]={}),angular.isUndefined(i[t][r][o])&&(i[t][r][o]=[]),i[t][r][o].push(e)):(angular.isArray(i[t][r])||(i[t][r]=[]),i[t][r].push(e))):(t!=="ada"||f!=="codeMaster")&&(e[f]=n[t][u][f])}return i}function v(n){return e(n)}function e(n,t){function s(n){var i,f,t;if(n&&n.length)for(i=0;i<n.length;i++)f=n[i],t=e(f.facilityPropertyCode),t&&angular.element.inArray(t,r)===-1&&(u.push({code:t,desc:f.description}),r.push(t))}function h(n){var i,f,t;if(n&&n.length)for(i=0;i<n.length;i++)f=n[i],t=e(f.hotelGroupCode),t&&angular.element.inArray(t,r)===-1&&(u.push({code:t,desc:f.description}),r.push(t))}function c(n){var i,f,t;if(n&&n.length)for(i=0;i<n.length;i++)if(f=n[i],t=e("ISHEADQUARTER"),f.isHeadquarter&&t&&angular.element.inArray(t,r)===-1){u.push({code:t,desc:"Headquarter Hotel"});r.push(t);break}}function l(n){var i,r,t;if(n&&n.length)for(i=0;i<n.length;i++)r=n[i],t=r.customCode,t&&angular.element.inArray(t,o)===-1&&(f.push({code:t,desc:r.description}),o.push(t))}function e(n){for(var t in i)if(n.indexOf(t)===0)return t}var u=[],r=[],f=[],o=[],a=angular.isDefined(t)&&angular.isNumber(+t);return a?(s(n.amenities&&n.amenities[t]),h(n.hotelGroupCodes&&n.hotelGroupCodes[t]),c(n.facility&&n.facility[t]),l(n.showAmenities&&n.showAmenities[t])):(angular.forEach(n.amenities,s),angular.forEach(n.hotelGroupCodes,h),angular.forEach(n.facility,c),angular.forEach(n.showAmenities,l)),f&&f.length&&u.push({code:"MORE",desc:"MORE",itemList:f}),u}this.getAll=f;this.getHotels=o;this.getEvent=s;this.getImages=h;this.getById=c;this.getMapExclusions=l;this.toDictionary=a;this.getFacilityFeatures=e;this.getFacilityFeaturesAllFacilities=v;var r="api/Facility",u={cache:!0}}angular.module("CommonModule").service("FacilityService",n);n.$inject=["$http","$cacheFactory","FACILITYFEATURES"]}(),function(){"use strict";function n(n,t,i,r){function e(){var r={},e=!1,n,i;for(n in f)i=f[n](),i!==u[n]&&(u[n]=i,r[n]=!0,e=!0);e&&t.$broadcast(s.mediaQueryChanged,r,u)}var s=this,f={smallOnly:function(){return!r.medium()},mediumUp:function(){return r.medium()}},u={},h=angular.element(n),o;this.mediaQueryChanged="MediaQueryService.mediaQueryChanged";h.bind("resize",function(){i.cancel(o);o=i(function(){e()},200)});this.mediaQueries=u;e()}angular.module("CommonModule").service("MediaQueryService",n);n.$inject=["$window","$rootScope","$timeout","mediaQueries"]}(),function(){"use strict";function n(n,t,i){function u(i,u,f){var e=r+"registrant/"+i,o={oldPassword:u,newPassword:f};return n.put(e,o).then(function(n){var i=n.data;return i.success?t.when(i.success):t.reject(i.messages)})}function f(u){var f=r+"SendPasswordEmail",e={email:u,flowCode:i&&i.flow?i.flow.flowCode:""};return n.post(f,e).then(function(n){var i=n.data;return i.success?t.when(i.success):t.reject(i.messages)})}function e(i,u){var f=r+"ResetPassword",e={newPassword:u,token:i};return n.post(f,e).then(function(n){var i=n.data;return i.success?t.when(i.auth):t.reject(i.messages)})}this.changeRegistrantPassword=u;this.sendPasswordEmail=f;this.resetPassword=e;var r="api/password/"}angular.module("CommonModule").service("PasswordService",n);n.$inject=["$http","$q","WIZARD"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function k(){var t=c+"/PayTypes";return n.get(t,{cache:!0})}function d(i){var r=u.defer(),f=c+"/CheckOutInfo/"+(i||t.params.regId||0);return n.get(f).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function g(i){var f=u.defer(),e=[c,"ShoppingCart"],r=i,o;return r||(r=t.params.regId),r&&e.push(r),o=e.join("/"),h.isLoggedIn()?n.get(o).success(function(n){var t=n;t.itemsINP=[].concat(t.items.purchasesINP).concat(t.items.reservationsINP);t.itemsCOM=[].concat(t.items.purchasesCOM).concat(t.items.reservationsCOM);t.payments=[].concat(t.items.regPayments).concat(t.items.resPayments);t.itemsINPAllReservations=[].concat(t.items.purchasesINP).concat(t.items.allReservationsINP);f.resolve(t)}):f.reject(),f.promise}function nt(t){var i=u.defer(),r=c+"/PaymentList/";return angular.isDefined(t)&&t!==null&&angular.isNumber(+t)&&+t>0&&(r+=t),n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function tt(f,o,h){var a=u.defer(),v=c+"/SecuremitRedirectUrl/",l={};return l.taskInternalName=e.currentTask().taskInternalName,l.clientUrl=r.absUrl(),l.payItemList=f,l.regId=o||t.params.regId||0,n.post(v,l).success(function(n){n.success?n.data.toUpperCase()==i.location.href.toUpperCase()?h?e.promote():e.reLoadTask():s.setWindowLocation(n.data):a.reject(n.messages)}),a.promise}function it(i,f){var s=u.defer(),h=c+"/BuildCartXml/",o={};return o.taskInternalName=e.currentTask().taskInternalName,o.clientUrl=r.absUrl(),o.payItemList=i,o.regId=f||t.params.regId||0,n.post(h,o).success(function(n){n.success?s.resolve(n.data):s.reject(n.messages)}),s.promise}function rt(i,f,o){var h=u.defer(),l=c+"/PaymentByCheck/",s={};return s.taskInternalName=e.currentTask().taskInternalName,s.clientUrl=r.absUrl(),s.payItemList=i,s.regId=f||t.params.regId||0,n.post(l,s).success(function(n){n.success?exlBaseFunctions.stringEqualsIgnoreCase(n.data,e.currentTask().taskInternalName)?(p(!0),e.reLoadTask()):exlBaseFunctions.stringEqualsIgnoreCase(n.data,"NEXTTASK")&&(o&&!exlBaseFunctions.isNullOrWhiteSpace(o)?e.goToTaskByName(o):e.promote()):h.reject(n.messages)}),h.promise}function ut(){return v}function p(n){v=n}function ft(t,i){var f=u.defer(),o=c+"/PaymentWithSurplus/",r={};return r.taskInternalName=e.currentTask().taskInternalName,r.payItemList=t,r.bookingTransactionId=i||0,n.post(o,r).success(function(n){n.success?exlBaseFunctions.stringEqualsIgnoreCase(n.data,e.currentTask().taskInternalName)?e.reLoadTask():exlBaseFunctions.stringEqualsIgnoreCase(n.data,"NEXTTASK")&&e.promote():f.reject(n.messages)}),f.promise}function et(n,t){return y=[],n&&n.forEach(w),t&&t.forEach(w),y}function w(n){n.isSelected&&y.push({type:n.type,id:n.type==="H"?n.reservationId:n.registrantId})}function ot(t){if(l)return l.promise;if(l=u.defer(),a&&!t)l.resolve(a);else{var i=c+"/SurplusPaymentList/";n.get(i).success(function(n){n.success?(l.resolve(n.data),a=n.data):l.reject(n.messages)}).finally(function(){l=null})}return l.promise}var c,a,l,b,v,y;this.getPayTypes=k;this.getCheckOutInfo=d;this.getShoppingCart=g;this.getPaymentList=nt;this.buildPayList=et;this.redirectToSecuremit=tt;this.getSurplusPaymentList=ot;this.paymentByCheck=rt;this.paymentWithSurplus=ft;this.getChecksRemainingUnpaid=ut;this.setChecksRemainingUnpaid=p;this.buildCartXml=it;c="api/Payment";b=o("PaymentService");v=!1}angular.module("CommonModule").service("PaymentService",n);n.$inject=["$http","$state","$window","$location","$q","WIZARD","WizardNavService","$cacheFactory","UrlService","RegistrantLoginService"]}(),function(){"use strict";function n(n){function i(i){var r=t+"/badgepreviewB64/"+i;return n.get(r)}function r(i){var r=t+"/badgepreviewB64SelfReg/";return n({method:"GET",url:r,params:i})}this.getBadgePreviewB64=i;this.getBadgePreviewB64SelfReg=r;var t="api/production"}angular.module("CommonModule").service("ProductionService",n);n.$inject=["$http"]}(),function(){"use strict";function n(n,t,i){function o(t,i,e){var o=[r,t,i];return e&&o.push(e),n.get(o.join("/")).success(function(n){n.success&&(e?f(t,i,e,"create"):u(t,i,n.data))})}function s(t,i,u){var e=[r,t,i,u].join("/");return n.post(e).success(function(n){n.success&&f(t,i,u,"create")})}function h(t,i,u){var e=[r,t,i,u].join("/");return n.delete(e).success(function(){f(t,i,u,"delete")})}function u(n,i,r){var u=[e,n,i].join("_");if(angular.isDefined(r))t.setSession(u,r);else return t.getSession(u)}function f(n,t,r,f){var s=!1,e=u(n,t),o;e||(e=[]);o=angular.element.inArray(parseInt(r),e);f=="delete"?o>-1&&(e.splice(o,1),s=!0):o===-1&&(e.push(parseInt(r)),s=!0);s&&(u(n,t,e),i.$broadcast(ExlConstants.events.registrantLikeChanged,n,t,e))}var r,e;this.read=o;this.create=s;this.delete=h;this.cache=u;r="api/RegistrantLikes";e="RegistrantLikes"}angular.module("CommonModule").service("RegistrantLikesService",n);n.$inject=["$http","WebStorageFactory","$rootScope"]}(),function(){"use strict";function n(n){function t(){return n.get("api/Status",{cache:!0})}this.getData=t}angular.module("CommonModule").service("StatusService",n);n.$inject=["$http"]}(),function(){"use strict";function n(n,t,i,r,u){function o(){Microsoft&&Microsoft.Translator&&Microsoft.Translator.Widget?(Microsoft.Translator.Widget.Translate("en",Microsoft.Translator.Widget.lastToLanguage||"en",null,null,null,e),i.put("mstto_dotrans","1")):alert("Translator not yet loaded.  Please try again in a few seconds.")}function s(){f=!0}function h(){u(function(){if(f&&document.readyState==="complete"){var r=t.get("mstto"),u=i.get("mstto_dotrans");r&&r!=""&&u&&Microsoft&&Microsoft.Translator&&Microsoft.Translator.Widget&&n(function(){Microsoft.Translator.Widget.Translate("en",r,null,null,null,e)},10);f=!1}},5e3)}function e(){i.remove("mstto_dotrans");r.$apply()}this.launchTranslate=o;this.requestTranslate=s;var f=!1;h()}angular.module("CommonModule").service("TranslateService",n);n.$inject=["$timeout","$cookies","$cookieStore","$rootScope","$interval"]}(),function(){"use strict";function n(n){function r(){return n.location.hash.indexOf("#")===0?i(n.location.hash.substr(1)):{}}function u(){return n.location.search.indexOf("?")===0?i(n.location.search.substr(1)):null}function i(n){var u={},f,t,i,e,o,s,h,r;if(n===null)return u;for(f=n.split("&"),r=0;r<f.length;r++)t=f[r],i=t.indexOf("="),i===-1?(e=t,o=null):(e=t.substr(0,i).replace("/",""),o=t.substr(i+1)),s=decodeURIComponent(e).toLowerCase(),h=decodeURIComponent(o),u[s]=h;return u}function f(n){var i=[];for(var t in n)n[t]&&i.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return i.join("&")}function e(i){var r=f(i);r&&(r="?"+r);n.location.search=r||"";t=!0}function o(){return t}function s(i,r){r?n.location=i:n.location.href=i;t=!0}this.getFragment=r;this.parseQueryString=i;this.getQueryString=u;this.resetQueryStringWindow=e;this.setWindowLocation=s;this.isWindowLocationChanging=o;var t=!1}angular.module("CommonModule").service("UrlService",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function y(){return n&&n.current&&n.current.data?n.current.data.task:null}function tt(){var t,n;return l.queue.length?(t=l.queue.indexOf(y().taskInternalName),v(l.queue[t+1])):(n=y(),n)?n.NextTask:null}function it(){var n,r,i;return l.queue.length?(r=l.queue.indexOf(y().taskInternalName),n=r===0?l.returnToDashboard?v(ExlConstants.wizardTaskInternalName.Dashboard):v(l.queue[l.queue.length-1]):v(l.queue[r-1])):(n=a.currentTask(),n&&n.PreviousTask?n=n.PreviousTask:(i=_.flatten(_.pluck(_.filter(t.flow.wizardSections,{inLinearFlow:!0}),"wizardTasks")),i&&i.length&&(n=i[0]))),n}function v(n){return t.tasks[n]}function ot(n){var i=[];return n&&n.length?angular.forEach(t.tasks,function(t){n.indexOf(t.taskInternalName)!=-1&&i.push(t)}):i=t.tasks,i}function b(t,r,u){var f,e;return t&&t.taskInternalName?(f=i.getSession(w)||{},f[t.stateName]=angular.extend(f[t.stateName]||{},r),f[t.stateName].regId?(e=angular.copy(f[t.stateName]),delete e.regId,i.setSession(w,e)):i.setSession(w,f),i.setSession(p,l),n.go(t.stateName,f[t.stateName],{reload:u})):h.reject()}function g(n,t,i){return n.taskInternalName==ExlConstants.wizardTaskInternalName.Dashboard&&f.areAnyFormsDirty()?a.confirmNavigation().then(function(){return b(n,t,i)}):b(n,t,i)}function st(n){var t=it();return t?f.areAnyFormsDirty()?a.confirmNavigation().then(function(){return b(t,n)}):b(t,n):h.reject()}function ht(t){var i=tt(),r;return i?(r=t&&t.regId?t.regId:n.params.regId,r?u.addData(r).then(function(){return a.goToTask(i,t)}):a.goToTask(i,t)):h.reject()}function ct(n,i,r,u){var e,f;for(e in t.tasks)if(f=t.tasks[e],f.taskInternalName.toUpperCase()===n.toUpperCase())return u?(l.queue.length=0,l.queue.push(f.taskInternalName),k().then(function(){return a.goToTask(f,i,r)})):a.goToTask(f,i,r);return h.reject()}function lt(t){return angular.extend(n.params,t||{}),n.transitionTo(n.current,n.params,{reload:!0,inherit:!1,notify:!0})}function at(){i.setSession(w,{})}function vt(n,i,r){var u=a.currentTask();return l.queue.length=0,exlBaseFunctions.isNullOrWhiteSpace(n)||angular.forEach(t.tasks,function(t){t.setupWizardTypeCode.toUpperCase()===n.toUpperCase()&&l.queue.push(t.taskInternalName)}),l.queue.length?k().then(function(){return a.goToTask(v(l.queue[0]),i,r)}):h.reject()}function yt(n){var i=!1;return exlBaseFunctions.isNullOrWhiteSpace(n)||angular.forEach(t.tasks,function(t){if(!i&&t.setupWizardTypeCode.toUpperCase()===n.toUpperCase()){i=!0;return}}),i}function rt(n,t,i){if(!n.wizardTasks.length)return h.reject();angular.isDefined(t)||(t=!0);var r;return t?(l.queue.length=0,angular.forEach(n.wizardTasks,function(n){l.queue.push(n.taskInternalName)}),k().then(function(){return r=v(l.queue[0]),g(r,i)})):(r=n.wizardTasks[0],g(r,i))}function pt(n,i,r){var u=_.find(t.flow.wizardSections,{sectionName:n});return u?rt(u,i,r):h.reject()}function wt(n,t,r,u){var s,h;t&&i.setSession(ExlConstants.auth.uistateRegId,t);u&&i.setSession(ExlConstants.session.uistateTaskName,u);s=f.baseHref()+"Flow/"+n;r&&(s+="/SelfReg/");h=e.location.protocol+"//"+e.location.host+s;o.setWindowLocation(h)}function bt(){var n=_.find(t.flow.wizardSections,{sectionName:"Registration"});return n&&n.wizardTasks&&n.wizardTasks.length?n.wizardTasks[0]:null}function k(){if(y().taskInternalName==ExlConstants.wizardTaskInternalName.Dashboard){var n=h.defer();return s.getCurrentRegistrant().then(function(t){return t&&t.balanceDue?(l.queue.push(ExlConstants.wizardTaskInternalName.ShowSummary),l.returnToDashboard=!0):l.queue.push(ExlConstants.wizardTaskInternalName.Dashboard),n.resolve()}),n.promise}return l.queue.push(y().taskInternalName),h.when()}function kt(n){var r,i,u;l.queue.length||(t.flow.registrationType!=ExlConstants.flowRegistrationTypes.none&&t.flow.housingType!=ExlConstants.flowHousingTypes.none?et():t.flow.registrationType!=ExlConstants.flowHousingTypes.none?ut():t.flow.housingType!=ExlConstants.flowRegistrationTypes.none&&ft());r=a.currentTask();i=l.queue.indexOf(n);i>=0&&l.queue.splice(i,1);u=l.queue.indexOf(r.taskInternalName);l.queue.splice(u+1,0,n)}function ut(){l.queue.length=0;d(ExlConstants.wizardSectionName.Registration);nt()}function ft(){l.queue.length=0;d(ExlConstants.wizardSectionName.Housing);nt()}function et(){l.queue.length=0;d(ExlConstants.wizardSectionName.Registration);d(ExlConstants.wizardSectionName.Housing);nt()}function d(n){var i=_.find(t.flow.wizardSections,{sectionName:n});angular.forEach(i.wizardTasks,function(n){l.queue.push(n.taskInternalName)})}function nt(){var n=_.filter(t.flow.wizardSections,function(n){return n.inLinearFlow&&n.sectionName!==ExlConstants.wizardSectionName.Registration&&n.sectionName!==ExlConstants.wizardSectionName.Housing&&n.sectionName!==ExlConstants.wizardSectionName.Dashboard});angular.forEach(n,function(n){angular.forEach(n.wizardTasks,function(n){l.queue.push(n.taskInternalName)})})}function dt(){l.queue.length=0;i.setSession(p,l);r.$broadcast(ExlConstants.events.wizardNavChanged)}var a=this;a.currentTask=y;a.nextTask=tt;a.previousTask=it;a.getTask=v;a.getTaskList=ot;a.goToTask=g;a.demote=st;a.promote=ht;a.goToTaskByName=ct;a.reLoadTask=lt;a.clearSession=at;a.goToTaskBySetupWizardCode=vt;a.hasTaskBySetupWizardCode=yt;a.goToSection=rt;a.goToSectionByName=pt;a.switchFlow=wt;a.getFirstRegTask=bt;a.insertNextTaskByName=kt;a.createRegistrationOnlyQueue=ut;a.createHousingOnlyQueue=ft;a.createRegAndHousingQueue=et;a.killNavQueue=dt;a.addReturnTaskToQueue=k;var w="WizardNavStateParams",p="WizardNavSettings",l={queue:[],returnToDashboard:!1};r.$on("$stateChangeSuccess",function(n,t){var r=i.getSession(p);l=r&&r.queue&&r.queue.length?r:l;l.queue.length&&(l.queue[l.queue.length-1]===t.data.taskName||l.queue.indexOf(t.data.taskName)<0)&&(l.queue.length=0);i.setSession(p,l)});r.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){if(t&&l.queue.length){var u=l.queue[l.queue.length-1];t.balanceDue>0&&t.isCompleted&&u!=ExlConstants.wizardTaskInternalName.ShowSummary?(l.queue.length=l.queue.length-1,l.queue.push(ExlConstants.wizardTaskInternalName.ShowSummary),l.returnToDashboard=!0):t.balanceDue==0&&u==ExlConstants.wizardTaskInternalName.ShowSummary&&l.returnToDashboard&&(l.queue.length=l.queue.length-1,l.queue.push(ExlConstants.wizardTaskInternalName.Dashboard),l.returnToDashboard=!1);i.setSession(p,l);r.$broadcast(ExlConstants.events.wizardNavChanged)}});a.confirmNavigation=function(){var n=h.defer();return c.showModal({controller:"ModalController",bodyTemplateUrl:"App/Common/Views/UnsavedChangesWarning.html",modalcss:"small",footerTemplate:'<button class="button dark" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button> &nbsp; <button class="button secondary" ng-click="modalCtrl.close(\'Continue\')">Continue<\/button> &nbsp; ',inputs:{title:"Confirm Navigation"}}).then(function(t){t.status==="Continue"?n.resolve():n.reject()}),n.promise}}angular.module("CommonModule").service("WizardNavService",n);n.$inject=["$state","WIZARD","WebStorageFactory","$rootScope","WizardTaskStateService","DocumentService","$window","UrlService","RegistrantFactory","$q","ModalFactory"]}(),function(){"use strict";function n(n,t,i){function u(n,u,f){n||(n=i.current.data.taskName);angular.isUndefined(f)&&(f=i.params.regId);var e=[r,n,u,f];return t.get(e.join("/"),{cache:!1})}this.getData=u;var r="api/WizardTaskLayout"}angular.module("CommonModule").service("WizardTaskLayoutService",n);n.$inject=["$q","$http","$state"]}(),function(){"use strict";function n(n,t,i){function e(n){return r?i.when(r.promise).then(function(){return o(n)}):o(n)}function o(t){var r=i.defer(),e;return u[t]?r.resolve(u[t]):(e=[f,t],n.get(e.join("/")).success(function(n){u[t]=n;r.resolve(u[t])}).error(function(){r.reject()})),r.promise}function s(t,r){var e=i.defer(),o={regId:t};return r&&angular.extend(o,{taskInternalname:r}),n.post(f,o).success(function(n){e.resolve(n);delete u[t]}).error(function(){e.reject()}),e.promise}function h(t,e){if(r)return r.promise;r=i.defer();var o=[f,"MarkSubsequentTasksIncomplete"];return n.post(o.join("/"),{regId:t,taskInternalName:e}).success(function(n){r.resolve(n);delete u[t]}).finally(function(){r=null}),r.promise}function c(n){return e(n).then(function(n){var i,r;return t.flow.registrationType!=ExlConstants.flowRegistrationTypes.attendee||t.flow.isGroup||(r=_.find(t.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.Registration}),r&&angular.forEach(r.wizardTasks,function(t,u){_.find(n,{taskInternalName:t.taskInternalName})&&(i=u===r.wizardTasks.length-1?null:t)})),i?i.NextTask:void 0})}var u,f,r;this.getData=e;this.addData=s;this.getNextRegTask=c;this.markSubsequentTasksIncomplete=h;u={};f="api/WizardTaskState"}angular.module("CommonModule").service("WizardTaskStateService",n);n.$inject=["$http","WIZARD","$q"]}(),function(){"use strict";function n(n){function i(i){var r=[t,"PersonList"],u;return i&&r.push(i),u=r.join("/"),n.get(u)}function r(i){var r=[t,"ConfirmationLetter",i].join("/");return n.get(r)}function u(){var i=[t,"SendConfirmations"].join("/");return n.get(i)}function f(i){var r=[t,"SendConfirmation",i].join("/");return n.get(r)}function e(i){var r=[t,"SendAgenda",i].join("/");return n.get(r)}function o(i,r){var u=[t,"ForwardConfirmation",i].join("/");return n.get(u,{params:{email:r}})}this.getPersonList=i;this.getConfirmationLetter=r;this.sendConfirmations=u;this.sendConfirmation=f;this.sendAgenda=e;this.forwardConfirmation=o;var t="api/Confirmation"}angular.module("ConfirmationModule").service("ConfirmationService",n);n.$inject=["$http"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function h(t){var r;return t&&!t.noHotelTypeCode&&!t.noHotelOpTypeCode&&o.flow.housingType!==ExlConstants.flowHousingTypes.none&&o.isHousingOpen()&&(r=i.defer(),s.getNextRegTask(t.registrantId).then(function(i){i?r.resolve(!0):n.getAll(t.registrantId).then(function(n){n.data&&n.data.data&&n.data.data.length?r.resolve(!0):c(t).then(function(n){r.resolve(n)},function(){r.reject()})})})),r?r.promise:i.when(!0)}function c(n){var s={noHotelTypeCode:n.noHotelTypeCode,noHotelOth:n.noHotelOth},o=i.defer(),h={},c=[{value:"Reserve",text:"Reserve Room"},{value:"Later",text:"Later"}],l=c[0];return r.showModal({bodyTemplateUrl:"App/Dashboard/Views/AddReservationModal.html",footerTemplateUrl:"App/Dashboard/Views/AddReservationModalFooter.html",controller:"ModalController",inputs:{title:"Add Reservation",profile:s,selection:h,itemlist:c,selecteditem:l,choice:"Reserve",validateClose:function(){var n=this,i;n.choice==="Later"?(i=t.validateNoHotelSelection(h),i?u.displayError(i):n.close(n.choice)):n.close(n.choice)}}}).then(function(i){if(i.status==="Reserve"){o.resolve(!1);return}t.copyNoHotelToProfile(h,s);f.putNoHotelReason(n.registrantId,s).then(function(n){u.displaySuccess("No Reservation Needed: updated successfully.");e.setCurrentRegistrant(n)},function(){u.displayError("No Reservation Needed: update failed.")});o.resolve(!0)},function(){o.reject()}),o.promise}this.checkForReservation=h}angular.module("DashboardModule").service("DashboardService",n);n.$inject=["ReservationService","RoomSearchService","$q","ModalFactory","NotificationFactory","ProfileFactory","RegistrantFactory","WIZARD","WizardTaskStateService"]}(),function(){"use strict";function n(n,t,i){function r(n,r){var u={title:"Financial Summary for "+n.firstName+" "+n.lastName,cart:r};i.showModal({controller:"ModalController",bodyTemplate:'<exl-financial-summary expand="true" hide-button="true" hide-title="true" shopping-cart="modalCtrl.cart"><\/exl-financial-summary>',footerTemplate:'<button class="button secondary" ng-click="modalCtrl.close(\'Close\')">Close<\/button> &nbsp; <button type="button" class="success" exl-pay-now="{payOnly: true, shoppingCart: modalCtrl.cart}"><\/button>',modalcss:"medium",inputs:u}).then(function(n){n.status==="Pay Now"&&t.goToTaskByName(ExlConstants.wizardTaskInternalName.ShowSummary)})}this.showSummary=r}angular.module("DashboardModule").service("FinancialService",n);n.$inject=["RegistrantFactory","WizardNavService","ModalFactory"]}(),function(){"use strict";function n(n,t,i,r,u){function c(n){h=n}function l(){return h}function a(i){return o?o.promise:(o=t.defer(),s&&!i?o.resolve(s):n.get(e+"CompanyInfo").success(function(n){n.success?(o.resolve(n.data),s=n.data):o.reject(n.messages)}).finally(function(){o=null}),o.promise)}function v(n){s=n}function y(i){i||(i="");var r=t.defer();return n({method:"GET",url:e+"CompanySearch",params:{companyName:i}}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function p(i){var r=t.defer();return n({method:"GET",url:e+"CompanyValidate",params:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function w(i){var u=t.defer();return n({method:"POST",url:e+"SendPasswordEmail/"+i}).success(function(n){n.success?(r.displaySuccess("Forgot Password email sent successfully."),u.resolve(n.data)):u.reject(n.messages)}),u.promise}function b(){var i=t.defer();return n({method:"GET",url:e+"GetExhibitorsNoContacts/"}).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function k(){var i=t.defer(),r=e+"GetAllotmentData/";return n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function d(){var i=t.defer(),r=e+"GetAllotmentConfigData/";return n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function g(){return i.isLoggedIn()}function nt(){i.logout()}function tt(){var i=t.defer(),r=e+"BoostURLForRegContact/";return n.get(r).success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}),i.promise}function it(){u.showModal({bodyTemplateUrl:"App/Exhibitor/Views/ExhibitorAllotmentModal.html",footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'OK\')">Close<\/button>',controller:"ModalController",inputs:{title:"Your company's allotment summary"}}).then(angular.noop)}var f=this,e,o,s,h;f.companySearch=y;f.companyValidate=p;f.sendPasswordEmail=w;f.getCurrentExCompanyFull=a;f.setCurrentExCompanyFull=v;f.getExhibitorsNoContacts=b;f.getAllotmentData=k;f.getAllotmentConfigData=d;f.getCurrentExCompanyLight=l;f.setCurrentExCompanyLight=c;f.getBoostURLForRegContact=tt;f.showAllotmentModal=it;f.isLoggedIn=g;f.logout=nt;e="api/exhibitor/"}angular.module("ExhibitorModule").service("ExhibitorService",n);n.$inject=["$http","$q","RegistrantGroupLoginService","NotificationFactory","ModalFactory"]}(),function(){"use strict";function n(n){function i(i,r){var u={registrantId:i,subject:r},f=[t,"Preview"].join("/");return n.get(f,{params:u})}function r(){var i=[t,"Defaults"].join("/");return n.get(i)}function u(i,r,u){var f={registrantId:i,subject:r,friends:u},e=[t,"Send"].join("/");return n.post(e,f)}this.preview=i;this.defaults=r;this.send=u;var t="api/FriendInvite"}angular.module("FriendInviteModule").service("FriendInviteService",n);n.$inject=["$http"]}(),function(){"use strict";function n(n){function i(i,r){var u=[t,i];return angular.isDefined(r)&&u.push(r),n.get(u.join("/"))}function r(i,r){var u=[t,i];return n.post(u.join("/"),r)}function u(i,r){var u=[t,i,r];return n.delete(u.join("/"))}function f(i,r){var u=[t,i];return n.put(u.join("/"),r)}this.read=i;this.create=r;this.delete=u;this.update=f;var t="api/Guest"}angular.module("GuestModule").service("GuestService",n);n.$inject=["$http"]}(),function(){"use strict";function n(n,t,i){function u(u,f,e){return n.post(r(u,f),e).success(function(n){n.success&&(f&&i.loadCurrentRegistrant(),t.$broadcast(ExlConstants.events.roomOccupantChanged,{reservationId:u,registrantId:n.data.registrantID,method:"save",firstName:n.data.firstName}))})}function f(t,i,u){return n.get(r(t,i),{params:{isRegistrantId:!!u}})}function e(i,u){return n.delete(r(i,u)).success(function(n){n.success&&t.$broadcast(ExlConstants.events.roomOccupantChanged,{reservationId:i,registrantId:n.data.deletedRegistrantId,method:"delete"})})}this.save=u;this.read=f;this.delete=e;var r=function(n,t){var i=["api/ReservationOccupant",n];return angular.isDefined(t)&&i.push(t),i.join("/")}}angular.module("HousingModule").service("ReservationOccupantService",n);n.$inject=["$http","$rootScope","RegistrantFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function y(t){return n.post(c,t)}function p(t){return n.get(c,{params:{reservationIds:t}})}function a(t){var r=[c],u,i;return angular.isDefined(t)&&r.push(t),u=r.join("/"),i=function(){return n.delete(u)},l=l?l.then(i,i):i()}function w(t){return n.put(c,t)}function b(t){return n.get(c+"/BookingFees",{params:{resIds:t}})}function k(t,i,r){return n.put(c+"/"+t+"/ChangeDates",{checkIn:i,checkOut:r})}function d(t){var i=t?"/"+t:"";return n.get(c+"/All"+i)}function g(n){var f=t.defer(),i="",e;return n.occupantList?(i+='<exl-static-text id-code="WEB_PERSONNEL_REMOVE_RES_OCCUPANTS_TEXT">Are you sure you wish to cancel this reservation?  By clicking Yes, only the HOTEL ROOM RESERVATION will be cancelled for <\/exl-static-text>',e=n.occupantList.split(";"),e.length>1?(i+="the following occupants:  ",angular.forEach(e,function(n){i+=v(n)+", "}),i=i.slice(0,-2)+".  "):i+=v(e[0])+".  "):i+='<exl-static-text id-code="WEB_PERSONNEL_REMOVE_RES_NO_OCCUPANTS_TEXT">Are you sure you wish to cancel this reservation?  <\/exl-static-text>',i+='<exl-static-text id-code="WEB_PERSONNEL_REMOVE_TEXT_BOTTOM"><\/exl-static-text>',r.showModal({bodyTemplate:i,footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes<\/button>',controller:"ModalController",inputs:{title:"Cancel Reservation"}}).then(function(t){t.status?a(n.reservationId).then(function(n){n.data.success?(u.displaySuccess("Reservation successfully cancelled."),f.resolve()):f.reject(n.data.messages)}):f.reject()}),f.promise}function v(n){var t=n.split(","),i=t.length?t[0]:"",r=t.length>1?t[1]:"";return r+" "+i}function nt(){var n=t.defer(),r;return i.isHousingOpen()?exlBaseFunctions.stringEqualsIgnoreCase(i.flow.housingType,ExlConstants.flowHousingTypes.block)&&(r=[],r.push(f.getRegGroupSummary()),r.push(e.getBookingSummary()),t.all(r).then(function(t){var r=t[0],u=t[1],f=i.isSectionEnabled(ExlConstants.wizardSectionName.CAB)&&exlBaseFunctions.stringEqualsIgnoreCase(r.blockRequestSettings.blockManagementType,ExlConstants.blockManagementTypes.cab),e=i.isSectionEnabled(ExlConstants.wizardSectionName.RAB)&&exlBaseFunctions.stringEqualsIgnoreCase(r.blockRequestSettings.blockManagementType,ExlConstants.blockManagementTypes.rab),h=u.contact?u.contact.isVerified:!1;h?f?r.isHotelItemAssigned&&r.iscabMinRoomNightsValid?o.getCreateBlockConfigPolicy().then(function(t){t.requireCCG&&!r.hasSaveOnlyCCG?n.resolve(!1):n.resolve(!0)},function(){n.resolve(!1)}):n.resolve(!1):e?r.isHotelItemAssigned?s.getCurrentBlockRequest().then(function(t){exlBaseFunctions.stringEqualsIgnoreCase(t.requestStatus,ExlConstants.blockRequestStatus.guaranteed)?n.resolve(!0):n.resolve(!1)},function(){n.resolve(!1)}):n.resolve(!1):n.resolve(!0):n.resolve(!1)},function(){n.resolve(!1)})):n.resolve(!1),n.promise}function tt(){var i=t.defer();return n.get(c+"/GetUploadList").success(function(n){n.success?i.resolve(n.data):i.reject(n.messages)}).error(function(){i.reject("failed get upload list")}),i.promise}function it(i,r){var u=t.defer(),f=new FormData;return angular.forEach(r,function(n,t){f.append(t,n)}),n({url:c+"/UploadFile",method:"POST",data:f,transformRequest:angular.identity,headers:{"Content-Type":undefined}}).success(function(n){n.success?u.resolve(n.data):u.reject(n.messages)}).error(function(){u.reject("failed upload file")}),u.promise}function rt(i){var r=t.defer();return n.get(c+"/CancelImport",{params:{importRequestId:i}}).success(function(n){r.resolve(n)}).error(function(){r.reject("failed cancel import")}),r.promise}function ut(i){var r=t.defer();return n.get(c+"/ViewImport",{params:{importRequestId:i},responseType:"arraybuffer"}).success(function(n,t,i){h.processDownload(n,t,i);r.resolve(n)}).error(function(){r.reject("failed view import file")}),r.promise}function ft(){var r=c+"/DownloadTemplate",i=t.defer();return n.get(r,{responseType:"arraybuffer"}).success(function(n,t,r){h.processDownload(n,t,r);i.resolve(n)}).error(function(){i.reject("failed download excel file")}),i.promise}function et(){return n.get(c+"/Preview")}var c,l;this.create=y;this.read=p;this.delete=a;this.update=w;this.bookingFees=b;this.changeDates=k;this.getAll=d;this.cancelReservation=g;this.isHousingAvailable=nt;this.getUploadList=tt;this.downloadTemplate=ft;this.uploadList=it;this.viewImport=ut;this.cancelImport=rt;this.preview=et;c="api/Reservation"}angular.module("HousingModule").service("ReservationService",n);n.$inject=["$http","$q","WIZARD","ModalFactory","NotificationFactory","RegistrantGroupFactory","BookingFactory","CABFactory","RABFactory","DownloadService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function b(n){o.setSession(ExlConstants.session[a.isCABMode()?"roomSearchCriteriaCAB":"roomSearchCriteria"],n)}function tt(){var n=a.isCABMode()?"roomSearchCriteriaCAB":"roomSearchCriteria";return v[n]||(v[n]=o.getSession(ExlConstants.session[n]),v[n]?angular.forEach(v[n],function(n,t,i){if(angular.isString(n)){var r=moment(n);r.isValid()&&(i[t]=r.toDate())}}):v[n]=angular.copy(f[n])),v[n]}function it(){return f[a.isCABMode()?"roomSearchCriteriaCAB":"roomSearchCriteria"]}function rt(n){o.setSession(ExlConstants.session.roomSearchCriteriaFacilityFeatures,n)}function ut(){var n="roomSearchCriteriaFacilityFeatures";return y[n]||(y[n]=o.getSession(ExlConstants.session[n]),y[n]||(y[n]=angular.copy(h))),y[n]}function ft(){return h}function et(n){return t.post("api/cab/ValidateRoomNightSearch",{roomNights:n})}function ot(n){var r=angular.isObject(n)?n:angular.extend({facilityId:n},a.getRoomSearchCriteria());return k()?a.hasCABSearched(!0):i.current&&i.current.data&&i.current.data.isGradualEngagement||a.hasSearched(!0),t.post(p,r)}function st(n){var i=[p,"Inventory"].join("/"),r=angular.extend({facilityId:n},a.getRoomSearchCriteria());return t.post(i,r)}function ht(n){var i=[p,"FacilityRates"].join("/"),r=angular.extend({facilityId:n},a.getRoomSearchCriteria());return t.post(i,r)}function k(){var n=s.currentTask();return n!=null&&n.setupWizardTypeCode==ExlConstants.setupWizardTypeCode.CAB}function ct(n){var t=[];return n!=null&&n.numberOfRoomsList!=null&&angular.forEach(n.numberOfRoomsList,function(i,r){var u=n.arrivalDateList[r]?n.arrivalDateList[r]:null;t.push({dayDate:u,quantity:i})}),t}function lt(){var n=[p,"NoHotelTypes"].join("/");return t.get(n,{cache:!0})}function at(t){var i=n.defer(),r={};return l.showModal({bodyTemplateUrl:"App/Housing/Views/NoHotelModal.html",footerTemplateUrl:"App/Housing/Views/NoHotelModalFooter.html",controller:"ModalController",inputs:{title:"No reservations at this time.",profile:t,selection:r,validateClose:function(){var t=this,n=g(r);n?c.displayError(n):t.close(r)}}}).then(function(n){var r=n.status;r?(nt(r,t),i.resolve(t)):i.reject()}),i.promise}function d(n){var t="HousingHasSearched";if(angular.isDefined(n))o.setSession(t,n);else return o.getSession(t)}function vt(n){var t="HousingHasSearchedCAB";if(angular.isDefined(n))o.setSession(t,n);else return o.getSession(t)}function g(n){var t;return n.noHotelType?n.noHotelType.value===ExlConstants.noHotelTypeCodes.OwnAccommodations&&(n.noHotel?n.noHotel.value!==ExlConstants.noHotelTypeCodes.Other||n.noHotelOther||(t="You have selection 'Other' as your hotel choice.  Please supply the hotel name in the field provided."):t="If you are making your own accommodations then please select your hotel choice from the list provided."):t="Please select a no hotel reason.",t}function nt(n,t){if(n&&(t.noHotelTypeCode=n.noHotelType.value,t.noHotelOth="",n.noHotelType.value===ExlConstants.noHotelTypeCodes.OwnAccommodations)){var i=n.noHotel.value;t.noHotelOth=i===ExlConstants.noHotelTypeCodes.Other?n.noHotelOther:i}}function yt(n,t,e){var o;if(angular.isUndefined(n))throw new Error('Missing parameter "roomSearchCriteria".');if(o=f.widgetRoomSearchRedirect,o){b(n);d(!0);w&&!w.closed&&w.close();var h=t?s.getTask(t).stateName:i.current,c=o+i.href(h,e),l=["EventXL","WebReg",i.current.name,u.showCode].join("|");w=r.open(c,l)}return!!o}var a=this,p,v,y,w;a.setRoomSearchCriteria=b;a.getRoomSearchCriteria=tt;a.getRoomSearchDefaults=it;a.setRoomSearchCriteriaFacilityFeatures=rt;a.getRoomSearchCriteriaFacilityFeatures=ut;a.getRoomSearchFacilityFeaturesDefaults=ft;a.validateCABRoomNightSearch=et;a.getData=ot;a.getInventory=st;a.getNoHotelTypes=lt;a.modalNoHotel=at;a.isCABMode=k;a.getRoomNightsFromSearchCriteria=ct;a.hasSearched=d;a.hasCABSearched=vt;a.validateNoHotelSelection=g;a.copyNoHotelToProfile=nt;a.widgetRedirect=yt;a.getFacilityRates=ht;p="api/RoomSearch";v={};y={}}angular.module("HousingModule").service("RoomSearchService",n);n.$inject=["$q","$http","$state","$window","SHOW","HOUSING","WIZARD","WebStorageFactory","WizardNavService","FACILITYFEATURES","NotificationFactory","ModalFactory"]}(),function(){"use strict";function n(n,t,i){function u(i,u,f,e){var o=t.defer();return f==null||e==null?o.reject():n.get(r+"WaitlistDates",{cache:!0,params:{hotelItemId:i,reservationId:u,startDate:f,endDate:e}}).success(function(n){o.resolve(n)}).error(function(){o.reject()}),o.promise}function f(t,i,u){return n.get(r+"CancelPolicy",{cache:!0,params:{facilityId:t,regTypeGroupCode:i,resCheckInDate:u}})}function e(t,i,u,f){return t==null&&(t=0),n.get(r+"DailyRates",{cache:!0,params:{hotelItemId:t,startDate:i,endDate:u,numberOfGuests:f||1}})}function o(t){return n.get(r+"PreferenceTypes",{cache:!0,params:{hotelItemId:t}})}function s(n){var t={title:"Hotel Profile",facilityId:n,visibilityOptions:{cancellationPolicyVisible:!1,reserveRoomVisible:!1}};return i.showModal({bodyTemplate:'<exl-facility-profile facility-id="{{modalCtrl.facilityId}}" visibility-options="modalCtrl.visibilityOptions"><\/exl-facility-profile>',footerTemplate:'<button class="small dark" data-ng-click="modalCtrl.close()">Close<\/button>',modalcss:"small",inputs:t})}this.getWaitlistDates=u;this.getCancelPolicy=f;this.getDailyRates=e;this.getPreferenceTypes=o;this.displayHotelProfileModal=s;var r="api/Room/"}angular.module("HousingModule").service("RoomService",n);n.$inject=["$http","$q","ModalFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function p(){return c}function w(i,r){var u=t({client_id:c,grant_type:"password",username:i,password:r});return n.post("Token",u,l).success(function(n){a(n)})}function b(){var i=t({client_id:c,grant_type:"refresh_token",refresh_token:o.getSession(ExlConstants.auth.refreshToken)});return n.post("Token",i,l).success(function(n){a(n,!0)})}function a(n,t){var e=n[ExlConstants.auth.tokenName],s=n[ExlConstants.auth.refreshToken],h=n[ExlConstants.auth.issuedUtc],c=n[ExlConstants.auth.refreshTtl],r=n[ExlConstants.auth.flowCode],u=y(e,s,h,c,r);return u&&(v(n[ExlConstants.auth.regId],n[ExlConstants.auth.userName]),n[ExlConstants.auth.regId]&&(t||f.flow&&f.flow.flowCode!=r||i.$broadcast(ExlConstants.events.registrantLogin,n[ExlConstants.auth.regId])),n[ExlConstants.auth.regGrpId]&&o.setSession(ExlConstants.auth.regGrpId,n[ExlConstants.auth.regGrpId]),n[ExlConstants.auth.regGrpName]&&o.setSession(ExlConstants.auth.regGrpName,n[ExlConstants.auth.regGrpName])),u}function v(n,t){n&&o.setSession(ExlConstants.auth.regId,n);t&&o.setSession(ExlConstants.auth.userName,t)}function k(){return o.getSession(ExlConstants.auth.tokenName)}function y(n,t,i,r,u){var f=!!n;return f&&(o.setSession(ExlConstants.auth.tokenName,n),o.setSession(ExlConstants.auth.refreshToken,t),o.setSession(ExlConstants.auth.issuedUtc,i),o.setSession(ExlConstants.auth.refreshTtl,r),s.setTokenTimeoutWarning(),o.setSession(ExlConstants.auth.flowCode,u)),f}function d(){var n,t;if(s.cancelTokenTimeoutWarning(),s.getToken()&&(n=moment(o.getSession(ExlConstants.auth.issuedUtc)),t=moment.duration({seconds:o.getSession(ExlConstants.auth.refreshTtl)}),n.isValid()&&t)){var i=moment.duration({minutes:1}),u=n.add(t).subtract(i),f=Math.max(0,u.diff(moment(),"ms"));h=r(function(){e.displayWarning("Your session will timeout within "+i.humanize()+", due to inactivity.")},f)}}function g(){h&&(r.cancel(h),h=null)}function nt(){return o.getSession(ExlConstants.auth.flowCode)}var s=this,h,c,l;s.getTokenClientId=p;s.login=w;s.refresh=b;s.setAuthResponse=a;s.setRegUser=v;s.getToken=k;s.setToken=y;s.setTokenTimeoutWarning=d;s.cancelTokenTimeoutWarning=g;s.getFlowCode=nt;c=["EventXL","WebReg",u.showCode].join("|");l={headers:{"Content-Type":"application/x-www-form-urlencoded"}}}angular.module("LoginModule").service("LoginService",n);n.$inject=["$http","$httpParamSerializer","$rootScope","$timeout","SHOW","WIZARD","NotificationFactory","WebStorageFactory"]}(),function(){"use strict";function n(n,t){function i(i){var r=n.flow.isGroupIndividual;return r?t.getGroupIndividualRegistrants(i):t.getAllRegistrants()}this.loadRegistrants=i}angular.module("LoginModule").service("PersonSwitcherService",n);n.$inject=["WIZARD","RegistrantFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function g(i,r){var u=t.defer();return n.post("api/registrantgroup/login",{userName:i,password:r}).success(function(n){n.success?u.resolve(n.data):(w(!0),u.reject(n.messages))}),u.promise}function nt(i){var r=t.defer(),u="api/registrantgroup/CreateAuthToken/"+i;return n.get(u).success(function(n){n.success?(ut(),r.resolve(n.data)):(w(!0),r.reject(n.messages))}),r.promise}function tt(){var n=d();return k()&&n&&n>0}function p(){r.cancelTokenTimeoutWarning();u.clearSession();rt()}function b(){var n=e&&e.flow&&!exlBaseFunctions.isNullOrWhiteSpace(e.flow.logoutURL)?e.flow.logoutURL:o;v.setWindowLocation(n)}function it(n){c.handleReturn(n).then(function(t){t&&(n+=n.indexOf("?")>=0?"&":"?",n+="RegistrantId="+t);p();v.setWindowLocation(n)},function(){p();s.displayError("Could not redirect back to Engage. Redirecting to site logout page in 5 seconds.");h(function(){b()},5e3)})}function w(n){var t=function(){if(n){p();return}var t=c.getReturnUrl();t?it(t):(p(),b())};i.$broadcast(ExlConstants.events.logoutStart,t).defaultPrevented||t()}function k(){return r.getToken()}function d(){return u.getSession(ExlConstants.auth.regGrpId)}function rt(){angular.forEach(ExlConstants.integration,function(n){u.setSession(n,null)})}function ut(){f.clearCurrentBooking();l.resetDataMembers();a.resetDataMembers()}var y=this;y.login=g;y.createBookingAuthToken=nt;y.getToken=k;y.getRegGrpId=d;y.logout=w;y.isLoggedIn=tt}angular.module("LoginModule").service("RegistrantGroupLoginService",n);n.$inject=["$http","$q","$rootScope","LoginService","WebStorageFactory","BookingFactory","WIZARD","LOGOUTURL","NotificationFactory","$timeout","EngageService","PersonnelFactory","CompletedPersonnelFactory","UrlService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function p(o,h){var c={title:"Welcome!",profile:{email:"",demographics:{}},items:v,forgotPasswordItems:l,createNewItems:s,enableFacebookLogin:y,defaultTab:o,defaultStaticText:h};return t.showModal({bodyTemplateUrl:"App/Login/Views/RegistrantLogin.html",footerTemplateUrl:"App/Login/Views/RegistrantLoginFooter.html",controller:"RegistrantLoginModalController",modalcss:"small",inputs:c}).then(function(t){var s={},h,a,c,l,o;if(t.data&&t.data.regId&&(s.regId=t.data.regId),t.status===200)if(u&&u.flow&&u.flow.flowCode==t.data.flowCode){for(h=[],a=n.current.data.config,a.allowMultipleRegPerBooking&&t.data.regCount>1&&h.push(ExlConstants.wizardTaskInternalName.GroupSummary),h.push(ExlConstants.wizardTaskInternalName.Dashboard),c=null,l=0;l<h.length;l++)if(c=e.getTask(h[l]),c)break;c?e.goToTask(c,s):e.goToTask(e.currentTask(),s,!0)}else i.setSession(ExlConstants.auth.uistateRegId,t.data[ExlConstants.auth.regId]),r.location.assign(f.baseHref()+"Flow/"+t.data.flowCode);else t.status==="createNew"&&(o=e.currentTask(),o&&(o.taskInternalName===ExlConstants.wizardTaskInternalName.ShowItemGE||o.taskInternalName===ExlConstants.wizardTaskInternalName.RoomBrowse||o.taskInternalName===ExlConstants.wizardTaskInternalName.RoomDetail)||o.taskInternalName===ExlConstants.wizardTaskInternalName.RoomSearch?e.goToTask(o,s,!0):e.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard,s));return t})}var l,s,a,y;this.showModal=p;var h="REGISTRANT_LOGIN",c=o.createFieldDetailTextBox("email",h),v=[];v.push(c);l=[];l.push(c);s=[];s.push(o.createFieldDetailTextBox("firstName",h));s.push(o.createFieldDetailTextBox("lastName",h));s.push(c);a=u.tasks[ExlConstants.wizardTaskInternalName.Profile];y=a?a.config.enableFacebookLogin:!1}angular.module("LoginModule").service("RegistrantLoginModalService",n);n.$inject=["$state","ModalFactory","WebStorageFactory","$window","WIZARD","DocumentService","WizardNavService","FieldDetailFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){function it(n,t){return c.login(n,t).error(function(){nt(!0)})}function rt(){return!!d()}function k(){c.cancelTokenTimeoutWarning();h.clearSession();v.setCurrentRegistrant(null);ct()}function g(){var n=o&&o.flow&&!exlBaseFunctions.isNullOrWhiteSpace(o.flow.logoutURL)?o.flow.logoutURL:s;a.setWindowLocation(n)}function ut(n){y.handleReturn(n).then(function(t){t&&(n+=n.indexOf("?")>=0?"&":"?",n+="RegistrantId="+t);k();a.setWindowLocation(n)},function(){k();p.displayError("Could not redirect back to Engage. Redirecting to site logout page in 5 seconds.");f(function(){g()},5e3)})}function nt(n){var t=function(){if(n){k();return}var t=y.getReturnUrl();t?ut(t):(k(),g())};r.$broadcast(ExlConstants.events.logoutStart,t).defaultPrevented||t()}function d(){return c.getToken()}function ft(){return h.getSession(ExlConstants.auth.userName)}function et(){return h.getSession(ExlConstants.auth.regId)}function ot(){return h.getSession(ExlConstants.auth.regGrpName)}function tt(n,i,r){var v=n||"Dashboard",s=i?"1":"0",h=e.location.href.substring(0,e.location.href.indexOf("#")),l=t({client_id:c.getTokenClientId(),redirect_uri:h,register:s}),f=w.baseHref()+"api/account/externallogin/Facebook/?"+l,o;r&&(f+="&forceNew="+r);o=u.params.regId;o&&(f+="&regId="+o,f+="&authToken="+d());a.setWindowLocation(f,!0)}function st(t){var r=i.defer(),u={provider:t.provider,externalAccessToken:t.externalAccessToken};return n.post("api/account/ObtainLocalAccessToken",u).success(function(n){r.resolve(n)}).error(function(n){r.reject(n)}),r.promise}function ht(){var i="A record with your email already exists.  Please sign in to that record first.  <p><\/p>You may override this check and create a new record by clicking this message",n=a.getFragment(),t;n.isregistered&&(n.isregistered==="False"&&n.errormsg?(l.goToTaskByName("Dashboard"),f(function(){var t=function(n,t){return t||tt(ExlConstants.wizardTaskInternalName.Dashboard,1,1),!0},r={type:"error",body:n.errormsg=="multiple"?i:decodeURIComponent(n.errormsg),bodyOutputType:"trustedHtml",clickHandler:t};p.displayToast(r)},1e3)):n.isregistered==="True"&&(t={provider:n.provider,externalAccessToken:n.external_access_token},st(t).then(function(t){var i={regId:t.regId},r=n.taskname||"Dashboard";l.goToTaskByName(r,i)})))}function ct(){angular.forEach(ExlConstants.integration,function(n){h.setSession(n,null)})}function lt(){var n=a.getQueryString(),f=n&&(n.passthrough||n.bkgid&&n.reggrpid),e=h.getSession(ExlConstants.integration.AutoLogin),t,i,r,u;f&&!e&&(t={params:{passThrough:n.passthrough||"",passThroughBookingId:n.bkgid||"",passThroughRegGroupId:n.reggrpid||""}},h.setSession(ExlConstants.integration.AutoLogin,t),n.passthrough=null,n.bkgid=null,n.reggrpid=null,a.resetQueryStringWindow(n));i=n&&n.sicode;i&&(n.sicode=null,n.siqty=null,n.sipromote=null,a.resetQueryStringWindow(n));r=n&&n.firstname&&n.lastname&&n.email;r&&(u={params:{crossShowFirstName:n.firstname||"",crossShowLastName:n.lastname||"",crossShowEmail:n.email||"",crossShowCode:n.showcode||""}},h.setSession(ExlConstants.integration.CrossShow,u),n.firstname=null,n.lastname=null,n.email=null,n.showcode=null,a.resetQueryStringWindow(n))}function at(t){var i,r;if(!a.isWindowLocationChanging()&&(i=h.getSession(ExlConstants.integration.AutoLogin),i)&&i.params){var u=i.params.passThrough,f=i.params.passThroughBookingId,e=i.params.passThroughRegGroupId;if(u)return(r=["api/Account/PassThrough",u],t)?n.get(r.join("/"),{params:{loc:t}}):n.get(r.join("/"));if(f&&e)return r=["api/Account/PassThroughBooking",f,e],n.get(r.join("/"))}}function vt(){h.setSession(ExlConstants.integration.AutoLogin,null)}function yt(){if(!a.isWindowLocationChanging()){var t=h.getSession(ExlConstants.integration.CrossShow);if(t)return t.params?n.get("api/Account/CrossShowLogin",{params:t.params}):void 0}}var b=this;b.login=it;b.logout=nt;b.isLoggedIn=rt;b.getToken=d;b.getUserName=ft;b.getRegId=et;b.getRegGroupName=ot;b.signInFacebook=tt;b.checkForExternalLogin=ht;b.processQueryString=lt;b.autoLogin=at;b.clearAutoLoginParams=vt;b.crossShowLogin=yt}angular.module("LoginModule").service("RegistrantLoginService",n);n.$inject=["$http","$httpParamSerializer","$q","$rootScope","$state","$timeout","$window","WIZARD","LOGOUTURL","WebStorageFactory","LoginService","WizardNavService","UrlService","RegistrantFactory","EngageService","NotificationFactory","DocumentService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function c(i,r){var u=t.defer();return n.post("api/marketingcode/login",{userName:i,password:r}).success(function(n){n.success?u.resolve(n.data):(s(!0),u.reject(n.messages))}),u.promise}function l(){return!!h()}function o(){f.cancelTokenTimeoutWarning();i.clearSession()}function a(){var n=u.baseHref()+"MarketingCodeUtility";r.setWindowLocation(n)}function s(n){var t=function(){if(n){o();return}o();a()};t()}function h(){return f.getToken()}function v(){return i.getSession(ExlConstants.auth.userName)}function y(){var n=u.baseHref();r.setWindowLocation(n)}var e=this;e.login=c;e.logout=s;e.isLoggedIn=l;e.getToken=h;e.getUserName=v;e.goToFlowSelection=y}angular.module("MarketingCodeModule").service("MarketingCodeLoginService",n);n.$inject=["$http","$q","WebStorageFactory","UrlService","DocumentService","LoginService"]}(),function(){"use strict";function n(n,t,i){function u(){var t=r+"layout";return n.get(t,{cache:!0})}function f(i,u,f){var e=t.defer(),o=f,s;return o||(o=1),s=r+"search/"+i+"/"+o,n.post(s,u).success(function(n){n.success?e.resolve(n.data):e.reject(n.messages)}),e.promise}function e(i,u){var f=t.defer(),e=u,o;return e||(e=1),o=r+"searchByEmail/"+e,n.post(o,{email:i}).success(function(n){n.success?f.resolve(n.data):f.reject(n.messages)}),f.promise}function o(u,f,e){var o=t.defer(),s;return e=e||i.params.regId||"",s=r+"select"+(e?"/"+e:""),n.post(s,{member:u,profile:f}).success(function(n){n.success?o.resolve(n.data):o.reject(n.messages)}),o.promise}function s(){var t=r+"SearchResultLayout";return n.get(t,{cache:!0})}this.getLayout=u;this.search=f;this.searchByEmail=e;this.post=o;this.getSearchResultLayout=s;var r="api/member/"}angular.module("MemberModule").service("MemberService",n);n.$inject=["$http","$q","$state"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(i){var r=t.defer();return n.get(e+"/"+i,{cache:!0}).success(function(n){n.success?(n.data.regTypeList=[],angular.forEach(n.data.regTypeGroups,function(t){n.data.regTypeList=n.data.regTypeList.concat(t.regTypeList)}),r.resolve(n.data)):r.reject(n.messages)}).error(function(){r.reject()}),r.promise}function s(t,i,r){r=r||null;var u=[e,t,i].join("/");return n.put(u,r)}function h(t,i){i=i||null;var r=[e,t].join("/");return n.put(r,i)}function c(){var e=t.defer(),n=i.getSession(ExlConstants.session.geShowItem),o;return n?(o=n.data?n.data.qty:1,f.processShowItem(n,o).then(function(t){r.displaySuccess(n.description+" has been added to your cart");u.setCurrentRegistrant(t);i.removeSessionItem(ExlConstants.session.geShowItem);e.resolve(t)},function(t){r.displayError(n.description+"could not be added to your cart.  Please contact customer service for assistance");e.reject(t)})):e.resolve(),e.promise}this.getData=o;this.setRegType=s;this.saveDemos=h;this.addGEShowItem=c;var e="api/RegType"}angular.module("RegTypeModule").service("RegTypeService",n);n.$inject=["$http","$q","WebStorageFactory","NotificationFactory","RegistrantFactory","ShowItemService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p){function d(n){if(h.logout(!0),c.logout(!0),nt=null,!n){var t=tt("HomeURL");exlBaseFunctions.isNullOrWhiteSpace(t)&&(t=e&&e.flow&&!exlBaseFunctions.isNullOrWhiteSpace(e.flow.logoutURL)?e.flow.logoutURL:s?s:o);y.setWindowLocation(t)}}function tt(n){if(f.settings)for(var t=0;t<f.settings.length;t++)if(f.settings[t].key.toUpperCase()==n.toUpperCase())return f.settings[t].value;return null}function ft(i){!i&&b&&(i=b);var r=t.defer();return n({method:"GET",url:k+"GetResults",params:i}).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function et(n,t,i){b.registrantId=n||0;b.firstName=t||"";b.lastName=i||""}function ot(){return b}function st(){b.registrantId=0;b.firstName="";b.lastName=""}function rt(n){it=n;p.$broadcast(ExlConstants.events.selfRegCurrentRegistrantChanged,n)}function ht(){return it}function ct(i){i.isExhibitor||d(!0);var r=t.defer();return n({method:"GET",url:k+"ValidateRegistrant/",params:i}).success(function(n){n.success?(r.resolve(n.data),rt(i)):r.reject(n.messages)}),r.promise}function lt(){return l.getFlowCode()}function at(n){f.isSelfReg&&n>0&&i.external&&i.external.ProcessPrint(n)}function vt(i){var r=t.defer();return n.get(k+"/BadgeCount/"+i).success(function(n){n.success?r.resolve(n.data):r.reject(n.messages)}),r.promise}function yt(n,t){a.buildCartXml(n,t).then(function(n){f.isSelfReg&&i.external&&v(function(){i.external.ProcessPayment(n,nt)},0)},function(){})}function ut(n){g=n}function pt(n){var t=n||1e4;v(function(){if(g){ut(!1);return}d()},t)}function wt(n){nt=n}var w=this,k,b,it,g,nt;w.logout=d;w.findSetting=tt;w.doSearch=ft;w.setSearchCriteria=et;w.getSearchCriteria=ot;w.clearSearchCriteria=st;w.setSelectedRegistrant=rt;w.getSelectedRegistrant=ht;w.validateRegistrant=ct;w.getEditRegFlowCode=lt;w.verifyAndPrint=at;w.getBadgeCount=vt;w.processCreditCardPayment=yt;w.timedLogout=pt;w.timedLogoutCancelled=ut;w.setFailedPaymentRedirectUrl=wt;k="api/selfreg/";b={registrantId:0,firstName:"",lastName:""};g=!1}angular.module("SelfRegModule").service("SelfRegService",n);n.$inject=["$http","$q","$window","WebStorageFactory","WizardNavService","SELFREGSETTINGS","WIZARD","LOGOUTURL","LOGOUTURLSELFREG","RegistrantLoginService","RegistrantGroupLoginService","LoginService","PaymentService","$timeout","UrlService","$rootScope"]}(),function(){"use strict";function n(n,t,i){function r(r){var u=n.defer(),f;return t.getProfile().then(function(n){f=n;var t={title:"Follow up Questions",fieldDetailList:_.pluck(r.demographics,"fieldDetail"),profile:f};i.showModal({bodyTemplateUrl:"App/ShowItem/Views/ShowItemDemographicModal.html",footerTemplate:'<button class="button secondary" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button> <button class="button dark" ng-click="modalCtrl.save()">OK<\/button>',controller:"ShowItemDemographicModalController",modalcss:"small",inputs:t}).then(function(n){n.status==="OK"?u.resolve(f):u.reject()})}),u.promise}this.showModal=r}angular.module("ShowItemModule").service("ShowItemDemographicModalService",n);n.$inject=["$q","ProfileFactory","ModalFactory"]}(),function(){"use strict";function n(n,t,i){function o(u,f){var e=i.defer(),o;return u=u||0,f=f||0,o=[r,t.current.data.taskName,u,f].join("/"),n.get(o,{cache:!0}).success(function(n){var r,u,f,o,s,t,i;for(n.allShowItems=[],r=0;r<n.allDays.groups.length;r++)for(u=n.allDays.groups[r],f=0;f<n.days.length;f++)for(o=n.days[f],s=0;s<o.groups.length;s++)if(t=o.groups[s],t.groupOrder==u.groupOrder)for(i=0;i<t.timeSlots.length;i++)o.day?u.timeSlots.push(t.timeSlots[i]):u.timeSlots.splice(0,0,t.timeSlots[i]),n.allShowItems=n.allShowItems.concat(t.timeSlots[i].showItems);angular.forEach(n.allShowItems,function(n){n.currentFee=_.find(n.fees,"dateType","current")});n.quickSearchFilters=_.filter(n.filters,{filterTypeCode:"QUICKSEARCH"});e.resolve(n)}),e.promise}function s(u,f,e){var o=i.defer(),s=[r,"process",u.showItemId,f,t.params.regId,u.regTransactionId].join("/");return n.post(s,e||null).success(function(n){n.success?o.resolve(n.data):o.reject(n.messages)}),o.promise}function h(n){return exlBaseFunctions.stringEqualsIgnoreCase(n.regTranState,"COM")?n.isVisibleConf?!exlBaseFunctions.isNullOrWhiteSpace(n.showItemTypeCode)&&!exlBaseFunctions.stringEqualsIgnoreCase(n.showItemTypeCode,ExlConstants.showItemTypeCodes.REG)&&!exlBaseFunctions.stringEqualsIgnoreCase(n.showItemTypeCode,ExlConstants.showItemTypeCodes.HOU)&&!exlBaseFunctions.stringEqualsIgnoreCase(n.showItemTypeCode,ExlConstants.showItemTypeCodes.GUE):!1:!1}function c(){var t=r+"/GEStatus";return n.get(t,{cache:!0})}function l(t,i){var u=r+"/Fees/"+t+"/"+i;return n.get(u)}function a(t,i){var u=[r,"Likes",t,i].join("/");return n.get(u)}function v(n){var t={};return angular.copy(n,t),t.allShowItems=n.allShowItems,u(t.allDays.groups,t.allShowItems),angular.forEach(t.days,function(n){u(n.groups,t.allShowItems)}),t}function u(n,t){angular.forEach(n,function(n){angular.forEach(n.timeSlots,function(n){angular.forEach(n.showItems,function(i,r){var u=_.find(t,{showItemId:i.showItemId});u&&(n.showItems[r]=u)})})})}function y(t){var i=[r,"QuickFilters",t].join("/");return n.get(i,{cache:!0})}function p(n,t){var r,i,u,f;if(n.demographics.length){for(r=!0,i=0;i<n.demographics.length;i++)u=n.demographics[i],f=_.find(t.demographicFeedback,function(n){return n.columnName.toUpperCase()==u.fieldDetail.fieldName.toUpperCase()}),f.value||(r=!1);return r}return!1}function w(){var t=[r,"Demographics"].join("/");return n.get(t,{cache:!0})}this.getShowItems=o;this.processShowItem=s;this.isValidAgendaItem=h;this.likesCache=f;this.getGEStatus=c;this.getFees=l;this.getLikes=a;this.copyShowItemInfo=v;this.quickFilters=y;this.selectedQuickFilter=e;this.isDemographicAnswered=p;this.getDemographics=w;var r="api/ShowItem",f,e}angular.module("ShowItemModule").service("ShowItemService",n);n.$inject=["$http","$state","$q","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function v(){return e.getSession(c)||!1}function p(){var n=!v();e.setSession(c,n);r.$broadcast(ExlConstants.events.staticTextEditModeToggled,n)}function s(n){if(angular.isDefined(n))e.setSession(l,n);else return e.getSession(l)}function w(t){var i=[o,"Login"].join("/");return n.post(i,JSON.stringify(t))}function b(){var i=[o,"Push"].join("/"),t={};return t[a]=s(),n.get(i,null,{headers:t})}function k(){var t=[o,"Password"].join("/");return n.post(t)}function d(){var t=[o,"Password"].join("/");return n.delete(t)}function g(){var t=[o].join("/");return n.get(t,{cache:h})}function nt(t,i){var u=[o].join("/"),r={};return r[a]=s(),n.post(u,{idCode:angular.uppercase(t),content:i},{headers:r})}function tt(){h.removeAll()}function y(n,t){var i,r,e,o,s,h;angular.isUndefined(n)&&(n="flow");i=[];switch(n){case"page":r=u.current;r&&(e=r.data,e&&(o=e.taskName,o&&i.push(angular.uppercase("Task:"+o))));case"flow":f&&(s=f.flow,s&&(h=s.flowCode,angular.isDefined(h)&&i.push(angular.uppercase("Flow:"+h))))}return i.push(t),i.reverse(),i.join("_")}function it(n,t,r){var f=i("filter"),u=f(n,{key:y(r||"flow",t)},!0);return u.length||(u=f(n,{key:t},!0)),u.length===1?u[0].value||"":null}var h;this.isEditMode=v;this.toggleEditMode=p;this.masterAuthKey=s;this.login=w;this.pushToProd=b;this.createPassword=k;this.clearPassword=d;this.getData=g;this.setData=nt;this.invalidateCache=tt;this.createQualifiedGranularIDCode=y;this.filterData=it;var c="StaticTextEditMode",l="StaticTextMasterAuthorization",o="api/StaticText",a="X-EXL-STATIC-TEXT-AUTH-TOKEN";h=t("exlStaticText")}angular.module("StaticTextModule").service("StaticTextService",n);n.$inject=["$http","$cacheFactory","$filter","$rootScope","$state","WIZARD","WebStorageFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function v(){var r,s,c,t;if(f.resetNonFatalErrors(),h.hideReservationFees=l&&l.hideReservationFees,r=f.getSourceSubBlock(),r==null)o.goToTaskByName(ExlConstants.wizardTaskInternalName.CABRoomSearch);else{for(s=[],s.push(u.getRoomNightCapacityPerDay(moment.utc(i.inv.beginDate).toDate(),moment.utc(i.inv.endDate).toDate())),s.push(f.getCreateBlockConfigPolicy()),n.all(s).then(function(n){h.roomNightCapacity=n[0];h.configPolicy=n[1];h.roomSearchCriteria=e.getRoomSearchCriteria();var t=e.getRoomNightsFromSearchCriteria(h.roomSearchCriteria);f.setMaxRooms(t,h.roomNightCapacity).then(function(){h.roomNights=t})}),u.getHasSaveOnlyCCG().then(function(n){h.groupHasSaveOnlyCCG=n}),c=new Array(r.maxOccupancy),t=0;t<c.length;t++)c[t]=t;h.subBlockMaxOccupancyIterator=c;h.sourceSubBlock=r}}function y(){angular.forEach(h.roomNights,function(n){n.editedQuantity=n.quantity})}function p(n){if(!h.disableInput){h.disableInput=!0;switch(n){case h.events.edit:y();h.currentEventState=n;h.disableInput=!1;break;case h.events.save:var t=[];angular.forEach(h.roomNights,function(n){t.push({dayDate:n.dayDate,quantity:n.editedQuantity})});f.validateInventoryUpdate(t).then(function(n){h.roomNights=n;f.setMaxRooms(h.roomNights,h.roomNightCapacity).then(function(){h.currentEventState=null;h.disableInput=!1})});break;case h.events.cancel:h.currentEventState=null;h.disableInput=!1;break;default:h.disableInput=!1}}}function w(){var n="Confirm";return c()&&(n="Create My Block"),n}function c(){var n=!1;return h.configPolicy!=null&&h.configPolicy.requireCCG&&!h.groupHasSaveOnlyCCG&&(n=!0),n}function b(){if(c())if(h.agreement)a();else{s.displayError("Please check the agreement box below to indicate that you agree to the cancellation policy.");return}else a()}function a(){k().then(function(){f.setSourceSubBlock(null);f.getNonFatalErrors().length==0&&s.displaySuccess("Your rooms have been held successfully.");o.goToTaskByName(ExlConstants.wizardTaskInternalName.ManageRooms)})}function k(){var t=n.defer();return d().then(function(){g().then(function(){nt().then(function(){},function(){}).finally(function(){t.resolve()})},function(){t.reject()})},function(){t.reject()}),t.promise}function d(){var t=n.defer();return f.validateMinRoomNights(h.roomNights).then(function(){t.resolve()},function(n){if(n&&n.length)t.reject(n);else{var i="";r.showModal({bodyTemplateUrl:"App/CAB/Views/MinRoomNightsModal.html",footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'CANCEL\')">Add More<\/button><button class="button small dark" ng-click="modalCtrl.close(\'OK\')">Continue<\/button>',controller:"ModalController",inputs:{title:"Minimum Rooms Requirement",minRooms:h.configPolicy.minRoomsRequested}}).then(function(n){n&&n.status==="OK"&&(i=n.status)}).finally(function(){i=="OK"?t.resolve():t.reject()})}}),t.promise}function g(){var t=n.defer();return f.createSubBlock().then(function(n){n!=null&&f.addNonFatalErrors(n);t.resolve()},function(n){t.reject(n)}),t.promise}function nt(){var t=n.defer();return f.moveInventory(h.roomNights).then(function(n){n!=null&&f.addNonFatalErrors(n);t.resolve()},function(n){f.addNonFatalErrors(n);t.reject(n)}),t.promise}var h=this,l=t.current.data.config;h.disableInput=!1;h.roomNightEventHandler=p;h.events={edit:"EDIT",save:"SAVE",cancel:"CANCEL"};h.currentEventState=null;h.groupHasSaveOnlyCCG=!1;h.acceptanceRequired=c;h.labelButtonNext=w;h.next=b;v()}angular.module("CABModule").controller("CreateBlockTaskController",n);n.$inject=["$q","$state","SCHEDULES","ModalFactory","RegistrantGroupFactory","CABFactory","RoomSearchService","WizardNavService","NotificationFactory"]}(),function(){"use strict";function n(n){var t=this;t.LOGOUTURL=n}angular.module("CommonModule").controller("BookingLockController",n);n.$inject=["LOGOUTURL"]}(),function(){"use strict";function n(n,t,i,r){var u=this;u.isSelfReg=n;u.homePage=i.location.protocol+"//"+i.location.host+t.baseHref();u.LOGOUTURL=r}angular.module("CommonModule").controller("ErrorController",n);n.$inject=["ISSELFREG","DocumentService","$window","LOGOUTURL"]}(),function(){"use strict";function n(n,t,i,r,u,f){var e=this;e.templates=r;angular.extend(e,u);e.dismiss=i.dismiss;e.close=function(n,t){var r={status:n};t?t.promise().success(function(){var n=this;t.callback.apply(n,arguments)&&i.close(r)}):i.close(r)};e.print=function(n){f(function(){var i=t.open("","_blank","width=100,height=100,top=0,left=0,toolbar=no,titlebar=no,status=no,scrollbars=no,resizable=no,menubar=no,location=no",!0),r=i.document;r.title=document.title;angular.element(r.head).append("<style>body { display: none; } @media print { body { display: block; } .hide-for-print { display: none; } }<\/style>");angular.element(r.body).html(angular.element(n.target).closest(".reveal-modal").find(".body").html());i.focus();i.print();i.close()},0)}}angular.module("CommonModule").controller("ModalController",n);n.$inject=["$scope","$window","$modalInstance","templates","inputs","$timeout"]}(),function(){"use strict";function n(n,t,i,r,u,f){var e=this;e.profile={password:""};e.requestToken=function(){i.showModal({bodyTemplate:'<exl-field-detail item="modalCtrl.fdEmail" profile="modalCtrl.profile"><\/exl-field-detail>',footerTemplate:'<button type="button" class="dark" data-ng-click="modalCtrl.validateSend(frmModal)">Send Reset Link<\/button><button type="button" data-ng-click="modalCtrl.close()">Cancel<\/button>',inputs:{title:"Forgot Password",profile:{},fdEmail:u.createFieldDetailTextBox("email","RESET_PASSWORD"),validateSend:function(i){var u=this,r;t.checkFormIsValid(i)&&(r=u.profile.email,r&&n.sendPasswordEmail(r).then(function(){u.close()}))}}})};e.save=function(){e.formResetPass.$invalid||(e.showWait=!0,e.showSuccess=!1,n.resetPassword(e.token,e.profile.password).then(function(n){e.wasSaved=!0;r.displaySuccess("Your password has been changed successfully.");n&&n.flowCode&&n.regId&&f.switchFlow(n.flowCode,n.regId,!1,null)}).finally(function(){e.showWait=!1}))};e.closeAlert=function(){e.showAlert=!1}}angular.module("CommonModule").controller("ResetPasswordController",n);n.$inject=["PasswordService","DocumentService","ModalFactory","NotificationFactory","FieldDetailFactory","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){var l=this,v,a;l.pageTitleIdCode="WEB_ATT_PAGE_TITLE";t&&t.flow||s.process();n.$on("$stateChangeSuccess",function(n,h){var v,p,y,a,c;s.process();v=h.data;v&&(c=v.taskName,c&&(p=t.tasks[c],l.pageTitleIdCode="WEB_ATT_PAGE_TITLE",l.pageTitle=p.taskDisplayName,l.hideDashboardButton=!1,l.hideShoppingCart=!t.flow.isOpen,u.isLoggedIn()&&t&&t.flow&&o.getSession(ExlConstants.auth.uistateRegId)&&(y=o.getSession(ExlConstants.auth.uistateRegId),o.setSession(ExlConstants.auth.uistateRegId,null),a={regId:y},c=o.getSession(ExlConstants.session.uistateTaskName),o.setSession(ExlConstants.session.uistateTaskName,null),c&&i.getTask(c)?i.goToTaskByName(c,a):l.taskDashboard?i.goToTask(l.taskDashboard,a):i.goToTask(i.currentTask(),a,!0),r.$broadcast(ExlConstants.events.registrantLogin,y)),u.isLoggedIn()&&f.getCurrentRegistrant(),e.refreshBookingFinancials(),r.$broadcast("wizardTaskChange",c)))});l.taskDashboard=i.getTask(ExlConstants.wizardTaskInternalName.Dashboard);l.goToDashboard=function(){i.goToTask(l.taskDashboard)};l.isCurrentBrowser=function(){var n={},t=h.navigator.userAgent;return n.ISFF=t.indexOf("Firefox")!=-1,n.ISOPERA=t.indexOf("Opera")!=-1,n.ISCHROME=t.indexOf("Chrome")!=-1,n.ISSAFARI=t.indexOf("Safari")!=-1&&!n.ISCHROME,n.ISWEBKIT=t.indexOf("WebKit")!=-1,n.ISIE=t.indexOf("Trident")>0||navigator.userAgent.indexOf("MSIE")>0,n.ISIE6=t.indexOf("MSIE 6")>0,n.ISIE7=t.indexOf("MSIE 7")>0,n.ISIE8=t.indexOf("MSIE 8")>0,n.ISIE9=t.indexOf("MSIE 9")>0,n.ISIE10=t.indexOf("MSIE 10")>0,n.ISOLD=n.ISIE6||n.ISIE7||n.ISIE8,n.ISIE11UP=t.indexOf("MSIE")==-1&&t.indexOf("Trident")>0,n.ISIE10UP=n.ISIE10||n.ISIE11UP,n.ISIE9UP=n.ISIE9||n.ISIE10UP,n.ISIE11UP||n.ISFF||n.ISCHROME||n.ISSAFARI};l.isCurrentBrowser()||(v='<button class="button secondary" ng-click="modalCtrl.close(\'Close\')">Continue<\/button> &nbsp; ',a={},a.title="Browser Requirements",c.showModal({controller:"ModalController",bodyTemplateUrl:"App/Common/Views/BrowserReqDirective.html",modalcss:"medium",footerTemplate:v,inputs:a}))}angular.module("CommonModule").controller("WizardFlowController",n);n.$inject=["$scope","WIZARD","WizardNavService","$rootScope","RegistrantLoginService","RegistrantFactory","BookingFactory","WebStorageFactory","ScheduledDownTimeFactory","$window","ModalFactory","ISSELFREG"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){var c=this,l;o.hasReturnUrl()&&t(function(){u.logout()},1e4);c.isSelfReg=e;c.showcode=h.showCode;c.otherShowcode=c.showcode=="ROB172"?"ROB173":"ROB172";c.registerURL=(s?"https://registration.experientevent.com/Show"+c.otherShowcode+"/Flow/ATT?showcode=":"https://qawebreg.experientevent.com/Show"+c.otherShowcode+"/Flow/ATT?showcode=")+c.showcode;i.flow.isGroupIndividual&&(l=n.params.regId);f.getPersonList(l).success(function(n){c.persons=n});c.isSelfReg||f.sendConfirmations();c.dashboard=function(){r.goToTaskByName("Dashboard")};c.signOut=function(){u.logout()}}angular.module("ConfirmationModule").controller("ConfirmationTaskController",n);n.$inject=["$state","$timeout","WIZARD","WizardNavService","RegistrantLoginService","ConfirmationService","ISSELFREG","EngageService","IS_PROD_DATABASE","SHOW"]}(),function(){"use strict";function n(n,t,i,r){var u=this;n.wizardFlowCtrl.hideDashboardButton=!0;u.isOpen=t.flow.isOpen;u.isGroupIndividual=t.flow.isGroupIndividual;r.isLoggedIn()&&i.getHasMultipleRegistrants().success(function(n){n.success&&(u.bookingHasMultipleRegistrants=n.data)})}angular.module("DashboardModule").controller("DashboardTaskController",n);n.$inject=["$scope","WIZARD","BookingFactory","RegistrantLoginService"]}(),function(){"use strict";function n(n,t,i,r,u){function e(){var t,r;n.wizardFlowCtrl.hideDashboardButton=!0;i.flow.isPreview||s();t=_.find(i.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.Dashboard});t&&(r=t.config,f.ssoCustomName=r.customizeSSOLink)}function o(){f.url!==undefined&&t.open(f.url)}function s(){u.enableSSOLink().then(function(n){n&&(f.enableSSOLink=n,f.enableSSOLink&&h())})}function h(){u.getSingleSignonURL().then(function(n){n&&(f.url=n)})}var f=this;f.goToURL=o;f.importantInfoContentIdCode="WEB_GROUP_DASH_ACCORDION_IMPORTANT_INFO_CONTENT";f.isOpen=i.flow.isOpen;f.isClosed=!f.isOpen;e()}angular.module("DashboardModule").controller("GroupDashboardTaskController",n);n.$inject=["$scope","$window","WIZARD","SHOW","RTSServiceFactory"]}(),function(){"use strict";function n(n,t,i,r){function f(i){return n.postProfile(i).then(function(n){return r.setCurrentRegistrant(n),u.profile.registrantId=n.registrantId,t.setFormPristine(u.formDemographic),n})}var u=this;n.getProfile().then(function(n){u.profile=n});u.next=function(){t.checkFormIsValid(u.formDemographic)&&f(u.profile).then(function(){i.promote()})}}angular.module("DemographicModule").controller("DemographicTaskController",n);n.$inject=["ProfileFactory","DocumentService","WizardNavService","RegistrantFactory","$q"]}(),function(){"use strict";function n(n){function i(){t.results=n.getDiagnosticsResults()}var t=this;i();t.forcedExecute=function(){n.getDiagnosticsResultsForced()}}angular.module("DiagnosticsModule").controller("DiagnosticsController",n);n.$inject=["DiagnosticsFactory"]}(),function(){"use strict";function n(n){var t=this;n.getCurrentExCompanyFull().then(function(n){t.exCompany=n})}angular.module("ExhibitorModule").controller("ExhibitingCompanyInfoTaskController",n);n.$inject=["ExhibitorService","WizardNavService","ISSELFREG"]}(),function(){"use strict";function n(n,t,i,r,u){function s(){n.wizardFlowCtrl.hideDashboardButton=e();t.isLoggedIn()&&o()}function e(){return!0}function h(){f.isSearched=!0;t.companySearch(f.companyName).then(function(n){f.companyList=n},function(){})}function c(n){t.setCurrentExCompanyLight({exCompanyId:n.exCompanyId,company:n.company,email:n.email});o()}function l(){r?u.logout():t.logout()}function o(){i.promote()}var f=this;f.hideButtonDashboard=e;f.selectCompany=c;f.next=h;f.back=l;s()}angular.module("ExhibitorModule").controller("ExhibitingCompanySearchTaskController",n);n.$inject=["$scope","ExhibitorService","WizardNavService","ISSELFREG","SelfRegService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function l(){if(o.exCompany=t.getCurrentExCompanyLight(),!r){var n=u.getLocal(s+o.exCompany.exCompanyId);o.rememberPassword=n?"1":"0";o.password=n}}function h(){return!0}function a(){t.companyValidate({exCompanyId:o.exCompany.exCompanyId,password:o.password}).then(function(n){r||(o.rememberPassword=="1"?u.setLocal(s+o.exCompany.exCompanyId,o.password):u.setLocal(s+o.exCompany.exCompanyId));c(n)},function(){})}function v(){t.sendPasswordEmail(o.exCompany.exCompanyId)}function c(n){var t,r;n?(t=n.bookings,t.length?(r=exlBaseFunctions.findFirstByKey(t,"bookingId",n.currentBookingId),r?r.contactVerified?i.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard):i.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile):i.promote()):(f.setCreateNewBooking(!0),i.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile))):i.promote()}var s="ExhibitingCompany",o=this;n.wizardFlowCtrl.hideDashboardButton=h();o.hideButtonDashboard=h;o.next=a;o.isSelfReg=r;o.forgotPassword=v;t.isLoggedIn()?e.getBookings().then(function(n){c(n)},function(){t.logout()}):l()}angular.module("ExhibitorModule").controller("ExhibitingCompanyValidateTaskController",n);n.$inject=["$scope","ExhibitorService","WizardNavService","ISSELFREG","WebStorageFactory","BookingFactory","RegistrantGroupFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function k(n){var t={title:"View Friend Invitation",content:h.trustAsHtml(n)};s.showModal({bodyTemplate:'<div class="" data-ng-bind-html="modalCtrl.content"><\/div>',footerTemplate:'<button class="small secondary" data-ng-click="modalCtrl.close()"> Close<\/button>',controller:"ModalController",inputs:t})}var c=this,a,w,v,l,y,b,p;for(c.info={},c.defaults={disableSend:!1},a=t.current.data.taskName,w=t.current.data.config,r.getCurrentRegistrant().then(function(n){c.reg=n}),n.flow.isPreview||o.defaults().success(function(n){n.data&&(c.info.subject=angular.isDefined(n.data.subject)?n.data.subject:"",c.defaults.disableSend=angular.isDefined(n.data.disableSend)?n.data.disableSend:!1)}),c.friendInviteLimit=w.friendInviteLimit||1,c.friends=[],v=0;v<c.friendInviteLimit;v++){l={firstName:"",lastName:"",email:""};y=[];for(b in l)p=i.createFieldDetailTextBox(b,a),p.isRequired=!1,y.push(p);l.fieldDetails=y;c.friends.push(l)}c.regFieldDetails=[];angular.forEach(c.friends[0].fieldDetails,function(n){var t={};angular.extend(t,n);t.isDisabled=!0;t.isRequired=!1;c.regFieldDetails.push(t)});c.defaults.fd=i.createFieldDetailTextBox("subject",a);c.defaults.fd.maxLength=100;c.defaults.fd.isRequired=!1;c.send=function(){for(var f,n,r=!0,i=c.friendInviteLimit-1;i>=0;i--)u.checkFormIsValid(c["formFriendInvite"+i])||(r=!1);if(r&&u.checkFormIsValid(c.formReg)){if(f=_.some(c.friends,function(n){return n.firstName&&n.lastName&&n.email}),!f){e.displayError("At least one friend must be entered in order to send an invitation");return}n=[];angular.copy(c.friends,n);angular.forEach(n,function(n){n.fieldDetails=null});o.send(t.params.regId,c.info.subject||"subject",n).success(function(){e.displaySuccess("Your invitations have been sent")})}};c.preview=function(){o.preview(t.params.regId,c.info.subject||"subject").success(function(n){n.success&&k(n.data)})};angular.forEach(c.friends,function(n){f.$watchCollection(function(){return n},function(n,t){n!=t&&angular.forEach(n.fieldDetails,function(t){t.isRequired=n.firstName||n.lastName||n.email})})})}angular.module("FriendInviteModule").controller("FriendInviteTaskController",n);n.$inject=["WIZARD","$state","FieldDetailFactory","RegistrantFactory","DocumentService","$scope","NotificationFactory","FriendInviteService","ModalFactory","$sce"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function a(){f.getAllRegistrants().then(function(n){h.registrants=n.data;h.noRegList=_(h.registrants).filter(function(n){return n.regTypeCode===""}).map(function(n){return{value:n.registrantId,text:n.firstName+" "+n.lastName}}).value()})}function v(){var n=h.limit&&h.guestArray.length>=h.limit&&!h.guest.registrantId;angular.forEach(h.fieldDetailData,function(t){t.isDisabled=n})}var h=this,l=t.current.data.config,c;h.guestArray=[];h.guest={};c=t.params.regId;h.limit=l.guestLimit||0;h.term=l.guestTerm||"Guest";h.termPlural=l.guestTermPlural||"Guests";h.termLower=h.term.toLowerCase();h.termPluralLower=h.termPlural.toLowerCase();o.flow.isPreview||(a(),u.read(c).success(function(n){n.success&&(h.guestArray.length=0,Array.prototype.push.apply(h.guestArray,n.data))}));h.saveGuest=function(n){var t=h.guest.registrantId?"update":"create";n&&(t="create");u[t](c,h.guest).success(function(n){var i,u,e;if(n.success){switch(t){case"create":f.setCurrentRegistrant(n.data.registrant);delete n.data.registrant;h.guestArray.push(n.data);break;case"update":for(i=0;i<h.guestArray.length;i++)if(u=h.guestArray[i],e=n.data,u.registrantId===e.registrantId){angular.extend(u,e);break}}h.guest={};r.displaySuccess(h.term+' "'+n.data.bookingRegistrantName+'" saved.');s.setFormPristine(h.frmGuest)}})};h.cancelEditGuest=function(){h.guest={};s.setFormPristine(h.frmGuest)};h.removeGuest=function(n){i.showModal({bodyTemplate:"Are you sure you want to remove this "+h.termLower+"?",footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes<\/button>',controller:"ModalController",modalcss:"small",inputs:{title:"Remove "+h.term}}).then(function(t){t.status&&u.delete(c,n.registrantId).success(function(t){if(t.success){f.setCurrentRegistrant(t.data);var i=angular.element.inArray(n,h.guestArray);i>-1&&h.guestArray.splice(i,1);a()}})})};h.editGuest=function(n){u.read(c,n.registrantId).success(function(n){n.success&&(h.guest=n.data)})};n.$watch("taskCtrl.fieldDetailData",function(n){n&&v()});n.$watch("taskCtrl.guestArray",function(n){n&&v()},!0);n.$watch("taskCtrl.selectedReg",function(n){n&&e.getProfile(n.value).then(function(t){angular.extend(h.guest,t);h.saveGuest(!0);h.selectedReg=null;h.noRegList=_.remove(h.noRegList,function(t){return t.value!=n.value})})})}angular.module("GuestModule").controller("GuestTaskController",n);n.$inject=["$scope","$state","ModalFactory","NotificationFactory","GuestService","RegistrantFactory","ProfileFactory","WIZARD","DocumentService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function w(){var i,t;p();a.isNavFromCABPayment=o.getPaymentApplied();o.clearPaymentApplied();i=angular.copy(o.getNonFatalErrors());i.length&&(l.displayError("There were one or more errors encountered when creating your room block(s) and loading inventory.  Please review your room block(s) and inventory and make adjustments as needed."),l.displayMessages(i));o.resetNonFatalErrors();y().then(function(){if(!a.hotelItemInventory||!a.hotelItemInventory.length){v();return}});t=[];t.push(e.getBookingSummary());t.push(f.getBlockRequestSettings());n.all(t).then(function(n){var t=n[0].contact?n[0].contact.isVerified:!1;if(!t){v();return}a.isCABEnabled=u.isSectionEnabled(ExlConstants.wizardSectionName.CAB)&&exlBaseFunctions.stringEqualsIgnoreCase(n[1].blockManagementType,ExlConstants.blockManagementTypes.cab);a.isRABEnabled=u.isSectionEnabled(ExlConstants.wizardSectionName.RAB)&&exlBaseFunctions.stringEqualsIgnoreCase(n[1].blockManagementType,ExlConstants.blockManagementTypes.rab);a.isCABEnabled&&o.getCreateBlockConfigPolicy().then(function(n){a.cabConfigPolicy=n;u.isCABOpen()&&(a.cabConfigPolicy.addBlockEnabled&&(a.hideButtonNext=!1),a.cabConfigPolicy.editBlockEnabled&&(a.hotelItemInventoryConfig.editInventoryEnabled=!0,nt()),f.getHasSaveOnlyCCG().then(function(n){a.groupHasSaveOnlyCCG=n;a.cabConfigPolicy.requireCCG&&!a.groupHasSaveOnlyCCG&&(a.isCCGRequired=!0,a.labelButtonNext="Guarantee My Block",a.hideButtonNext=!1,a.hotelItemInventoryConfig.editInventoryEnabled=!1,p());a.isNavFromCABPayment&&a.groupHasSaveOnlyCCG&&o.sendCreateBlockConfirmation();a.groupHasSaveOnlyCCG&&(a.cabConfirmationVisible=!0)}))});a.isRABEnabled&&s.getCurrentBlockRequest().then(function(n){if(!exlBaseFunctions.stringEqualsIgnoreCase(n.requestStatus,ExlConstants.blockRequestStatus.guaranteed)){v();return}})})}function y(){var t=n.defer();return r.inv?f.getHotelItemInventory(moment.utc(r.inv.beginDate).toDate(),moment.utc(r.inv.endDate).toDate()).then(function(n){a.hotelItemInventory=n.registrantGroupInventory;a.roomNightCapacity=n.roomNightCapacity;a.isCABMinRoomNightsValid=n.isCABMinRoomNightsValid;a.excludeFromAutoRelease=n.excludeFromAutoRelease;a.autoReleaseDate=n.autoReleaseDate?moment(n.autoReleaseDate).toDate():null;var i=[];angular.forEach(a.hotelItemInventory,function(n){i=i.concat(n.hirpInventoryList)});o.setMaxRooms(i,a.roomNightCapacity).then(function(){t.resolve()})},function(){t.reject()}):t.reject(),t.promise}function b(){y()}function k(n){a.allowPayment=n}function d(){if(a.isCCGRequired)if(a.allowPayment)o.applyPayment();else{l.displayError("Please check the agreement box below to allow authorization of your credit card guarantee.");return}else h.goToTaskByName(ExlConstants.wizardTaskInternalName.CABRoomSearch)}function g(){o.sendCreateBlockConfirmation().then(function(){l.displaySuccess("Your email has been sent.")})}function v(){a.autoNavHome||(a.autoNavHome=!0,h.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard))}function p(){i.wizardFlowCtrl.pageTitleIdCode="WEB_ATT_PAGE_TITLE_VIEW_INVENTORY";i.wizardFlowCtrl.pageTitle="View Inventory"}function nt(){i.wizardFlowCtrl.pageTitleIdCode=a.initialPageTitleIdCode;i.wizardFlowCtrl.pageTitle=a.intialPageTitle}var a=this,tt=t.current.data.config;a.hotelItemInventoryConfig={};a.refreshHotelItemInventory=b;a.labelButtonNext="Add New Block";a.hideButtonNext=!0;a.next=d;a.allowPayment=!1;a.changeAllowPayment=k;a.sendConfirmation=g;a.initialPageTitleIdCode=i.wizardFlowCtrl.pageTitleIdCode;a.intialPageTitle=i.wizardFlowCtrl.pageTitle;w()}angular.module("HousingModule").controller("ManageRoomsTaskController",n);n.$inject=["$q","$state","$scope","SCHEDULES","WIZARD","RegistrantGroupFactory","BookingFactory","CABFactory","RABFactory","WizardNavService","PaymentService","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function y(){s.getUploadList().then(function(n){a.uploadLists=n?n:[]})}function p(){var n=t.defer();return!r.isHousingOpen()||!r.isSectionActionEnabled(ExlConstants.wizardSectionName.Housing,ExlConstants.wizardSectionActionName.ReservationUpload)||h||c||l?(v(),n.resolve(!0)):f.getRegGroupSummary().then(function(t){if(t.isHotelItemAssigned){var i=!1;s.isHousingAvailable().then(function(n){i=n}).finally(function(){i?n.resolve(!1):(v(),n.resolve(!0))})}else v(),n.resolve(!0)},function(){v();n.resolve(!0)}),n.promise}function v(){u.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)}var a=this;p().then(function(n){n});y();a.downloadTemplate=function(){s.downloadTemplate()};a.uploadList=function(n){if(a.uploadModel=n,a.uploadModel===undefined||exlBaseFunctions.isNullOrWhiteSpace(a.uploadModel.listName)||a.uploadModel.attachment===undefined){o.displayError("Please input request name and attach the file to process your upload.");return}s.uploadList(n.listName,n).then(function(n){n&&(a.uploadLists=n,e.showModal({bodyTemplate:'<p><img data-exl-ref-file-url="checkmark.png"/><exl-static-text id-code="WEB_RES_UPLOAD_ACCORDION_NEWLIST_UPLOAD_SUCCESS_TEXT">Thank you for your upload! We will process your request in approximately 3 business days.<\/exl-static-text><\/p>',footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'OK\')">Continue<\/button>',controller:"ModalController",inputs:{title:"Success"}}))})};n.$watch("taskCtrl.uploadModel.attachment",function(n,t){n!=t&&(a.uploadModel.attachment==null||exlBaseFunctions.isNullOrWhiteSpace(a.uploadModel.attachment.name)||(a.uploadModel.listName=a.uploadModel.attachment.name.replace(/\.[^/.]+$/,"")))});a.reset=function(){i(function(){a.uploadModel.listName="";a.uploadModel.attachment=null;document.forms.formUpload.reset()})};a.cancelImport=function(n,t){s.cancelImport(n).then(function(n){n&&a.uploadLists.splice(t,1)})};a.viewImport=function(n){e.showModal({bodyTemplate:'<exl-static-text id-code="WEB_RES_UPLOAD_ACCORDION_VIEWLIST_VIEWIMPORT_TEXT"><p>Any edits to this document will not be reflected on your reservations. This file is for viewing only.<\/p><\/exl-static-text>',footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(true)">OK<\/button>',controller:"ModalController",inputs:{title:"View Import"}}).then(function(t){t.status&&s.viewImport(n)})}}angular.module("HousingModule").controller("ReservationUploadTaskController",n);n.$inject=["$scope","$q","$timeout","WIZARD","WizardNavService","RegistrantGroupFactory","ModalFactory","NotificationFactory","ReservationService","IS_ONSITE","IS_DEV_DATABASE","IS_QA_DATABASE"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){if(!o.isGradualEngagement)if(i.isHousingOpen()&&(!o.isCABMode||i.isCABOpen()))if(o.isCABMode)e.navigateIfDisabled();else{var n=!1;f.isHousingAvailable().then(function(t){n=t}).finally(function(){n||navigateHome()})}else r.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)}var o=this;o.isCABMode=u.isCABMode();o.isGradualEngagement=n.current.data.isGradualEngagement;s();o.roomSearchCriteria=u.getRoomSearchCriteria();o.isHousingOpen=i.isHousingOpen();o.isBeforeHousing=i.isBeforHousingOpen();o.isAfterHousing=i.isAfterHousingOpen();o.facilityId=n.params.id;o.visibilityOptions={};o.isCABMode&&(o.visibilityOptions={cancellationPolicyVisible:!1});o.subBlockQuantities=[];o.disableNext=function(){if(!o.isHousingOpen)return!0;if(o.isGradualEngagement)return!1;var n=0;return angular.forEach(o.subBlockQuantities,function(t){n+=t.qty}),n===0};o.chooseRoom=function(n){if(o.isCABMode)e.setSourceSubBlock(angular.copy(n)),r.promote();else{var i=[],u=o.roomSearchCriteria.numberOfRooms,s=angular.isDefined(n);if(angular.forEach(o.subBlockQuantities,function(t){if(!s||t.subBlock===n)for(var i=0;i<t.qty;i++)this.push(t.subBlock)},i),!s&&i.length<u){var h=u===1?"":"s",c=i.length===1?"":"s",l=u-i.length==1?"":"s";t.showModal({bodyTemplate:"You searched for "+u+" room"+h+", but have only selected "+i.length+" room"+c+".  Please select "+(u-i.length)+" additional room"+l+" to continue.",controller:"ModalController",modalcss:"small",inputs:{title:"Number of Rooms"}})}else t.showModal({bodyTemplateUrl:"App/Housing/Views/FacilityCancelPolicyModal.html",footerTemplateUrl:"App/Housing/Views/FacilityCancelPolicyModalFooter.html",controller:"ModalController",inputs:{title:"Cancellation Policy",facilityId:o.facilityId}}).then(function(n){if(n.status){var t=[];angular.forEach(i,function(n){this.push({roomSearchCriteria:angular.extend({facilityId:o.facilityId},o.roomSearchCriteria),hotelItemId:n.hotelItemId,regTypeGroupId:n.regTypeGroupId,units:n.units,categoryName:n.categoryName,maxOccupancy:n.maxOccupancy})},t);f.create(t).success(function(n){n.success&&r.promote({id:n.data.reservationIds})})}})}};o.geSearch=function(){t.showModal({bodyTemplate:'<exl-room-search-criteria room-search-criteria="modalCtrl.roomSearchCriteria" search-status="modalCtrl.searchStatus" show-button="false"><\/exl-room-search-criteria>',footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close()">Cancel<\/button><button type="button" data-ng-click="modalCtrl.onSubmit()" data-ng-disabled="modalCtrl.searchStatus.isSearching"><i class="fa" data-ng-class="modalCtrl.searchStatus.isSearching ? \'fa-spinner fa-pulse\' : \'fa-search\'"><\/i><span data-ng-bind="modalCtrl.searchStatus.isSearching ? \'Searching...\' : \'Search Rooms\'"><\/span><\/button>',controller:"ModalController",inputs:{title:"Check Rates & Availability",roomSearchCriteria:angular.copy(o.roomSearchCriteria),searchStatus:{},onSubmit:function(){var n=this;n.searchStatus.isSearching=!0;u.setRoomSearchCriteria(n.roomSearchCriteria);n.close(!0)}}}).then(function(n){n.status&&r.goToTaskByName("RoomChoice",{id:o.facilityId})})}}angular.module("HousingModule").controller("RoomChoiceTaskController",n);n.$inject=["$state","ModalFactory","WIZARD","WizardNavService","RoomSearchService","ReservationService","CABFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a){function w(n){var r,t;v.booking.registrants=n.data.bookingRegistrants;v.booking.hasRegistrantWithEmailAndPassword=n.data.bookingHasRegistrantWithEmailAndPassword;r=null;r=v.isGroupIndividual?v.groupIndividualRegId:u.getAddRoomRegistrant().regId;t=exlBaseFunctions.findFirstByKey(v.booking.registrants,"value",r);t||i.flow.flowCode!="ATT"||(t=v.booking.registrants[0]);angular.forEach(n.data.reservations,function(n){if(n){if(n.isBookingStatusClosed){y();return}t&&!n.occupants.length&&a.read(n.reservationID,t.value,!0).success(function(i){i.success&&a.save(n.reservationID,i.data.reservationOccupantID||undefined,i.data).success(function(i){i.success?n.occupants.push(i.data):(n.addRoomRegistrant=t,v.addOccupant(n.reservationID))})});v.reservations.push(n);angular.isUndefined(v.facilityDetail)&&o.getById(n.facilityId).success(function(t){var r,i,u;if(t.success)for(v.facilityDetail=o.toDictionary(t.data),v.facility=v.facilityDetail.facility[n.facilityId][0],v.smokingEnabled=!0,r=v.facilityDetail.amenities?v.facilityDetail.amenities[n.facilityId]||[]:[],i=0;i<r.length;i++)if(u=r[i],u.facilityPropertyCode==="NSH"){v.smokingEnabled=!1;break}});c.getPreferenceTypes(n.hotelItemId).success(function(t){if(t.success){var i=v.preferences[n.reservationID]={};angular.forEach(t.data,function(t,r){angular.forEach(t,function(t){var u={value:t.key,text:t.value};this.push(u);u.value===n[r+"TypeCode"]&&(v.smokingEnabled||u.value!==""||r!=="smoking"?i["selected"+r.replace(/^([a-z])(.*)$/g,function(n,t,i){return angular.uppercase(t)+i})+"Type"]=u:i["selected"+r.replace(/^([a-z])(.*)$/g,function(n,t,i){return angular.uppercase(t)+i})+"Type"]={value:"NOSMOKING",text:"REQUEST NON-SMOKING ROOM"})},i[r+"Types"]=[])})}})}},v.reservations=[])}function y(){s.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)}function b(n,t){v.selectedOccupant[n]=t||!1}var v=this,p=t.params.id.split(","),k=t.current.data.config;if(v.preferences={},v.selectedOccupant={},v.booking={},v.isAccordionOpen=!0,v.addOccupant=b,v.isGroupIndividual=i.flow.isGroupIndividual,v.groupIndividualRegId=parseInt(t.params.regId),!i.isHousingOpen()){y();return}i.flow.isPreview?(p=[-1],l.preview().success(function(n){w(n)})):l.read(p).success(function(n){if(n.success){if(!n.data.reservations||!n.data.reservations.length){y();return}w(n)}});v.clearSelected=function(n){v.selectedOccupant[n]=null};v.editOccupant=function(n,t){var i=n.occupants[t];a.read(n.reservationID,i.reservationOccupantID).success(function(t){t.success&&v.addOccupant(n.reservationID,t.data)})};v.removeOccupant=function(n,t){var i=n.occupants[t];f.showModal({bodyTemplateUrl:"App/Housing/Views/OccupantRemoveModal.html",footerTemplateUrl:"App/Housing/Views/OccupantRemoveModalFooter.html",controller:"ModalController",inputs:{title:"Remove Guest",occupantName:i.bookingRegistrantName,isRemovingGroupIndividual:v.isGroupIndividual&&i.registrantID==v.groupIndividualRegId}}).then(function(r){r.status&&a.delete(n.reservationID,i.reservationOccupantID).success(function(i){if(i.success){n.occupants.splice(t,1);var r=i.data.newLeadResOccId;r&&n.occupants.sort(function(n,t){return n.reservationOccupantID==r?-1:t.reservationOccupantID==r?1:0})}})})};v.validate=function(){var i=!1,r=!1,n,t;if(v.reservations)for(n=0;n<v.reservations.length;n++)if(t=v.reservations[n],t&&!t.isCancelled&&(i||(i=!0),!t.occupants.length)){r=!0;break}return i&&!r};v.isPromoting=!1;v.saveReservations=function(){var n=[];angular.forEach(v.reservations,function(n){if(n&&!n.isCancelled){var t=v.preferences[n.reservationID];this.push({reservationId:n.reservationID,smokingTypeCode:t.selectedSmokingType.value,beddingTypeCode:t.selectedBeddingType.value,specialRequestComments:n.specialRequestComments})}},n);l.update(n).success(function(n){n.success&&(v.isPromoting=!0,s.promote().finally(function(){v.isPromoting=!1}))})};v.hasReservation=function(){if(v.reservations)for(var n=0;n<v.reservations.length;n++)if(!v.reservations[n].isCancelled)return!0;return!1}}angular.module("HousingModule").controller("RoomOccupantTaskController",n);n.$inject=["$rootScope","$state","WIZARD","SCHEDULES","HOUSING","ModalFactory","NotificationFactory","FacilityService","WizardNavService","DocumentService","RoomService","ReservationService","ReservationOccupantService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){function ut(){if(!p.isGradualEngagement)if(u.isHousingOpen()&&(!p.isCABMode||u.isCABOpen()))if(p.isCABMode)v.navigateIfDisabled();else{var n=!1;a.isHousingAvailable().then(function(t){n=t}).finally(function(){n||it()})}else it()}function it(){o.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)}var p=this,b=i.current.data.config,w,k,d,g;p.widgetRoomSearchRedirect=f.widgetRoomSearchRedirect;p.enableLoadMore=b.enableLoadMore;p.pageSize=p.enableLoadMore?30:Infinity;w=function(){p.limitTo=p.pageSize};w();p.loadMore=function(){p.limitTo+=p.pageSize};p.displaySoldOut=f.displaySoldOut;p.isGradualEngagement=i.current.data.isGradualEngagement;p.hideHousingFilters=b.hideHousingFilters;p.isCABMode=l.isCABMode();p.housingSearchResultDisplayType=b.housingSearchResultDisplayType;ut();p.roomSearchCriteria=angular.extend({},l.getRoomSearchCriteria());p.isGradualEngagement&&(p.roomSearchCriteria.includeSoldOut=!0,k=r.inv,p.roomSearchCriteria.arrivalDate=moment.utc(k.beginDate).toDate(),p.roomSearchCriteria.departureDate=moment.utc(k.endDate).add(1,"d").toDate());p.roomSearchDefaults=l.getRoomSearchDefaults();p.facilityFeaturesSearchCriteria=l.getRoomSearchCriteriaFacilityFeatures();p.facilityFeaturesSearchDefaults=l.getRoomSearchFacilityFeaturesDefaults();d=[{key:"arrivalDate",idCode:"WEB_ROOM_SEARCH_CRITERIA_LABEL_ARRIVALDATE"},{key:"departureDate",idCode:"WEB_ROOM_SEARCH_CRITERIA_LABEL_DEPARTUREDATE"},{key:"numberOfRooms",idCode:"WEB_ROOM_SEARCH_CRITERIA_LABEL_NUMBEROFROOMS"},{key:"numberOfGuests",idCode:"WEB_ROOM_SEARCH_CRITERIA_LABEL_NUMBEROFGUESTS"}];g=function(n){n||(n=l.getRoomSearchCriteria());y.getData().success(function(t){t.success&&angular.forEach(d,function(i){var r=n[i.key],u;/Date$/.test(i.key)&&(u=moment.utc(r),u.isValid()&&(r=u.format("l")));this.push({text:y.filterData(t.data,i.idCode,"none"),value:r})},p.searchTerms=[])})};p.isCABMode||t.$on(ExlConstants.events.staticTextUpdate,function(n,t){!n.defaultPrevented&&_.any(d,{idCode:t})&&g()});p.searchStatus={isSearching:!1,isSearched:!p.widgetRoomSearchRedirect&&l[p.isCabMode?"hasCABSearched":"hasSearched"]()};p.search=function(){(p.isGradualEngagement||!l.widgetRedirect(p.roomSearchCriteria))&&(p.isAccordionOpen=!1,p.searchStatus.isSearching=!0,e.getAll().success(function(n){n.success&&(p.facilityDetail=e.toDictionary(n.data),p.facilityFeatures=e.getFacilityFeaturesAllFacilities(p.facilityDetail),l.getData(p.roomSearchCriteria).success(function(n){var i,t,f,r,u,o,s;if(n.success){for(p.roomSearchResults=n.data,i=0;i<p.roomSearchResults.length;i++){if(t=p.roomSearchResults[i],!angular.isNumber(t.distance))for(f=p.facilityDetail.facility[t.facilityId],r=0;r<f.length;r++)if(f[r].isPrimaryFacility){t.distance=0;break}t.features=e.getFacilityFeatures(p.facilityDetail,t.facilityId)}u=angular.extend(l.getRoomSearchCriteria(),angular.copy(p.roomSearchCriteria));l.setRoomSearchCriteria(u);l.setRoomSearchCriteriaFacilityFeatures(p.facilityFeaturesSearchCriteria);p.isCABMode?(o=[],s=l.getRoomNightsFromSearchCriteria(u),angular.forEach(s,function(n){o.push({text:moment.utc(n.dayDate).format("l"),value:n.quantity})}),p.searchTerms=o):g(u);p.searchStatus.isSearched=!0;p.applyFilter()}}).finally(function(){p.searchStatus.isSearching=!1}))}).error(function(){p.searchStatus.isSearching=!1}))};p.applyFilter=function(){var t=n("filter");return p.filteredRoomSearchResults=t(p.roomSearchResults,function(n){var i=p.roomSearchCriteria,r=!i.hotelName||angular.lowercase(n.hotelName).indexOf(angular.lowercase(i.hotelName))!==-1,u=!n.isSoldOut||i.includeSoldOut,f=!angular.isNumber(n.distance)||!angular.isNumber(i.distance)||!n.distance||!i.distance||n.distance<=i.distance,e=!angular.isNumber(n.lowestPrice)||!angular.isNumber(i.maximumRate)||!n.lowestPrice||!i.maximumRate||n.lowestPrice<=i.maximumRate,o=function(){var i=p.facilityFeaturesSearchCriteria,r;return i&&(!angular.isArray(i)||i.length)?(r={},angular.forEach(i,function(n,t){n&&(this[t]=n)},r),!Object.keys(r).length||!!t(n.features,function(n){return r[n.code]}).length):!0};return r&&u&&f&&e&&o()}),w(),!0};t.$watchCollection(function(){return p.roomSearchCriteria},function(n,t){n!==t&&p.applyFilter()});t.$watchCollection(function(){return p.facilityFeaturesSearchCriteria},function(n,t){n!==t&&p.applyFilter()});p.openAccordion=function(){p.isAccordionOpen=p.isAccordionOpen===1||1};p.maxDistance=function(){var t=[],r,i,n;if(p.facilityDetail)for(r in p.facilityDetail.distances)for(i=p.facilityDetail.distances[r],n=0;n<i.length;n++)t.push(i[n].distance);return t.length?Math.max.apply(null,t):0};p.maxRate=function(){var t=[],n;if(p.roomSearchResults&&p.roomSearchResults.length)for(n=0;n<p.roomSearchResults.length;n++)t.push(p.roomSearchResults[n].lowestPrice);return t.length?Math.max.apply(null,t):0};var tt=s.getRegId,rt=function(){return tt()},nt={text:"Default",value:["displayOrder"]};rt()&&(nt.text="Favorites",nt.value.unshift(function(n){var t=h.cache(tt(),"FACILITY");return angular.element.inArray(n.facilityId,t||[])===-1}));p.sortOptions=[nt,{text:"Name",value:"hotelName"},{text:"Price",value:"lowestPrice"},{text:"Distance from George R. Brown Convention Center",value:"distance"},{text:"Distance from Minute Maid Park",value:"distance1"},{text:"Distance from Toyota Center",value:"distance2"}];p.sortSelect=function(n){angular.isUndefined(p.sortExpression)?p.sortDesc=!1:p.sortExpression===n&&(p.sortDesc=!p.sortDesc);p.sortExpression=n;w()};p.sortOptions&&p.sortOptions.length&&p.sortSelect(p.sortOptions[0].value);p.bookRoom=function(n){var t=o.nextTask(),i={id:n};l.widgetRedirect(p.roomSearchCriteria,t?t.taskInternalName:null,i)||o.promote(i)};p.showHotelProfileModal=function(n){c.displayHotelProfileModal(n)}}angular.module("HousingModule").controller("RoomSearchTaskController",n);n.$inject=["$filter","$scope","$state","SCHEDULES","WIZARD","HOUSING","FacilityService","WizardNavService","RegistrantLoginService","RegistrantLikesService","RoomService","RoomSearchService","ReservationService","CABFactory","StaticTextService"]}(),function(){"use strict";function n(n,t){var i=this;i.state=n;i.signOut=function(){t.logout()}}angular.module("InterfaceGuideModule").controller("InterfaceGuideMenuController",n);n.$inject=["$state","RegistrantLoginService"]}(),function(){"use strict";function n(n,t,i){var r=this,u;for(r.comments=[],r.getComments=function(){var n=t.defer();return i(function(){n.resolve()},2e3),n.promise},r.addItem=function(){n.items.push("Item "+n.items.length)},r.removeItem=function(){n.items.pop()},n.items=[],u=0;u<3;u++)n.items.push("Item "+u)}angular.module("InterfaceGuideModule").controller("qtestController",n);n.$inject=["$scope","$q","$timeout"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function c(){r.getBookings().then(function(n){o.bookings=n.bookings;o.isAddNewEnabled=n.addNewBookingsEnabled;o.bookings.length?o.bookings.length!=1||o.isAddNewEnabled||s(o.bookings[0]):h()},function(){o.disableInput=!0})}function s(n){o.disableInput||(o.disableInput=!0,u.createBookingAuthToken(n.bookingId).then(function(){n.contactVerified?f.promote():f.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile)},function(){}).finally(function(){o.disableInput=!1}))}function h(){e.setCreateNewBooking(!0);f.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile)}var o=this;n.wizardFlowCtrl.hideDashboardButton=!0;o.selectBooking=s;o.addNew=h;c()}angular.module("LoginModule").controller("BookingSelectionTaskController",n);n.$inject=["$scope","$q","$state","RegistrantGroupFactory","RegistrantGroupLoginService","WizardNavService","BookingFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function v(){c.enableNewGroupCreation=a.enableCreateNewGroup;c.groupLoginProfile={};c.groupLoginProfile.userName="";c.groupLoginProfile.password="";c.groupLoginItems=[];c.groupLoginItems.push({description:"Username",displayTypeCode:"TEXTBOX",fieldName:"userName",fieldTypeCode:"FREE",html5TypeCode:"TEXT",isRequired:!0,isDisabled:!1,maxLength:25,pattern:"",labelIdCode:"WEB_GROUP_LOGIN_SECTION_LOGIN_FIELDLABEL_USERNAME",closingIdCode:"WEB_GROUP_LOGIN_SECTION_LOGIN_CLOSINGLABEL_USERNAME"});c.groupCreateProfile={};c.groupCreateProfile.groupName="";c.groupCreateProfile.userName="";c.groupCreateProfile.password="";c.groupCreateItems=[];c.groupCreateItems.push({description:"Team Name",displayTypeCode:"TEXTBOX",fieldName:"groupName",fieldTypeCode:"FREE",html5TypeCode:"TEXT",isRequired:!0,isDisabled:!0,maxLength:255,pattern:"",labelIdCode:"WEB_GROUP_LOGIN_SECTION_CREATE_FIELDLABEL_GROUPNAME",closingIdCode:"WEB_GROUP_LOGIN_SECTION_CREATE_CLOSINGLABEL_GROUPNAME",placeHolder:""});c.groupCreateItems.push({description:"Team Number",displayTypeCode:"TEXTBOX",fieldName:"teamNum",fieldTypeCode:"FREE",html5TypeCode:"TEXT",isRequired:!0,isDisabled:!0,maxLength:255,pattern:"",labelIdCode:"WEB_GROUP_LOGIN_SECTION_CREATE_FIELDLABEL_TEAMNUM",closingIdCode:"WEB_GROUP_LOGIN_SECTION_CREATE_CLOSINGLABEL_TEAMNUM",placeHolder:""});c.groupCreateItems.push({description:"Username",displayTypeCode:"TEXTBOX",fieldName:"userName",fieldTypeCode:"FREE",html5TypeCode:"TEXT",isRequired:!0,isDisabled:!1,maxLength:25,pattern:"",labelIdCode:"WEB_GROUP_LOGIN_SECTION_CREATE_FIELDLABEL_USERNAME",closingIdCode:"WEB_GROUP_LOGIN_SECTION_CREATE_CLOSINGLABEL_USERNAME",placeHolder:""});c.searchCriteria={};c.searchCriteria.teamNum="";c.searchCriteria.teamName="";c.sortDesc=!1;c.sortExpression="teamname"}function y(n){n.teamNum&&s.setSession(ExlConstants.session.teamNum,n.teamNum);n.teamProg&&s.setSession(ExlConstants.session.teamProg,n.teamProg);n.teamName&&s.setSession(ExlConstants.session.teamName,n.teamName);l(n)}function p(){r.login(c.groupCreateProfile.userName,c.groupCreateProfile.password).then(function(){var n={};n.bookings=[];l(n)},function(){})}function w(){r.logout()}function l(n){var t,i;n?(t=n.bookings,t.length?(i=exlBaseFunctions.findFirstByKey(t,"bookingId",n.currentBookingId),i?i.contactVerified?e.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard):e.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile):e.promote()):(f.setCreateNewBooking(!0),e.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile))):e.promote()}function b(){u.teamSearch(c.searchCriteria).then(function(n){c.teamResults=n;c.isSearching=!0;c.hasSearched=!0},function(){})}function k(){c.isSearching=!1;c.searchCriteria.teamNum="";c.searchCriteria.teamName=""}function d(n,t,i,r){if(r){c.isSearching=!1;var f={};f.teamnum=n;f.teamname=t;f.teamprog=i;u.selectUsernameByTeam(f).then(function(r){r&&r!=""?(c.groupLoginProfile.userName=r,c.loginSet=!0):(c.groupCreateProfile.groupName=t,c.groupCreateProfile.teamNum=n,c.groupCreateProfile.teamProg=i,c.teamSelected=!0)})}else h.displayError("Registration for your team opens on December 15, 2016 at 1:00PM EST. Please return then to complete your team registration.")}function g(n){angular.isUndefined(c.sortExpression)||c.sortExpression!=n?c.sortDesc=!1:c.sortExpression===n&&(c.sortDesc=!c.sortDesc);c.sortExpression=n}var c=this,a;n.wizardFlowCtrl.hideDashboardButton=!0;a=i.current.data.config;c.groupLoginSuccessful=y;c.groupCreateSuccessful=p;c.back=w;c.search=b;c.resetSearch=k;c.select=d;c.sortSelect=g;r.isLoggedIn()?u.getBookings().then(function(n){l(n)},function(){r.logout()}):v()}angular.module("LoginModule").controller("RegistrantGroupLoginTaskController",n);n.$inject=["$scope","$q","$state","RegistrantGroupLoginService","RegistrantGroupFactory","BookingFactory","WizardNavService","WIZARD","WebStorageFactory","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f){var e=this;n.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){e.username=t?t.firstName:" "});e.signIn=function(){i.showModal()};e.signOut=function(n){t.isLoggedIn()&&f.getBookingFinancials().then(function(i){var f=u.flow.housingType!=="None",e=i.balanceDue?"payment":i.isccgNeeded&&f?"Credit Card guarantee":null,o;e?(o=f?"Any items currently being held will be lost if you do not confirm your room.":"",r.showModal({bodyTemplate:'<p class="alert-box alert">A '+e+" is required.  "+o+"<\/p><p>Are you certain that you want to sign out?<\/p>",footerTemplate:'<button type="button" data-ng-click="modalCtrl.close()">No, do not sign out<\/button><button type="button" class="dark" data-ng-click="modalCtrl.close({signOut: true})">Yes<\/button>',modalcss:"small",controller:"ModalController",inputs:{title:"Balance Due"}}).then(function(i){i.status&&i.status.signOut?t.logout():n&&n.cancelable&&n.preventDefault()},function(){n&&n.cancelable&&n.preventDefault()})):t.logout()},function(){t.logout()})}}angular.module("LoginModule").controller("RegistrantLoginController",n);n.$inject=["$scope","RegistrantLoginService","RegistrantLoginModalService","ModalFactory","WIZARD","BookingFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){var p=this,w;if(p.SIGN_IN="Sign In",p.FORGOT_PASSWORD="Forgot Password",p.SEND_PASSWORD="Send Password",p.signInText=p.SIGN_IN,p.createNewText="Create New Record",p.displayLogin=!0,angular.extend(p,r),p.originalTitle=p.title,p.defaultTab===p.createNewText&&(p.tabCreateNew=!0),p.dismiss=t.dismiss,p.templates=i,w=l.current.data.config,p.enableFacebookLogin=w?w.enableFacebookLogin:!1,o.flow.registrationType!=ExlConstants.flowRegistrationTypes.none&&!o.isRegistrationOpen()||o.flow.housingType!=ExlConstants.flowHousingTypes.none&&!o.isHousingOpen()){var b=!1,d=l.current.data.taskName,k=_.find(o.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.GEHousing});k&&_.some(k.wizardTasks,{taskInternalName:d})&&(b=!0);b||(p.hideCreateNew=!0)}p.close=function(n){var i={status:n};t.close(i)};p.closeAlert=function(){p.showAlert=!1};p.keyup=function(n){n.keyCode==13&&p.login()};p.useDefaultLayout=!1;n.$watch(function(){return p.fieldDetailData},function(n){n&&(n.length||(p.useDefaultLayout=!0))});p.isLoggedIn=!!u.getToken();p.login=function(){f.checkFormIsValid(p.formRegLogin)&&(p.showWait=!0,p.showNoFlow=!1,u.login(p.profile.email,p.profile.password).then(function(n){n.data.flowCode?t.close(n):(u.logout(!0),p.showNoFlow=!0)},function(n){c.displayError(n.data.error)}).finally(function(){p.showWait=!1}))};p.forgotPassword=function(){p.displayLogin=!1;p.signInText=p.FORGOT_PASSWORD;p.selectTabSignIn()};p.returnToLogin=function(){p.displayLogin=!0;p.signInText=p.SIGN_IN;p.selectTabSignIn()};p.selectTabSignIn=function(){p.tab=p.displayLogin?p.SIGN_IN:p.SEND_PASSWORD};p.sendPassword=function(){if(!p.profile.email){f.touchInputByName(p.formRegForgotPassword,"email");f.setFocusByName("email");return}e.sendPasswordEmail(p.profile.email)};p.signInFacebook=function(n){u.signInFacebook("Dashboard",n)};p.click=function(){p.tab===p.SIGN_IN?p.login():p.tab==p.SEND_PASSWORD?p.sendPassword():p.tab==p.createNewText&&p.createNew()};p.cancelClick=function(){p.tab==p.createNewText&&p.memberSearchResults?(p.memberSearchResults=null,p.title=p.originalTitle):p.close("Cancel")};p.createNew=function(){function e(n){s.postSimpleProfile({profile:n,doMemberSearch:!1},!0).then(function(n){i(n.registrant)})}function i(n){h.setCurrentRegistrant(n);var i={status:"createNew",data:{regId:n.registrantId}};t.close(i)}if(f.checkFormIsValid(p.formCreateNew)){var n=y.getTask(ExlConstants.wizardTaskInternalName.Member),r=n&&n.config&&n.config.searchMemberOnCreateRecordModal&&!p.memberSearchResults,u={profile:p.profile,doMemberSearch:r};s.postSimpleProfile(u,!0).then(function(n){n&&n.registrant?i(n.registrant):r&&v.searchByEmail(p.profile.email).then(function(n){n.list&&n.list.length>0?(p.memberSearchResults=n.list,p.memberRecordCount=n.recordCount,p.memberPageCount=n.pageCount,p.memberCurrentPage=1,p.title="Record(s) Found",p.selectMember=function(n){v.post(n,p.profile).then(function(n){i(n.registrant)})},p.loadMoreMemberResults=function(){p.memberRecordCount="";p.memberCurrentPage++;v.searchByEmail(p.profile.email,p.memberCurrentPage).then(function(n){p.memberSearchResults=p.memberSearchResults.concat(n.list);p.memberRecordCount=n.recordCount;p.memberPageCount=n.pageCount})}):e(p.profile)})}).finally(function(){p.showWait=!1;p.showDupeOverride=u.isDupe});p.showWait=!0;p.showNoFlow=!1}}}angular.module("LoginModule").controller("RegistrantLoginModalController",n);n.$inject=["$scope","$modalInstance","templates","inputs","RegistrantLoginService","DocumentService","PasswordService","WIZARD","ProfileFactory","RegistrantFactory","NotificationFactory","$state","ModalFactory","MemberService","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function l(){h.busy=!0;u.getCanSave().then(function(n){h.canSave=n});h.discountID>0?e.getDiscount(h.discountID).then(function(n){h.busy=!1;h.discount=n;h.selectedDiscountType={value:h.discount.discountType}},function(){c()}):h.busy=!1}function v(){return a()?"MEMBERSHIP,DATE":""}function a(){return h.discountType||(h.discountType=e.determineDiscountType(h.discount)),h.discountType==="REGTYPE"}function y(n){n.preventDefault();h.discount.marketingCodeDiscountID===0?e.postDiscount(h.discount,h.discountType).then(function(n){r.go("marketingCode.edit.discount-edit.targets",{discountID:n.marketingCodeDiscountID})},function(n){h.errors=n}):r.go("marketingCode.edit.discount-edit.targets",{discountID:h.discountID})}function p(n,t){n.preventDefault();h.discount.marketingCodeDiscountID===0?e.postDiscount(h.discount,h.discountType).then(function(n){t&&t.toUpperCase()==="REGTYPE"?r.go("marketingCode.edit.discount-edit.regtype-qualifiers",{discountID:n.marketingCodeDiscountID}):r.go("marketingCode.edit.discount-edit.qualifiers",{discountID:n.marketingCodeDiscountID})},function(n){h.errors=n}):t&&t.toUpperCase()==="REGTYPE"?r.go("marketingCode.edit.discount-edit.regtype-qualifiers",{discountID:o.marketingCodeDiscountID}):r.go("marketingCode.edit.discount-edit.qualifiers",{discountID:h.discountID})}function w(t){(h.errors=[],t)&&(h.busy=!0,e.postDiscount(h.discount,h.discountType).then(function(){n.$broadcast("marketingCodeDiscountChanged",{discountID:h.discount.marketingCodeDiscountID});c()},function(n){h.errors=n;h.busy=!1}))}function c(){n.$broadcast("marketingCodeDiscountDone");r.go("marketingCode.edit")}var h=this;h.isNewDiscount=!1;h.errors=[];h.discountType=r.params.type;h.code=r.params.code;angular.isDefined(o)?(h.discount=o,h.discountID=o.marketingCodeDiscountID):(h.isNewDiscount=!0,h.discount={marketingCodeDiscountID:0},angular.isDefined(s)&&(h.discount.marketingCodeID=s.marketingCodeID),h.discountID=0);h.discountQualifierTypes=f.qualifierTypes;h.discountQualifierOptions={};h.busy=!1;h.canSave=!1;h.selectedDiscountQualifierOptions={};h.discountTypes=e.discountTypes;h.selectedDiscountType={value:h.discount.discountType};h.done=c;h.saveDiscount=w;h.editDiscountTargets=y;h.editDiscountQualifiers=p;h.isRegistrationDiscount=a;h.getQualifierFilter=v;t.$on("marketingCodeDiscountTargetsChanged",function(n,t){t.discountID==h.discountID&&l()});l()}angular.module("MarketingCodeModule").controller("EditDiscountController",n);n.$inject=["$rootScope","$scope","$q","$state","MarketingCodeFactory","QualifierFactory","DiscountFactory","discount","marketingCode"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function h(){var t,n;o.busy=!0;t=[];u.getCanSave().then(function(n){o.canSave=n});angular.isDefined(o.discount)&&(n=_.where(o.discount.discountTargets,{isActive:!0}),o.selectedTargets=_.map(n,function(n){return{text:n.discountTarget,value:n.discountTarget}}));f.getAllDiscountTargets().then(function(n){var t=_.filter(n,function(n){return n.showItemCode!=="REG"});o.discountTargetOptions=_.map(t,function(n){return{text:n.showItemCode+" - "+n.description,value:n.showItemCode}});o.busy=!1},function(){o.busy=!1})}function c(){var n=o.selectedTargetsModel.split(","),i=_.indexOf(n,"REG");i>=0&&(n=n.splice(i,1));o.selectedTargetsModel=n.join();f.saveDiscountTargets(o.discount,o.selectedTargetsModel).then(function(){t.$broadcast("marketingCodeDiscountTargetsChanged",{discountID:o.discount.marketingCodeDiscountID});s()},function(){t.$broadcast("marketingCodeDiscountTargetsChanged",{discountID:o.discount.marketingCodeDiscountID});s()})}function s(){i.go("marketingCode.edit.discount-edit")}var o=this;o.busy=!0;o.canSave=!1;o.discount=e;o.discountTargetOptions=[];o.stateParams=i.params;o.selectedTargets=[];o.selectedTargetsModel="";o.saveTargets=c;o.done=s;h()}angular.module("MarketingCodeModule").controller("EditDiscountTargetsController",n);n.$inject=["$scope","$rootScope","$state","$q","MarketingCodeFactory","DiscountFactory","discount"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function a(){h.busy=!0;u.getCanSave().then(function(n){h.canSave=n});switch(h.qualifierType){case"MARKETINGCODE":angular.isDefined(h.marketingCode)&&(h.qualifiers=h.marketingCode.marketingCodeQualifiers,h.busy=!1);break;case"REGTYPE":case"DISCOUNT":angular.isDefined(r.params.discountID)&&e.getDiscount(r.params.discountID).then(function(n){h.discount=n;w();h.qualifiers=h.discount.discountQualifiers;h.busy=!1});break;default:h.busy=!1}}function v(){if(l())switch(h.qualifierType){case"REGTYPE":return"REGISTRATION";case"DISCOUNT":if(h.discountType==="REGTYPE")return"MEMBERSHIP,DATE";break;default:return""}return""}function y(){h.busy=!0;var i={},t=[];angular.forEach(h.selectedQualifierOptions,function(n,r){for(var u in n)i=n[u],t.push({qualCode:i.value,qualType:r})});switch(h.qualifierType){case"MARKETINGCODE":f.postQualifiers(h.marketingCode,t).then(function(){n.$broadcast("marketingCodeQualifiersChanged",{code:h.marketingCode.code});c()},function(){n.$broadcast("marketingCodeQualifiersChanged",{code:h.marketingCode.code});c()});break;case"REGTYPE":case"DISCOUNT":f.postDiscountQualifiers(h.discount,t).then(function(){n.$broadcast("marketingCodeDiscountQualifiersChanged",{discountID:h.discountID});c()},function(){n.$broadcast("marketingCodeDiscountQualifiersChanged",{discountID:h.discountID});c()});break;default:c()}}function p(){return h.qualifierType.toUpperCase()==="MARKETINGCODE"}function l(){return h.qualifierType.toUpperCase()==="DISCOUNT"||h.qualifierType.toUpperCase()==="REGTYPE"}function w(){h.discountType=e.determineDiscountType(h.discount)}function c(){switch(h.qualifierType){case"MARKETINGCODE":r.go("marketingCode.edit");break;case"REGTYPE":case"DISCOUNT":r.go("marketingCode.edit.discount-edit",{discountID:h.discountID});break;default:r.go("root.all")}}var h=this;h.marketingCode=s;h.qualifierTypes=f.qualifierTypes;h.busy=!1;h.canSave=!1;h.selectedQualifierOptions={Registration:[],Membership:[],Date:[]};h.qualifiers=null;h.qualifierType=o.toUpperCase();h.code=r.params.code;h.discountID=r.params.discountID;h.done=c;h.saveQualifiersAndClose=y;h.isMarketingCodeMode=p;h.isDiscountMode=l;h.getQualifierTypesToShow=v;a()}angular.module("MarketingCodeModule").controller("EditQualifiersController",n);n.$inject=["$rootScope","$scope","$q","$state","MarketingCodeFactory","QualifierFactory","DiscountFactory","qualifierType","marketingCode"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function w(){f.getCanPush().then(function(n){a.canPush=n});v()}function b(){t.go("marketingCode.add")}function k(n){t.go("marketingCode.edit",{code:n})}function d(n){switch(n.toUpperCase()){case"DISCOUNT":return a.codeTypeIcons.DISCOUNT;case"ACCESS":return a.codeTypeIcons.ACCESS;case"TRACKING":return a.codeTypeIcons.TRACKING}}function g(){return h.showModal({bodyTemplate:'<div><p class="lead">Are you sure you want to push Marketing Codes?<\/p><\/div>',footerTemplate:'<button class="button" ng-click="modalCtrl.close(\'OK\')">Yes<\/button> &nbsp; <button class="button dark" ng-click="modalCtrl.close()">No<\/button>',controller:"ModalController",inputs:{title:"Confirm"},modalcss:"tiny"}).then(function(n){if(n&&n.status)switch(n.status.toUpperCase()){case"OK":var t=i.open({template:'<div class="text-center"><p class="lead">Pushing Marketing Codes<\/p><i class="fa fa-fw fa-spin fa-5x fa-gear"><\/i><\/div>',windowClass:"tiny",backdrop:"static",keyboard:!1});t.result.then(function(n){n?s.displaySuccess("Marketing Codes successfully pushed."):s.displayError("Marketing Code push failed.")});f.pushMarketingCodes().then(function(n){t.close(n||!1)})}})}function nt(n){angular.isUndefined(a.sortExpression)?a.sortDesc=!1:a.sortExpression===n&&(a.sortDesc=!a.sortDesc);a.sortExpression=n;p();y()}function v(){a.isFiltered=a.codeSearch||_.some(a.filters,function(n){return n.selecteditems.length});a.filteredMarketingCodes=r("filter")(a.marketingCodes,tt);p();y()}function y(){var n,t;a.sortedMarketingCodes&&(n=(a.currentPage-1)*a.itemsPerPage,n>a.sortedMarketingCodes.length&&(n=0,a.currentPage=1),t=n+a.itemsPerPage,a.pagedMarketingCodes=a.sortedMarketingCodes.slice(n,t),a.hasPages=!0,Math.ceil(a.sortedMarketingCodes.length/a.itemsPerPage)<2&&(a.hasPages=!1))}function p(){a.filteredMarketingCodes&&(a.sortedMarketingCodes=r("orderBy")(a.filteredMarketingCodes,a.sortExpression,a.sortDesc))}function tt(n){var t=!0,i,r,u,e,o,f,s,h;return a.codeSearch&&(t=t&&n.code.toLowerCase().indexOf(a.codeSearch.toLowerCase())>=0),i=_.find(a.filters,{internalName:"CODETYPE"}),i&&i.selecteditems&&i.selecteditems.length&&(t=t&&_.some(i.selecteditems,function(t){return t.value.toLowerCase()===n.codeType.toLowerCase()})),r=_.find(a.filters,{internalName:"ISACTIVE"}),r&&r.selecteditems&&r.selecteditems.length&&(t=t&&_.some(r.selecteditems,function(t){return t.value.toLowerCase()===n.isActive.toString().toLowerCase()})),u=_.find(a.filters,{internalName:"DISCOUNTSHOWITEMS"}),u&&u.selecteditems&&u.selecteditems.length&&(e=_.pluck(u.selecteditems,"value"),o=_.filter(n.marketingCodeDiscounts,{isActive:!0}),t=t&&_.some(o,function(n){var t=_.pluck(_.filter(n.discountTargets,{isActive:!0}),"discountTarget");return _.some(t,function(n){return e.indexOf(n)>=0})})),f=_.find(a.filters,{internalName:"DISCOUNTREGTYPES"}),f&&f.selecteditems&&f.selecteditems.length&&(s=_.pluck(f.selecteditems,"value"),h=_.filter(n.marketingCodeDiscounts,{isActive:!0,type:"REGTYPE"}),t=t&&_.some(h,function(n){var t=_.pluck(_.filter(n.discountQualifiers,{isActive:!0,qualType:"Registration"}),"qualCode");if(t.length)return _.some(t,function(n){return s.indexOf(n)>=0})})),t}function it(){var n={title:"Filter By:",filters:a.filters,clearFilters:function(){angular.forEach(a.filters,function(n){n.selecteditems=[]})}};return h.showModal({bodyTemplateUrl:"App/MarketingCode/Views/MarketingCodeFilters.html",footerTemplate:'<button class="button" ng-click="modalCtrl.clearFilters()">Clear<\/button> &nbsp; <button class="button dark" ng-click="modalCtrl.close(\'Search\')">Search<\/button>',controller:"ModalController",inputs:n}).then(function(n){n.status==="Clear"&&angular.forEach(a.filters,function(n){n.selecteditems=[]});v()})}function rt(n,t){var i=t.selecteditems,r;n?(r=i.indexOf(n),i.splice(r,1)):i.length=0;t.isActive=i.length;v()}function ut(){a.isDownloadingProofingReport=!0;f.getProofingReport().success(function(n,t,i){var r,s=i()["content-disposition"],e,f,o;if(s)for(e=s.split(";"),f=0;f<e.length;f++)o=e[f],/^\s*filename\s*=/i.test(o)&&(r=o.split("=")[1].replace(/^(['"]?)(.*)\1/,"$2"));r||(r="MCProofingReport "+moment.utc().format("l")+".csv");u.saveAs(n,r)}).error(function(){s.displayError("An error occurred while attempting to download the Proofing Report")}).finally(function(){a.isDownloadingProofingReport=!1})}var a=this;a.marketingCodes=c;a.createNewMarketingCode=b;a.editMarketingCode=k;a.getIconClass=d;a.pushMarketingCodes=g;a.codeSearch="";a.canPush=!1;a.removeFilter=rt;a.getProofingReport=ut;a.isDownloadingProofingReport=!1;a.codeTypeIcons={DISCOUNT:"fa-tag",ACCESS:"fa-unlock",TRACKING:"fa-crosshairs"};a.showFilters=it;a.filters=[{internalName:"CODETYPE",displayName:"Code Types",filterItems:f.codeTypes,selecteditems:[],hideSearchFilter:!0,displayColumnCount:3},{internalName:"ISACTIVE",displayName:"Code Is Active",filterItems:[{text:"Active",value:"true"},{text:"Inactive",value:"false"}],selecteditems:[],hideSearchFilter:!0,displayColumnCount:2}];e.getAllDiscountTargets().then(function(n){var t=_.map(n,function(n){return{text:[n.showItemCode,n.description].join("-"),value:n.showItemCode}});a.filters.push({internalName:"DISCOUNTSHOWITEMS",displayName:"Discounted Showitems",filterItems:t,selecteditems:[],displayColumnCount:2,hideSearchFilter:!1})});o.getQualifierOptions("Registration").then(function(n){var t=_.map(n.options,function(n){return{text:[n.statusCode,n.description].join("-"),value:n.statusCode}});_.remove(t,function(n){return n.value.indexOf(".")>=0});a.filters.push({internalName:"DISCOUNTREGTYPES",displayName:"Discounted Regtypes",filterItems:t,selecteditems:[],displayColumnCount:3,hideSearchFilter:!1})});a.currentPage=1;a.itemsPerPageStep=10;a.itemsPerPage=10;a.maxPagerSize=5;a.hasPages=!0;a.applyPaging=y;a.applyFilter=v;a.sortSelect=nt;a.sortHeaders={defaultSort:"code",code:"code",codeType:"codeType",active:"isActive"};a.sortSelect(a.sortHeaders.defaultSort);a.logout=function(){l.logout()};n.$watch(function(){return a.codeSearch},function(n,t){n!=t&&(a.currentPage!=1&&(a.currentPage=1,a.pageReset=!0),a.applyFilter())},!0);n.$watch(function(){return a.currentPage},function(n,t){n!=t&&(a.pageReset||a.applyPaging(),a.pageReset=!1)});n.$watch(function(){return a.itemsPerPage},function(n,t){n!=t&&a.applyPaging()});w()}angular.module("MarketingCodeModule").controller("MarketingCodeAllController",n);n.$inject=["$scope","$state","$modal","$filter","$window","MarketingCodeFactory","DiscountFactory","QualifierFactory","NotificationFactory","ModalFactory","marketingCodes","MarketingCodeLoginService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function c(){e.busy=!1;angular.isUndefined(e.marketingCode)&&(e.isNewMarketingCode=!0,e.marketingCode={marketingCodeID:0,isActive:!0});e.isMarketingCodeActive=e.marketingCode.isActive;l();r.getCanSave().then(function(n){e.canSave=n})}function l(){var n,t;e.marketingCode.beginDate&&(n=new Date(e.marketingCode.beginDate),e.beginDate=n,e.beginTime=moment(n).format("h:mm A"));e.marketingCode.endDate&&(t=new Date(e.marketingCode.endDate),e.endDate=t,e.endTime=moment(t).format("h:mm A"))}function a(){var n,i,t,r;e.beginDate&&(n=moment(e.beginDate),n.subtract(n.utcOffset(),"m"),e.beginTime&&(i=moment.duration(e.beginTime),e.beginTime.substring(e.beginTime.length-2)==="PM"&&i.add(moment.duration(12,"hours")),n.hours(i.hours()),n.minutes(i.minutes())),e.marketingCode.beginDate=new Date(n));e.endDate&&(t=moment(e.endDate),t.subtract(t.utcOffset(),"m"),e.endTime&&(r=moment.duration(e.endTime),e.endTime.substring(e.endTime.length-2)==="PM"&&r.add(moment.duration(12,"hours")),t.hours(r.hours()),t.minutes(r.minutes())),e.marketingCode.endDate=new Date(t))}function v(){angular.isDefined(e.marketingCode)&&(e.busy=!0,r.getCode(e.marketingCode.code).then(function(n){e.marketingCode=n;e.busy=!1}))}function y(){e.formMarketingCode.$valid&&(a(),e.showSavingSpinner=!0,o(e.marketingCode).then(p).catch(function(n){e.showSavingSpinner=!1;e.errors=n}))}function p(){e.showSavingSpinner=!1;t.go("root.all")}function o(n){return r.postCode(n).then(function(n){return n},function(n){return i.reject(n)})}function w(){return!e.isNewMarketingCode&&e.marketingCode.codeType==="DISCOUNT"}function b(n){(n.preventDefault(),angular.isDefined(e.formMarketingCode)&&e.formMarketingCode.$setSubmitted(),e.formMarketingCode.$valid)&&(e.marketingCode.marketingCodeID===0?o(e.marketingCode).then(s).catch(function(n){e.errors=n}):s())}function s(){t.go("marketingCode.edit.qualifiers")}function k(n,t){(n.preventDefault(),angular.isDefined(e.formMarketingCode)&&e.formMarketingCode.$setSubmitted(),e.formMarketingCode.$valid)&&(e.marketingCode.marketingCodeID===0?o(e.marketingCode).then(function(){h(t)}).catch(function(n){e.errors=n}):h(t))}function h(n){t.go("marketingCode.edit.discount-new",{type:n,code:e.marketingCode.code})}var e=this;e.marketingCode=u;e.save=y;e.busy=!0;e.canSave=!1;e.isNewMarketingCode=!1;e.showQualifiersAndDiscounts=w;e.editQualifiers=b;e.attemptEditQualifiers=!1;e.addNewDiscount=k;e.minDate=new Date(2014,1,1);e.maxDate=new Date(2020,12,31);e.codeTypeList=r.codeTypes;e.logout=function(){f.logout()};e.activeItemList=[{text:"Active",value:!0},{text:"Inactive",value:!1}];n.$on("marketingCodeDiscountDone",function(){v()});c()}angular.module("MarketingCodeModule").controller("MarketingCodeController",n);n.$inject=["$scope","$state","$q","MarketingCodeFactory","marketingCode","MarketingCodeLoginService"]}(),function(){"use strict";function n(n,t,i,r,u,f){var e=this,o;i.isLoggedIn()&&t.go("root.all");e.items=[];o="MARKETINGCODE_LOGIN";e.items.push(f.createFieldDetailTextBox("username",o));e.profile={};e.profile.userName="";e.profile.password="";e.login=function(){if(e.formLogin.$invalid){var n=r.touchAllInputs(e.formLogin);n&&r.setFocusByName(n,!1);return}e.showWait=!0;e.showNoFlow=!1;i.login(e.profile.username,e.profile.password).then(function(){t.go("root.all")},function(n){u.displayError(n[0].text)}).finally(function(){e.showWait=!1})};e.goToFlowSelection=function(){i.goToFlowSelection()}}angular.module("MarketingCodeModule").controller("MarketingCodeLoginController",n);n.$inject=["$scope","$state","MarketingCodeLoginService","DocumentService","NotificationFactory","FieldDetailFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function c(n){for(var u=s["searchTerms"+n]=[],i=s.layoutGroups[n-1].layout,r=s["profile"+n],t=0;t<i.length;t++)r[i[t].fieldName]&&u.push({text:i[t].description,value:r[i[t].fieldName]})}var s=this,l=n.current.data.config,h;s.isOpen=!0;s.currentPage=1;s.disableNonMemberAccess=l.disableNonMemberAccess;h={};angular.extend(h,{registrant:u.getCurrentRegistrant(),memberLayout:t.getLayout()});o.all(h).then(function(n){var t,i,u,e,f,o;if(s.layoutGroups=n.memberLayout.data,t=n.registrant,t&&t.memberNumber)r.promote();else for(i=0;i<s.layoutGroups.length;i++)for(u=s.layoutGroups[i],e={},s["profile"+u.groupOrder]=e,f=0;f<u.layout.length;f++)o=u.layout[f],e[o.fieldName]=t?t[o.fieldName]:""});s.search=function(n){i.checkFormIsValid(s["formMember"+n])&&(s.previousSearchIndex=n,s.searchResults=null,s.recordCount="",c(n),s.searchGroup=n,t.search(n,s["profile"+n]).then(function(n){n.recordCount==1?s.select(n.list[0]):(s.searchResults=n.list,s.recordCount=n.recordCount,s.pageCount=n.pageCount,s.closeAccordion())}))};s.loadMore=function(){s.recordCount="";c(s.searchGroup);s.currentPage++;t.search(s.searchGroup,s["profile"+s.searchGroup],s.currentPage).then(function(n){s.searchResults=s.searchResults.concat(n.list);s.recordCount=n.recordCount;s.pageCount=n.pageCount;s.closeAccordion()})};s.clear=function(n){i.resetForm(s["formMember"+n]);s["searchTerms"+n]=[];s.currentPage=1;s.searchGroup&&s.searchGroup==n&&(s.searchGroup=null)};s.continue=function(){r.promote()};s.select=function(n){t.post(n).then(function(n){u.setCurrentRegistrant(n.registrant);var t={regId:n.registrant.registrantId};r.promote(t)})};s.openAccordion=function(){s.isOpen=s.isOpen===1||1};s.closeAccordion=function(){s.isOpen=s.isOpen===0?!1:0}}angular.module("MemberModule").controller("MemberTaskController",n);n.$inject=["$state","MemberService","DocumentService","WizardNavService","RegistrantFactory","RegistrantLoginService","$scope","$q"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function k(n){return n&&(n.balanceDue>0||!n.isCompleted)?f.loadCurrentRegistrant().then(function(n){return n}):o.when(n)}function d(){a.isGroupFlow?u.goToTaskByName(ExlConstants.wizardTaskInternalName.CompletedPersonnel):u.promote()}var a=this,p="Please check the box to allow authorization of your payment",w="Please select the items you wish to pay for",b="Please specify how you would like to pay.",v,y;a.nextLabel="Guarantee Now";a.disableNext=!1;a.paymentMethod=ExlConstants.paymentMethods.creditCard;a.selectedAmount="";r.getChecksRemainingUnpaid()&&(s.pop("warning","Unpaid Items","Checks have been accepted for the selected items. There are still some unpaid items.",0,"trustedHtml",null),r.setChecksRemainingUnpaid(!1));t.$broadcast(ExlConstants.events.paymentApplied,!0);a.isGroupIndividual=h.flow.isGroupIndividual;a.isGroupFlow=h.flow.isGroup;v=u.previousTask();v&&v!=u.currentTask()||(a.hideButtonBack=!0);a.isGroupIndividual&&(y=n.params.regId);r.getPaymentList(y).then(function(n){n.balanceDue<=0&&!n.isccg?f.getCurrentRegistrant().then(k).then(d):(a.payList=n,a.selectedAmount=n.balanceDue,a.selectedCCG=n.isccg)},function(){a.disableNext=!0}).finally(function(){a.isLoaded=!0});c.getData().success(function(n){if(n.success){var t=c.filterData(n.data,"WEB_PAY_CHECK_PEND");a.webCheckPendText=t||"Waiting for check payment to be processed."}});a.select=function(n){n.isSelected=!n.isSelected;a.calc()};a.checkSelect=function(n){n.stopPropagation();a.calc()};a.calc=function(){var n=0;a.payList.charges.forEach(function(t){t.isSelected&&(n+=t.balanceDue)});a.selectedAmount=n;a.selectedCCG=!1;a.payList.rooms.forEach(function(n){n.isSelected&&(a.selectedCCG=!0)})};a.changeAllowPayment=function(n){a.allowPayment=n};a.changePaymentMethod=function(n,t){a.disableNext=exlBaseFunctions.isNullOrWhiteSpace(n);a.paymentMethod=n;a.surplus=t};a.next=function(){if(a.payList){if(exlBaseFunctions.isNullOrWhiteSpace(a.paymentMethod)){l.displayError(b);return}if(exlBaseFunctions.stringEqualsIgnoreCase(a.paymentMethod,ExlConstants.paymentMethods.creditCard)&&!a.allowPayment){l.displayError(p);return}if(a.selectedAmount===0&&!a.selectedCCG){l.displayError(w);return}var n=[];exlBaseFunctions.stringEqualsIgnoreCase(a.paymentMethod,ExlConstants.paymentMethods.creditCard)?(n=r.buildPayList(a.payList.charges,a.payList.rooms),r.redirectToSecuremit(n)):exlBaseFunctions.stringEqualsIgnoreCase(a.paymentMethod,ExlConstants.paymentMethods.check)?(n=r.buildPayList(a.payList.charges,a.payList.rooms),r.paymentByCheck(n)):exlBaseFunctions.stringStartsWith(a.paymentMethod,ExlConstants.paymentMethods.surplus)&&a.surplus&&a.surplus.bookingTransactionId&&(n=r.buildPayList(a.payList.charges,a.payList.rooms),r.paymentWithSurplus(n,a.surplus.bookingTransactionId))}}}angular.module("PaymentModule").controller("PaymentTaskController",n);n.$inject=["$state","$rootScope","$scope","PaymentService","WizardNavService","RegistrantFactory","BookingFactory","$q","toaster","WIZARD","StaticTextService","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){o.filter=i.getFilter().filterFields;o.regOptionData.isRegistrationEnabled=!exlBaseFunctions.stringEqualsIgnoreCase(u.flow.registrationType,ExlConstants.flowRegistrationTypes.none);o.regOptionData.isHousingEnabled=!exlBaseFunctions.stringEqualsIgnoreCase(u.flow.housingType,ExlConstants.flowRegistrationTypes.none);o.regOptionData.viewCompleted=!0;o.editPersonData.regOptionData=o.regOptionData;var r={};angular.extend(r,{personnel:h(),filterData:i.getFilterData(!0)});t.all(r).then(function(n){if(o.isBookingContactVerified=n.personnel.isBookingContactVerified,o.bookingInviteURL=n.personnel.inviteURL,!o.isBookingContactVerified){e.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard);return}o.filterRegTypes=n.filterData.registrationTypes;o.filterHotelItemList=n.filterData.qualifiedHotelItemList;o.selectedFilterFields=i.setSelectedFilterFields();o.isLoaded=!0});n.$watch(function(){return o.filter.regType.value},function(n,t){n!=t&&(n==""?o.selectedFilterRegType="":o.filter.noReg.value="")});n.$watch(function(){return o.filter.hotel.value},function(n,t){n!=t&&(n==""?o.selectedFilterHotelItem="":o.filter.noRes.value="")});n.$watch(function(){return o.filter.noRes.value},function(n,t){n!=t&&n&&(o.filter.waitlist.value="")});n.$watch(function(){return o.filter.completedType},function(n,t){if(n!=t)switch(n){case ExlConstants.filterCompletedTypes.RegOnly:o.filter.noReg.value="";break;case ExlConstants.filterCompletedTypes.ResOnly:o.filter.noRes.value="";break;case ExlConstants.filterCompletedTypes.RegAndRes:o.filter.noReg.value="";o.filter.noRes.value=""}})}function h(){var n=t.defer();return i.selectPersonnel().then(function(t){o.personnelData=t;n.resolve(t)},function(){n.reject()}),n.promise}function c(n){if(!o.disableInput)switch(n){case r.eventHandlerCodes.setSelectedFilterFields:o.selectedFilterFields=i.setSelectedFilterFields();break;default:o.disableInput=!1}}function l(){o.filter=i.resetFilter().filterFields}function a(n){o.filter[n.propertyName].value=""}var o=this;o.regOptionData={};o.editPersonData={};o.clearFilters=l;o.removeFilterField=a;o.personnelTaskEventHandler=c;o.filterCompletedTypes=ExlConstants.filterCompletedTypes;s()}angular.module("PersonnelModule").controller("CompletedPersonnelTaskController",n);n.$inject=["$scope","$q","CompletedPersonnelFactory","PersonnelFactory","WIZARD","BookingFactory","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function w(){if(l.filter=u.getFilter().filterFields,!h.flow.isPreview){var n={};angular.extend(n,{personnel:y(),filterData:u.getFilterData(!0),regOptionData:u.getRegistrationOptions(),assignedHotels:f.getAssignedHotels()});i.all(n).then(function(n){if(l.isBookingContactVerified=n.personnel.isBookingContactVerified,l.bookingInviteURL=n.personnel.inviteURL,!l.isBookingContactVerified){s.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard);return}l.filterRegTypes=n.filterData.registrationTypes;l.filterHotelItemList=n.filterData.qualifiedHotelItemList;l.selectedFilterFields=u.setSelectedFilterFields();n.regOptionData.viewAll=!0;l.regOptionData=n.regOptionData;l.newPersonData.isHousingEnabled=n.regOptionData.isHousingEnabled;l.newPersonData.isRegistrationEnabled=n.regOptionData.isRegistrationEnabled;l.newPersonData.isInviteIndividualEnabled=n.regOptionData.isInviteIndividualEnabled;l.newPersonData.housingRequirementsSatisfied=n.regOptionData.housingRequirementsSatisfied;l.newPersonData.regOptions=n.regOptionData.regOptions;l.editPersonData.regOptionData=n.regOptionData;p();l.newPersonData.assignedHotels=n.assignedHotels;l.isLoaded=!0})}t.$watch(function(){return l.filter.regType.value},function(n,t){n!=t&&(n==""?l.selectedFilterRegType="":l.filter.noReg.value="")});t.$watch(function(){return l.filter.hotel.value},function(n,t){n!=t&&(n==""?l.selectedFilterHotelItem="":l.filter.noRes.value="")});t.$watch(function(){return l.filter.noRes.value},function(n,t){n!=t&&n&&(l.filter.waitlist.value="")})}function b(){var n=i.defer();return l.isRegistrationOpen?u.downloadTemplate().then(function(){n.resolve()},function(){n.reject()}):n.reject(),n.promise}function k(n){var t=i.defer();return u.downloadExport(n).then(function(){},function(){t.reject()}),t.promise}function d(n){var t=u.uploadList(n);t!==undefined&&t.then(function(n){if(n){var t="";n.errorText&&(t+="<p>"+n.errorText+"<\/p><br />");n.successText&&(t+="<p>"+n.successText+"<\/p>");o.showModal({bodyTemplate:t,footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'OK\')">Continue<\/button>',controller:"ModalController",inputs:{title:"Personnel Import Results"}});v();a()}})}function v(){r(function(){l.uploadModel&&(l.uploadModel.attachment=null);document.forms.formImport.reset()})}function y(){var n=i.defer();return u.selectPersonnel().then(function(t){l.personnelData=t;l.newPersonData.registrationData=t.registrationData;l.newPersonData.registrationData.selectedRegType=exlBaseFunctions.findFirstByKey(t.registrationData.registrationTypes,"value",t.registrationData.defaultRegType);l.editPersonData.registrationData=t.registrationData;n.resolve(t)},function(){n.reject()}),n.promise}function g(n){if(!l.disableInput)switch(n){case ExlConstants.eventHandlerCodes.add:a();c.scrollToElemById(l.addNewAccordionHeaderId);break;case ExlConstants.eventHandlerCodes.update:a();break;case ExlConstants.eventHandlerCodes.cancel:l.newPersonData.registrationData.selectedRegType=angular.copy(exlBaseFunctions.findFirstByKey(l.newPersonData.registrationData.registrationTypes,"value",l.newPersonData.registrationData.defaultRegType));p();c.scrollToElemById(l.addNewAccordionHeaderId);break;case u.eventHandlerCodes.setSelectedFilterFields:l.selectedFilterFields=u.setSelectedFilterFields();break;default:l.disableInput=!1}}function a(){e.refreshBookingFinancials();y()}function p(){l.newPersonData.selectedRegOption=u.getRegOptionPreference();u.setPersonNeeds(l.newPersonData.selectedRegOption,l.newPersonData)}function nt(){l.filter=u.resetFilter().filterFields}function tt(n){l.filter[n.propertyName].value=""}var l=this;l.addNewAccordionHeaderId="AddNewAccordionHeader";l.newPersonData={};l.editPersonData={};l.clearFilters=nt;l.removeFilterField=tt;l.personnelTaskEventHandler=g;l.downloadTemplate=b;l.downloadExport=k;l.uploadList=d;l.reset=v;l.isRegistrationOpen=h.isRegistrationOpen();l.isExhibitor=h.flow.flowCode=="EXH";w()}angular.module("PersonnelModule").controller("PersonnelTaskController",n);n.$inject=["$rootScope","$scope","$q","$timeout","PersonnelFactory","RegistrantGroupFactory","BookingFactory","ModalFactory","WizardNavService","WIZARD","DocumentService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function w(){if(r.flow.isPreview)a.profile=JSON.parse('{"interfaceType" : "IContact"}'),a.hideButtonNext=!0;else{a.createNewBooking=u.getCreateNewBooking();u.setCreateNewBooking(null);a.createNewBooking&&t.$broadcast(ExlConstants.events.creatingNewBooking,!0);var n=function(n,t,i){var r=_.find(t,{fieldName:"deliveryAccountNumber"});r&&(r.isDisabled=!(n==="U"||n==="F"),r.isDisabled&&angular.isDefined(i.deliveryAccountNumber)&&(i.deliveryAccountNumber=""))};b().then(function(t){var i=0,r=0;t!=null&&(i=t.registrantId,r=t.bookingId);f.getContactProfile(i).then(function(t){a.profile=t.profile;a.profile.demographics.teamname&&a.profile.demographics.teamname!=""||(a.profile.demographics.teamname=l.getSession(ExlConstants.session.teamName));a.profile.demographics.teamnum&&a.profile.demographics.teamnum!=""||(a.profile.demographics.teamnum=l.getSession(ExlConstants.session.teamNum));a.profile.demographics.teamprog&&a.profile.demographics.teamprog!=""||(a.profile.demographics.teamprog=l.getSession(ExlConstants.session.teamProg));a.profile.bookingId=r;a.overrides=t.overrides;n(a.profile.deliveryMethod,a.data);angular.isDefined(a.profile.deliveryMethod)&&(c.$watch(function(){return a.data},function(){n(a.profile.deliveryMethod,a.data,a.profile)}),c.$watch(function(){return a.profile.deliveryMethod},function(){n(a.profile.deliveryMethod,a.data,a.profile)}))})},function(){a.hideButtonNext=!0;v()})}}function b(){var t=n.defer();return a.createNewBooking?t.resolve(null):u.getContact().then(function(n){n!=null&&n.bookingId>0?t.resolve(n):t.reject()},function(n){t.reject(n)}),t.promise}function k(){var n="Save",t,i;return a.isGroupFlow&&(t=a.profile&&a.profile.registrantId>0,i=a.profile&&a.profile.isVerified,t&&!i&&(n="Verify")),n}function d(){o.checkFormIsValid(a.formProfile)&&g(a.profile).then(nt).then(v)}function g(t){return f.postContactProfile(t).then(function(t){return t.registrant.registrantId>0?(a.profile.registrantId=t.registrant.registrantId,a.profile.bookingId=t.bookingId,o.setFormPristine(a.formProfile),t):(h.displayError("Error saving contact profile."),n.reject())},function(t){return n.reject(t)}).finally(function(){a.showDupeOverride=t.isDupe})}function nt(t){return a.isGroupFlow?s.createBookingAuthToken(a.profile.bookingId).then(function(){return t},function(t){return n.reject(t)}):n.when(t)}function v(){var n;y.allowMultipleRegPerBooking&&(n=r.tasks[ExlConstants.wizardTaskInternalName.GroupSummary]);e.goToTask(n||r.tasks[ExlConstants.wizardTaskInternalName.Dashboard])}function tt(){v()}var a=this,p,y;a.next=d;a.back=tt;a.hideButtonNext=!1;a.labelButtonNext=k;p=r.flow;y=i.current.data.config;a.isGroupFlow=r.flow.isGroup;a.isTeamFlow=r.flow.flowCode=="TEAM";w()}angular.module("ProfileModule").controller("GroupContactProfileTaskController",n);n.$inject=["$q","$rootScope","$state","WIZARD","BookingFactory","ProfileFactory","WizardNavService","DocumentService","RegistrantGroupLoginService","NotificationFactory","$scope","WebStorageFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function a(){e.checkFormIsValid(h.formProfile)&&v(h.profile).then(y)}function v(t){return i.postProfile(t,!0).then(function(n){var t=n.registrant||n;return r.setCurrentRegistrant(t),h.profile.registrantId=t.registrantId,h.profile.password&&(h.profile.password="",h.profile.hasPassword=!0),s.clearBoostParams(),e.setFormPristine(h.formProfile),t},function(t){return n.reject(t)}).finally(function(){h.showDupeOverride=t.isDupe})}function y(n){var t={regId:n.registrantId};f.promote(t)}var h=this,l,c;h.next=a;h.isSelfReg=o;h.isGroupIndividual=t.flow.isGroupIndividual;i.getProfile().then(function(n){h.profile=n});l=f.currentTask();c=l.config;h.showAdaFields=c.adaFieldsVisible;h.showBadgeFields=c.badgeFieldsVisible;h.marketingCodeValidation=c.marketingCodeValidation;h.marketingCodeVisible=c.marketingCodeVisible;h.colSize=c.layoutGridColumnSize;h.enableNameOnValidMemberNumber=t.tasks.Member?t.tasks.Member.config.enableNameOnValidMemberNumber:!1;h.enableFacebookLogin=c.enableFacebookLogin;r.getCurrentRegistrant().then(function(n){n&&(n.isCompleted||n.memberNumber&&!h.enableNameOnValidMemberNumber)&&(h.overrides={firstName:{isDisabled:!0},lastName:{isDisabled:!0}})});h.hideButtonBack=!1;l.PreviousTask&&l.PreviousTask.taskInternalName=="Member"&&(h.hideButtonBack=!0);h.signInFacebook=function(){u.signInFacebook("Profile",!0)}}angular.module("ProfileModule").controller("ProfileTaskController",n);n.$inject=["$q","WIZARD","ProfileFactory","RegistrantFactory","RegistrantLoginService","WizardNavService","DocumentService","ISSELFREG","BoostService"]}(),function(){"use strict";function n(n,t,i,r){function f(){i.getCurrentBlockRequest().then(function(t){u.currentBlockRequest=angular.copy(t);exlBaseFunctions.stringEqualsIgnoreCase(u.currentBlockRequest.requestStatus,ExlConstants.blockRequestStatus.submitted)&&n.$watch(function(){return u.currentBlockRequest},function(n,t){n!=t&&(u.submittedBlockRequestUpdated=!0)},!0)}).finally(function(){i.isBlockRequestEditAllowed(u.currentBlockRequest).then(function(n){n||r.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)})})}function e(n){u.disableInput||(u.disableInput=!0,i.increaseSelectionCriteriaPriority(u.currentBlockRequest,n),u.disableInput=!1)}function o(n){u.disableInput||(u.disableInput=!0,i.decreaseSelectionCriteriaPriority(u.currentBlockRequest,n),u.disableInput=!1)}function s(){var n=t.defer();return u.disableInput?n.reject():(u.disableInput=!0,i.setBlockRequestUpdated(u.submittedBlockRequestUpdated),u.currentBlockRequest.submittedBlockRequestUpdated=u.submittedBlockRequestUpdated,i.postSelectionCriteria(u.currentBlockRequest).then(function(t){u.currentBlockRequest=t;i.updateCurrentBlockRequest(u.currentBlockRequest);n.resolve(t)},function(t){n.reject(t)}).finally(function(){u.disableInput=!1})),n.promise}function h(){s().then(function(){r.promote()})}var u=this;u.submittedBlockRequestUpdated=!1;u.increaseSelectionCriteriaPriority=e;u.decreaseSelectionCriteriaPriority=o;u.next=h;u.disableInput=!1;u.subNavTaskList=i.getSubNavTaskList();i.navigateIfDisabled().then(function(n){n||f()})}angular.module("RABModule").controller("RABAdditionalCriteriaTaskController",n);n.$inject=["$scope","$q","RABFactory","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function l(){var n=[];n.push(i.getCurrentBlockRequest());n.push(i.getBlockRequestConfigPolicy());n.push(r.getBlockRequestSettings());t.all(n).then(function(n){h.currentBlockRequest=angular.copy(n[0]);h.configPolicy=n[1];h.isRABEnabled=s.isSectionEnabled(ExlConstants.wizardSectionName.RAB)&&exlBaseFunctions.stringEqualsIgnoreCase(n[2].blockManagementType,ExlConstants.blockManagementTypes.rab)}).finally(function(){v().then(function(){h.isRABEnabled&&h.currentBlockRequest!=null&&exlBaseFunctions.stringEqualsIgnoreCase(h.currentBlockRequest.requestStatus,ExlConstants.blockRequestStatus.fulfilled)||c()})});e.inv&&r.getHotelItemInventory(moment.utc(e.inv.beginDate).toDate(),moment.utc(e.inv.endDate).toDate()).then(function(n){h.hotelItemInventory=n.registrantGroupInventory})}function a(n){h.allowPayment=n}function v(){var n=t.defer();return h.configPolicy.requireCCG&&h.currentBlockRequest!=null&&exlBaseFunctions.stringEqualsIgnoreCase(h.currentBlockRequest.requestStatus,ExlConstants.blockRequestStatus.fulfilled)?i.postBlockRequestGuarantee(h.currentBlockRequest).then(function(n){n!=null&&(h.currentBlockRequest=n,i.updateCurrentBlockRequest(h.currentBlockRequest),exlBaseFunctions.stringEqualsIgnoreCase(h.currentBlockRequest.requestStatus,ExlConstants.blockRequestStatus.guaranteed)&&o.displaySuccess("Your block request has been guaranteed."))}).finally(function(){n.resolve()}):n.resolve(),n.promise}function y(){var n=t.defer();return h.disableInput?n.reject():(h.disableInput=!0,i.postBlockRequestGuarantee(h.currentBlockRequest).then(function(t){h.currentBlockRequest=t;i.updateCurrentBlockRequest(h.currentBlockRequest);n.resolve(t)},function(t){n.reject(t)}).finally(function(){h.disableInput=!1})),n.promise}function p(){if(!h.agreement){o.displayError("Please check the accept box below to guarantee your block.");return}if(h.configPolicy.requireCCG)if(h.allowPayment)f.redirectToSecuremit();else{o.displayError("Please check the authorize box below to allow authorization of your credit card guarantee.");return}else y().then(function(){o.displaySuccess("Your block request has been guaranteed.");c()})}function c(){u.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)}var h=this;h.hotelItemInventoryConfig={};h.next=p;h.allowPayment=!1;h.labelButtonNext="Guarantee My Block";h.disableInput=!1;h.changeAllowPayment=a;l()}angular.module("RABModule").controller("RABGuaranteeTaskController",n);n.$inject=["$scope","$q","RABFactory","RegistrantGroupFactory","WizardNavService","PaymentService","SCHEDULES","NotificationFactory","WIZARD"]}(),function(){"use strict";function n(n,t,i,r){function e(){var n=[];n.push(i.getCurrentBlockRequest());n.push(i.getBlockRequestConfigPolicy());t.all(n).then(function(n){u.currentBlockRequest=angular.copy(n[0]);u.configPolicy=n[1];u.blockRequestStatus=i.getRABStatus(u.currentBlockRequest);u.labelButtonNext="Begin"},function(){u.hasErrors=!0}).finally(function(){f()})}function o(){u.blockRequestStatus.isNew||u.blockRequestStatus.isCancelled?i.addNewBlockRequest().then(function(n){u.currentBlockRequest=n;i.updateCurrentBlockRequest(u.currentBlockRequest);r.promote()}):f()}function f(){u.blockRequestStatus.isNew||u.blockRequestStatus.isCancelled||(u.blockRequestStatus.isInProgress?r.promote():r.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard))}var u=this;u.next=o;i.navigateIfDisabled().then(function(n){n||e()})}angular.module("RABModule").controller("RABHomeTaskController",n);n.$inject=["$scope","$q","RABFactory","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function s(){var i=[];i.push(r.getCurrentBlockRequest());i.push(r.getBlockRequestConfigPolicy());t.all(i).then(function(t){e.currentBlockRequest=angular.copy(t[0]);e.configPolicy=t[1];o();r.getBlockRequestHotelChoices().then(function(n){e.hotelItemChoices=n.choice});exlBaseFunctions.stringEqualsIgnoreCase(e.currentBlockRequest.requestStatus,ExlConstants.blockRequestStatus.submitted)&&n.$watch(function(){return e.currentBlockRequest},function(n,t){n!=t&&(e.submittedBlockRequestUpdated=!0)},!0)}).finally(function(){r.isBlockRequestEditAllowed(e.currentBlockRequest).then(function(n){n||u.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)})})}function o(){for(var t,i=[],n=0;n<e.configPolicy.maxHotelSelections;n++)n>=e.currentBlockRequest.hotelItemCollection.length&&(t={required:!1},n<e.configPolicy.minHotelSelections&&(t.required=!0),i.push(t));e.hotelItemSlots=i}function h(n){e.disableInput||(e.disableInput=!0,r.addHotelItemChoice(e.currentBlockRequest,exlBaseFunctions.findFirstByKey(e.hotelItemChoices,"hotelItemId",n)).then(function(n){e.currentBlockRequest=n;o()}).finally(function(){e.disableInput=!1}))}function c(n){e.disableInput||(e.disableInput=!0,r.removeHotelItemChoice(e.currentBlockRequest,n).then(function(n){e.currentBlockRequest=n;o()}).finally(function(){e.disableInput=!1}))}function l(n){e.disableInput||(e.disableInput=!0,r.increaseHotelItemPriority(e.currentBlockRequest,n),e.disableInput=!1)}function a(n){e.disableInput||(e.disableInput=!0,r.decreaseHotelItemPriority(e.currentBlockRequest,n),e.disableInput=!1)}function v(n){var t=!1;return exlBaseFunctions.findFirstByKey(e.currentBlockRequest.hotelItemCollection,"hotelItemID",n)&&(t=!0),t}function y(){var n=!1;return e.currentBlockRequest.hotelItemCollection.length>=e.configPolicy.maxHotelSelections&&(n=!0),n}function p(n){f.displayHotelProfileModal(n)}function w(){var n=t.defer();return e.disableInput?n.reject():(e.disableInput=!0,r.setBlockRequestUpdated(e.submittedBlockRequestUpdated),e.currentBlockRequest.submittedBlockRequestUpdated=e.submittedBlockRequestUpdated,r.postHotelItems(e.currentBlockRequest).then(function(t){e.currentBlockRequest=t;r.updateCurrentBlockRequest(e.currentBlockRequest);n.resolve(t)},function(t){n.reject(t)}).finally(function(){e.disableInput=!1})),n.promise}function b(){w().then(function(){u.promote()})}function k(){var n=u.previousTask();n&&!exlBaseFunctions.stringEqualsIgnoreCase(n.taskInternalName,ExlConstants.wizardTaskInternalName.RABSummary)?u.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard):u.demote()}var e=this;e.submittedBlockRequestUpdated=!1;e.inventoryStartDate=moment.utc(i.inv.beginDate).toDate();e.inventoryEndDate=moment.utc(i.inv.endDate).add(1,"d").toDate();e.showHotelProfileModal=p;e.addHotelItemChoice=h;e.removeHotelItemChoice=c;e.increaseHotelItemPriority=l;e.decreaseHotelItemPriority=a;e.isHotelItemChoiceSelected=v;e.isMaxHotelLimitReached=y;e.next=b;e.back=k;e.disableInput=!1;e.subNavTaskList=r.getSubNavTaskList();r.navigateIfDisabled().then(function(n){n||s()})}angular.module("RABModule").controller("RABHotelSelectionTaskController",n);n.$inject=["$scope","$q","SCHEDULES","RABFactory","WizardNavService","RoomService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){var r=[];r.push(u.getRegGroupBlockConfigSettings());r.push(u.getBlockRequestConfigPolicy());r.push(u.getCurrentBlockRequest());t.all(r).then(function(t){i.peak&&(o.peakStartDate=moment(i.peak.beginDate).format(),o.peakEndDate=moment(i.peak.endDate).format());o.regGroupBlockConfigSettings=t[0];o.configPolicy=t[1];o.currentBlockRequest=angular.copy(t[2]);exlBaseFunctions.stringEqualsIgnoreCase(o.currentBlockRequest.requestStatus,ExlConstants.blockRequestStatus.submitted)&&n.$watch(function(){return o.currentBlockRequest},function(n,t){n!=t&&(o.submittedBlockRequestUpdated=!0)},!0);h()}).finally(function(){u.isBlockRequestEditAllowed(o.currentBlockRequest).then(function(n){n||f.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)})})}function h(){var r;if(i.inv){var t=angular.extend({includeSoldOut:o.isGradualEngagement},e.getRoomSearchDefaults()),s=t.arrivalDate?t.arrivalDate:moment.utc(i.inv.beginDate).toDate(),h=t.departureDate?t.departureDate:moment.utc(i.inv.endDate).add(1,"d").toDate(),f=u.getFirstRoomNight(o.currentBlockRequest),n=f!=null?f.dayDate:null;o.roomNightStartDate=n?moment.utc(n).toDate():s;r=u.getLastRoomNight(o.currentBlockRequest);n=r!=null?r.dayDate:null;o.roomNightEndDate=n?moment.utc(n).add(1,"d").toDate():h;o.dateStartMin=moment(i.inv.beginDate).toDate();o.dateStartMax=function(){var n=moment(o.roomNightEndDate);return moment(n.isValid()?n.subtract(n.utcOffset(),"m").subtract(1,"d"):i.inv.endDate).toDate()};o.dateEndMin=function(){var n=moment(o.roomNightStartDate);return moment(n.isValid()?n.subtract(n.utcOffset(),"m"):i.inv.beginDate).add(1,"d").toDate()};o.dateEndMax=moment(i.inv.endDate).add(1,"d").toDate();o.datesInitialized=!0}}function c(n){var t=100,i=exlBaseFunctions.findFirstDateByKey(o.configPolicy.configRoomNightCollection,"dayDate",n.dayDate);return i!=null&&(t=i.percentOfPeak),t}function l(n){var t=1;return o.configPolicy!=null&&(n==null||moment(n.dayDate).calendar()>=moment(o.peakStartDate).calendar()&&moment(n.dayDate).calendar()<=moment(o.peakEndDate).calendar())&&(t=o.configPolicy.minRoomsRequested),t}function a(){var n=null;return o.configPolicy!=null&&(n=o.configPolicy.maxRoomsRequested>0?o.configPolicy.maxRoomsRequested:null),n}function v(){o.disableInput||(o.disableInput=!0,u.distributeRoomNightQuantities(o.roomNightStartDate,moment(o.roomNightEndDate).subtract(1,"d").toDate(),o.currentBlockRequest,o.regGroupBlockConfigSettings).then(function(n){o.currentBlockRequest=n}).finally(function(){o.disableInput=!1}))}function y(){var n=t.defer();return o.disableInput?n.reject():(o.disableInput=!0,u.setBlockRequestUpdated(o.submittedBlockRequestUpdated),o.currentBlockRequest.submittedBlockRequestUpdated=o.submittedBlockRequestUpdated,u.postRoomNights(o.currentBlockRequest).then(function(t){o.currentBlockRequest=t;u.updateCurrentBlockRequest(o.currentBlockRequest);n.resolve(t)},function(t){n.reject(t)}).finally(function(){o.disableInput=!1})),n.promise}function p(){y().then(function(){f.promote()})}var o=this;o.submittedBlockRequestUpdated=!1;o.next=p;o.apply=v;o.disableInput=!1;o.subNavTaskList=u.getSubNavTaskList();o.minRoomsRequested=l;o.maxRoomsRequested=a;o.getDistributionPercentage=c;o.isExhibitor=exlBaseFunctions.stringEqualsIgnoreCase(r.flow.registrationType,ExlConstants.flowRegistrationTypes.exhibitor);u.navigateIfDisabled().then(function(n){n||s()})}angular.module("RABModule").controller("RABRoomNightsTaskController",n);n.$inject=["$scope","$q","SCHEDULES","WIZARD","RABFactory","WizardNavService","RoomSearchService"]}(),function(){"use strict";function n(n,t,i,r,u){function e(){i.getCurrentBlockRequest().then(function(n){f.currentBlockRequest=angular.copy(n);f.blockRequestStatus=i.getRABStatus(f.currentBlockRequest);f.labelButtonNext=f.blockRequestStatus.isInProgress?"Submit Block Request":"Next: Dashboard";f.hideButtonBack=!f.blockRequestStatus.isInProgress;i.isBlockRequestEditAllowed(f.currentBlockRequest).then(function(n){n||(f.isBlockRequestEditDisabled=!0)})});f.submittedBlockRequestUpdated=i.getBlockRequestUpdated();f.section1Title=r.getTask(ExlConstants.wizardTaskInternalName.RABHotelSelection).taskDisplayName;f.section2Title=r.getTask(ExlConstants.wizardTaskInternalName.RABAdditionalCriteria).taskDisplayName;f.section3Title=r.getTask(ExlConstants.wizardTaskInternalName.RABRoomNights).taskDisplayName}function o(n){switch(n){case"S1":r.goToTaskByName(ExlConstants.wizardTaskInternalName.RABHotelSelection,null,null,!0);break;case"S2":r.goToTaskByName(ExlConstants.wizardTaskInternalName.RABAdditionalCriteria,null,null,!0);break;case"S3":r.goToTaskByName(ExlConstants.wizardTaskInternalName.RABRoomNights,null,null,!0)}}function s(){var n=t.defer();return f.disableInput?n.reject():(f.disableInput=!0,i.postBlockRequest(f.currentBlockRequest,!0).then(function(t){f.currentBlockRequest=t;i.updateCurrentBlockRequest(f.currentBlockRequest);n.resolve(t)},function(t){n.reject(t)}).finally(function(){f.disableInput=!1})),n.promise}function h(){s().then(function(){r.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard)})}function c(){i.sendBlockRequestConfirmation().then(function(){f.submittedBlockRequestUpdated=!1;i.setBlockRequestUpdated(f.submittedBlockRequestUpdated);u.displaySuccess("Your email has been sent.")})}var f=this;f.blockRequestStatus={};f.next=h;f.edit=o;f.sendConfirmation=c;f.disableInput=!1;f.subNavTaskList=i.getSubNavTaskList();i.navigateIfDisabled().then(function(n){n||e()})}angular.module("RABModule").controller("RABSummaryTaskController",n);n.$inject=["$scope","$q","RABFactory","WizardNavService","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a){function g(n){var i,t;if(n&&n.regTypeCode)for(i=0;i<n.transactionHistory.length;i++)if(t=n.transactionHistory[i],t.showItemCode==="REG"&&t.transactionTypeCode==="PUR"&&!t.isVoided)return t;return null}function nt(){var n,t;if(v.registrant.regTypeCode===""&&p.defaultRegType)for(n=0;n<v.regTypeInfo.regTypeList.length;n++)if(t=v.regTypeInfo.regTypeList[n],t.regTypeCode==p.defaultRegType){d(t);break}}function k(n){var t=_.find(v.regTypeInfo.regTypeList,{regTypeCode:n.regTypeCode});t&&d(t)}function d(n){angular.forEach(v.regTypeInfo.regTypeList,function(t){t.isSelected=t===n})}function tt(t){if(!r.checkFormIsValid(n.frmRegType))return angular.forEach(v.regTypeInfo.regTypeGroups,function(n){n.isOpen=n.isOpen===1||1}),h.reject();var i=v.getSelected(),u=t.regTypeCode==i.regTypeCode?f.saveDemos(t.registrantId,v.profile):f.setRegType(t.registrantId,i.regTypeCode,v.profile);return u.then(function(n){var r=n.data,u;return b=!!r.messages.length,r.success?(u=r.data,e.setCurrentRegistrant(u),v.registrant=u,h.when(u)):(t.regTypeCode&&t.regTypeCode!=i.regTypeCode&&k(t),h.reject(r.messages))})}function it(){if(!b)return o.promote()}function rt(){return s.showModal({bodyTemplateUrl:"App/RegType/Views/RegTypeWarning.html",footerTemplate:'<button class="button" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button><button class="button dark" ng-click="modalCtrl.close(\'OK\')">Change Registration Type<\/button>',controller:"ModalController",modalcss:"small",inputs:{title:"Verify Registration Change"}}).then(function(n){return n})}var v=this,p=t.current.data.config,w,y,b;v.config=p;v.hideRegFees=i.flow.hideRegFees;e.getCurrentRegistrant().then(function(n){v.registrant=n;v.registrant&&(w=g(v.registrant),f.getData(v.registrant.registrantId).then(function(n){v.regTypeInfo=n;v.registrant.regTypeCode&&k(v.registrant);nt();angular.forEach(v.regTypeInfo.regTypeGroups,function(n){n.isOpen=v.config.regTypeGroupDisplay=="OPEN"||_.any(n.regTypeList,"isSelected",!0)});u.getProfile().then(function(n){v.profile=n})}),v.registrant.isCompleted&&l.getData().success(function(n){n.success&&(y=n.data)}))});v.isRegTypeEnabled=function(n){var r,t,f,i,e;if(v.registrant.isCompleted&&p.regTypeUpgradeAllowed){if(w&&y&&y.date)for(t=0;t<y.date.length;t++){var o=y.date[t],s=bigInt(w.statusBitMask),u=bigInt(o.bitValue);if(s&&u&&(f=s.and(u),f&&f.equals(u))){r=o;break}}if(r)for(i=0;i<n.fees.length;i++)if(e=n.fees[i],e.statusCode===r.statusCode)return e.amount>=w.originalAmount}return!0};v.select=function(n){!n.isSelected&&v.isRegTypeEnabled(n)&&d(n)};v.next=function(){var t=v.getSelected(),n,i;if(t===null){c.displayError("Please select a registration type to continue");return}n=v.registrant.regTypeCode!==""&&v.registrant.regTypeCode!=t.regTypeCode;i=n?rt():h.when({status:"OK"});i.then(function(t){t.status==="OK"?tt(v.registrant).then(function(){return n&&(c.displaySuccess("Your registration type has been changed."),v.registrant.isInProgress&&(a.markSubsequentTasksIncomplete(v.registrant.registrantId,o.currentTask().taskInternalName),o.killNavQueue())),f.addGEShowItem()}).then(it).finally(function(){b=!1}):k(v.registrant)})};b=!1;v.getSelected=function(){for(var t,i=v.regTypeInfo.regTypeList,n=0;n<i.length;n++)if(t=i[n],t.isSelected)return t;return null}}angular.module("RegTypeModule").controller("RegTypeTaskController",n);n.$inject=["$scope","$state","WIZARD","DocumentService","ProfileFactory","RegTypeService","RegistrantFactory","WizardNavService","ModalFactory","$q","NotificationFactory","StatusService","WizardTaskStateService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function h(){if(s.reg=n.getSelectedRegistrant(),!s.reg){o.displayError("No record was found.");return}i.getBadgePreviewB64SelfReg(s.reg).success(function(n){s.badgeSrc=n},function(){})}function c(){t.demote()}function l(){t.promote()}function a(){s.editRegFlowCode&&t.switchFlow(s.editRegFlowCode,s.reg.registrantId,!0,ExlConstants.wizardTaskInternalName.ShowSummary)}var s=this;s.back=c;s.print=l;s.edit=a;s.editRegFlowCode=n.getEditRegFlowCode();h(!1)}angular.module("SelfRegModule").controller("SelfRegBadgePreviewTaskController",n);n.$inject=["SelfRegService","WizardNavService","ProductionService","$window","DocumentService","WebStorageFactory","WIZARD","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){if(o.reg=n.getSelectedRegistrant(),o.inputName="RegistrantIdSaved",!o.reg){u.displayError("No record was found.");n.timedLogout();return}o.isExhibitor=exlBaseFunctions.stringEqualsIgnoreCase(e.flow.registrationType,"Exhibitor")&&o.reg.isExhibitor&&f.isLoggedIn();n.getBadgeCount(o.reg.registrantId).then(function(t){var i=t,f,r;angular.isDefined(i)&&i!==null&&angular.isNumber(i)?(f=n.findSetting("PrintLimit")||2,o.printLimitExceeded=f>0&&i>f,o.badgePrinting=!o.printLimitExceeded,r=n.findSetting("BadgePickupStation"),r&&!exlBaseFunctions.isNullOrWhiteSpace(r)&&(o.badgePickupStation=r),o.printLimitExceeded||n.verifyAndPrint(o.reg.registrantId)):u.displayError("An error occurred printing the badge.");n.timedLogout()})}function h(){t.demote()}function c(){n.logout()}function l(){n.timedLogoutCancelled(!0);t.goToTaskByName(ExlConstants.wizardTaskInternalName.SelfRegExhibitorSelect)}var o=this;o.back=h;o.logout=c;o.printAnother=l;s(!1)}angular.module("SelfRegModule").controller("SelfRegBadgePrintTaskController",n);n.$inject=["SelfRegService","WizardNavService","SELFREGSETTINGS","$timeout","NotificationFactory","RegistrantGroupLoginService","WIZARD"]}(),function(){"use strict";function n(n,t,i,r){function f(n){n.isExhibitor=!0;i.validateRegistrant(n).then(function(){r.promote()},function(){i.setSelectedRegistrant(null)})}var u=this;n.predicate="lastName";n.reverse=!1;u.select=f;t.getExhibitorsNoContacts().then(function(n){u.exhibitorList=n})}angular.module("SelfRegModule").controller("SelfRegExhibitorSelectTaskController",n);n.$inject=["$scope","ExhibitorService","SelfRegService","WizardNavService","SELFREGSETTINGS"]}(),function(){"use strict";function n(n,t){function r(){n.doSearch().then(function(n){i.results=n})}function u(){n.clearSearchCriteria();t.demote()}function f(i){n.validateRegistrant(i).then(function(){t.promote()},function(){n.setSelectedRegistrant(null)})}var i=this;i.back=u;i.select=f;r(!1)}angular.module("SelfRegModule").controller("SelfRegFindRegResultsTaskController",n);n.$inject=["SelfRegService","WizardNavService","RegistrantLoginService"]}(),function(){"use strict";function n(n,t,i){function u(n){r.searchOption=n}function f(){r.searchOption?r.searchOption=null:t.demote()}function e(){if(!r.inputBarcode||r.inputBarcode<=0){i.displayError("Invalid barcode. Please try again or proceed to a staffed registration counter for assistance.");return}n.setSearchCriteria(r.inputBarcode,"","");t.promote()}function o(){if(exlBaseFunctions.isNullOrWhiteSpace(r.inputFirstName)||exlBaseFunctions.isNullOrWhiteSpace(r.inputLastName)){i.displayError("Please specify both first initial and last name for the search.");return}n.setSearchCriteria(0,r.inputFirstName,r.inputLastName);t.promote()}function s(){if(!r.inputId||r.inputId<=0){i.displayError("Invalid Registrant ID. Please try again or proceed to a staffed registration counter for assistance.");return}n.setSearchCriteria(r.inputId,"","");t.promote()}var r=this;r.setSearchOption=u;r.back=f;r.searchByBarcode=e;r.searchByName=o;r.searchById=s}angular.module("SelfRegModule").controller("SelfRegFindRegTaskController",n);n.$inject=["SelfRegService","WizardNavService","NotificationFactory"]}(),function(){"use strict";function n(n,t){function r(n){i.welcomeRegistrantMessage=n&&n.firstName&&n.lastName?"Welcome, "+n.firstName.trim()+" "+n.lastName.trim():""}var i=this;i.goneHome=function(){n.logout()};t.$on(ExlConstants.events.selfRegCurrentRegistrantChanged,function(n,t){r(t)});t.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){r(t)})}angular.module("SelfRegModule").controller("SelfRegFlowController",n);n.$inject=["SelfRegService","$scope"]}(),function(){"use strict";function n(n){var t=this;n.logout(!0)}angular.module("SelfRegModule").controller("SelfRegHomeController",n);n.$inject=["SelfRegService"]}(),function(){"use strict";function n(n,t){function r(){n.promote()}function u(){}function f(){t.logout()}var i=this;i.onYes=r;i.onNo=u;i.back=f}angular.module("SelfRegModule").controller("SelfRegIsRegisteredTaskController",n);n.$inject=["WizardNavService","SelfRegService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function l(n){return n&&n.balanceDue>0?e.when(n):f.loadCurrentRegistrant().then(function(n){return n})}function a(n){t.setSelectedRegistrant(n);i.promote()}var h=this,c;h.paymentMethod=ExlConstants.paymentMethods.creditCard;c="Please specify how you would like to pay.";h.regId=o.params.regId;h.regId&&u.getPaymentList(h.regId).then(function(n){n.balanceDue<=0&&!n.isccg?f.getCurrentRegistrant().then(l).then(a):(h.payList=n,h.selectedAmount=n.balanceDue,h.selectedCCG=n.isccg,h.next())},function(){h.disableNext=!0});h.next=function(){if(h.payList)if(exlBaseFunctions.isNullOrWhiteSpace(h.paymentMethod))s.displayError(c);else{var n=[];exlBaseFunctions.stringEqualsIgnoreCase(h.paymentMethod,ExlConstants.paymentMethods.creditCard)&&(n=u.buildPayList(h.payList.charges,h.payList.rooms),t.processCreditCardPayment(n,h.regId))}}}angular.module("SelfRegModule").controller("SelfRegPaymentTaskController",n);n.$inject=["$scope","SelfRegService","WizardNavService","SELFREGSETTINGS","PaymentService","RegistrantFactory","$q","$state","NotificationFactory","BookingFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f){var e=this;angular.extend(e,r);e.dismiss=t.dismiss;e.templates=i;e.close=function(n){var i={status:n};t.close(i)};e.setFormScope=function(n){e.formScope=n};e.save=function(){if(f.checkFormIsValid(e.formScope.formShowItemDemographics))t.close({status:"OK"})}}angular.module("ShowItemModule").controller("ShowItemDemographicModalController",n);n.$inject=["$scope","$modalInstance","templates","inputs","ShowItemService","DocumentService"]}(),function(){"use strict";function n(n,t,i,r,u){var f=this;angular.extend(f,r);f.dismiss=t.dismiss;f.templates=i;f.close=function(n){var i={status:n};t.close(i)};n.$on(ExlConstants.events.geShowItemPricingChanged,function(n,t){if(!f.reg||!f.reg.statusBitMask){f.pricingProfile=t;var i=bigInt();angular.forEach(t.statusList,function(n){if(n){var t=bigInt(n.bitValue);i=i.or(t)}});u.getFees(f.showItem.showItemId,i.toString()).success(function(n){f.showItem.fees=n})}})}angular.module("ShowItemModule").controller("ShowItemDetailModalController",n);n.$inject=["$scope","$modalInstance","templates","inputs","ShowItemService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function w(n,i){a.statusBitMask!=n&&(a.statusBitMask=n,t.getShowItems(n,i).then(function(n){var i,r;if(a.isEmbedded&&(n.settings.enableLikes=!1),a.showItemInfo)a.showItemInfo=n,a.filteredResults=t.copyShowItemInfo(a.showItemInfo),v(y());else{a.showItemInfo=n;a.filteredResults=t.copyShowItemInfo(a.showItemInfo);a.viewAll=!0;a.enableShowDetail=!1;for(i in a.showItemInfo.settings)if(i.indexOf("detailVisible_")>-1&&a.showItemInfo.settings[i]){a.enableShowDetail=!0;break}a.config.enableLoadMore&&(a.limitTo=a.limitIncrement);k();t.likesCache&&(a.showLikes=!0,a.likeToggle(!0,t.likesCache),t.likesCache=null);t.selectedQuickFilter&&(r=_.find(a.filteredResults.filters,function(n){return n.internalName===t.selectedQuickFilter.internalName}),t.selectedQuickFilter=null,a.quickSearch(r))}}))}function p(n){var t=0;return angular.forEach(n,function(n){angular.forEach(n.timeSlots,function(n){t+=n.showItems.length})}),t}function v(n){a.isFiltered=_.some(a.filteredResults.filters,function(n){return n.selecteditems.length});n==-1?(b(a.filteredResults.allDays.groups,a.showItemInfo.allDays.groups),a.pageCount=p(a.filteredResults.allDays.groups),r("showItemLimitFilter")(a.filteredResults.allDays.groups,a.limitTo),a.filteredCount=p(a.filteredResults.allDays.groups)):(b(a.filteredResults.days[n].groups,a.showItemInfo.days[n].groups),a.pageCount=p(a.filteredResults.days[n].groups),r("showItemLimitFilter")(a.filteredResults.days[n].groups,a.limitTo),a.filteredCount=p(a.filteredResults.days[n].groups))}function b(n,t){angular.forEach(n,function(n,i){angular.forEach(n.timeSlots,function(n,u){n.showItems=r("filter")(t[i].timeSlots[u].showItems,a.keyword);n.showItems=r("showItemFilter")(n.showItems,a.filteredResults.filters);a.showLikes&&(n.showItems=r("showItemLikeFilter")(n.showItems,a.likeCache))});n.hasShowItems=_.some(n.timeSlots,function(n){return n.showItems.length})})}function y(){return _.findIndex(a.filteredResults.days,{active:!0})}function k(){a.reg&&a.reg.showItemCart.length&&d();v(y())}function d(){var n=_.filter(a.reg.showItemCart,function(n){return n.showItemCode!="REG"&&n.isConflictChecked&&n.startDate!==null&&n.endDate!==null});_.forEach(a.filteredResults.allDays.groups,function(t){_.forEach(t.timeSlots,function(t){t.conflicts=[];_.forEach(t.showItems,function(i){i.conflict=!1;_.forEach(n,function(n){var r,u;i.isConflictChecked&&i.showItemId!=n.showItemId&&n.endDate>i.startDate&&n.startDate<i.endDate&&(i.conflict=!0,r=_.find(t.showItems,{showItemId:n.showItemId}),r||(u=_.find(t.conflicts,{id:n.showItemId}),u||t.conflicts.push({id:n.showItemId,description:n.description})))})})})})}var a=this;a.config=n.current.data.config;a.filteredCount=0;a.pageCount=0;a.filteredResults={};a.limitTo=0;a.limitIncrement=25;a.showLikes=!1;a.likeFilterText="Favorites";a.isGradualEngagement=n.current.data.isGradualEngagement;a.isEmbedded=l.flow.isEmbedded;a.isEmbedded&&(a.config.enableLikes=!1);a.isEmbedded||l.isRegistrationOpen()||o.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard);i.getCurrentRegistrant().then(function(n){(a.reg=n,!a.pricingProfile||a.reg&&a.reg.regTypeCode)&&(n?w(n.statusBitMask,n.marketingCodeArrayKey):w(0,0))});a.tabChange=function(n){var t=-1;_.forEach(a.filteredResults.days,function(n){n.active=!1});n?(t=a.filteredResults.days.indexOf(n),n.active=!0,a.viewAll=!1):a.viewAll=!a.ViewAll;v(t)};a.loadMore=function(n){a.limitTo+=a.limitIncrement;a.tabChange(n)};a.likeToggle=function(n,t){a.showLikes=n;a.likeCache=t;a.tabChange()};a.quickSearch=function(n){n.isActive?n.selecteditems.length=0:(n.selecteditems.length=0,angular.forEach(n.filterItems,function(t){n.selecteditems.push(t)}));n.isActive=!n.isActive;a.tabChange()};u.$watch("taskCtrl.keyword",function(n,t){(n||t)&&v(y())});u.$on(ExlConstants.events.geShowItemPricingChanged,function(n,t){if(!a.reg||!a.reg.regTypeCode){a.pricingProfile=t;var i=bigInt();angular.forEach(t.statusList,function(n){if(n){var t=bigInt(n.bitValue);i=i.or(t)}});w(i.toString())}});u.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){t&&a.showItemInfo&&(a.reg=t,k())});a.removeFilter=function(n,t){var i=t.selecteditems,r;n?(r=i.indexOf(n),i.splice(r,1)):i.length=0;t.isActive=i.length;v(y())};a.showFilters=function(){var n=_.filter(angular.copy(a.filteredResults.filters),function(n){return n.filterTypeCode!="QUICKSEARCH"}),t={title:"Filter By:",filters:n,clearFilters:function(){angular.forEach(n,function(n){n.selecteditems=[]})}};return f.showModal({bodyTemplateUrl:"App/ShowItem/Views/ShowItemFilters.html",footerTemplate:'<button class="button" ng-click="modalCtrl.clearFilters()">Clear<\/button> &nbsp; <button class="button dark" ng-click="modalCtrl.close(\'Search\')">Search<\/button>',controller:"ModalController",inputs:t}).then(function(t){t.status==="Clear"?angular.forEach(a.filteredResults.filters,function(n){n.selecteditems=[]}):angular.forEach(n,function(n){var t=_.find(a.filteredResults.filters,{internalName:n.internalName}).selecteditems=n.selecteditems});v(y())})}}function t(){return function(n,t){var r=_.filter(t,function(n){return!n.isSpeakerFilter&&n.selecteditems.length}),u=_.filter(t,function(n){return n.isSpeakerFilter&&n.selecteditems.length}),i;return!r.length&&!u.length?n:(i=[],i=r.length?_.filter(n,function(n){return _.some(n.tracks,function(n){return _.some(r,function(t){return _.some(t.selecteditems,function(t){return t.value===n.trackID})})})}):n,u.length&&(i=_.filter(i,function(n){return _.some(n.speakers,function(n){return _.some(u,function(t){return _.some(t.selecteditems,function(t){return t.value===n.speakerID})})})})),i)}}function i(){return function(n,t){return t?_.filter(n,function(n){return _.some(t,function(t){return t==n.showItemId})}):n}}function r(){return function(n,t){if(!t)return n;var i=0;_.forEach(n,function(n){_.forEach(n.timeSlots,function(n){var r=[];_.forEach(n.showItems,function(n){i<t&&(r.push(n),i++)});n.showItems=r})})}}angular.module("ShowItemModule").controller("ShowItemTaskController",n).filter("showItemFilter",t).filter("showItemLimitFilter",r).filter("showItemLikeFilter",i);n.$inject=["$state","ShowItemService","RegistrantFactory","$filter","$scope","ModalFactory","$timeout","WizardNavService","WebStorageFactory","WizardTaskStateService","RegistrantLikesService","WIZARD"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function a(n){l.housingType!=ExlConstants.flowHousingTypes.none&&n.reservations.length&&s.createRegistrationOnlyQueue()}var c=this,l;n.wizardFlowCtrl.hideDashboardButton=!0;l=i.flow;c.config=t.current.data.config;c.isRegOpen=i.isRegistrationOpen();c.isHousingOpen=i.isHousingOpen();c.isFlowOpen=l.isOpen;c.hasRegistration=l.registrationType!==ExlConstants.flowRegistrationTypes.none;c.hasHousing=l.housingType!==ExlConstants.flowHousingTypes.none;c.loggedInRegId=o.getRegId();c.taskContact=i.tasks[ExlConstants.wizardTaskInternalName.BookingContactProfile];c.hasHousing&&h.getAll().success(function(n){n.success&&(c.facilityData=h.toDictionary(n.data))});e.getAllRegistrantsDetailed().success(function(t){if(t.success){c.booking=t.data;var i={hasINPReg:!1,allRegTasksComplete:!0,hasINPRes:!1,hasPaymentDue:!1};angular.forEach(c.booking.registrants,function(n){if(!n.isGuest){var t={value:n.registrantId,text:n.bookingRegistrantName};this.push(t);t.value===c.booking.contactRegistrantId&&(c.contactRegistrant=t);n.regDesc&&!n.isCompleted&&(i.hasINPReg=!0);n.nextRegTask&&(i.allRegTasksComplete=!1);angular.forEach(n.reservations,function(n){n.statusTypeCode!="COM"&&(i.hasINPRes=!0)})}},c.selectListRegistrants=[]);(c.booking.bookingBalance.totalBalanceDue>0||c.booking.bookingBalance.isccgNeeded)&&(i.hasPaymentDue=!0);(i.hasINPReg||i.hasINPRes)&&i.allRegTasksComplete&&!i.hasPaymentDue&&(c.finishButtonVisible=!0);n.$watch(function(){return c.contactRegistrant},function(n,t){if(n!==t){var i=n?n.value:null;f.setContact(i).success(function(r){if(r.success){c.booking.contactRegistrantId=i;var f=n?t?'Successfully changed contact person from "'+t.text+'" to "'+n.text+'".':'Successfully set "'+n.text+'" as the contact person.':'Successfully removed "'+t.text+'" as the contact person.';u.displaySuccess(f)}})}})}});c.goToDashboard=function(n){s.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard,{regId:n})};c.goToRegistration=function(n){n.guestId!==n.registrantId?c.goToDashboard(n.guestId):n.regDesc?n.isInProgress&&n.nextRegTask?(a(n),s.goToTaskByName(n.nextRegTask,{regId:n.registrantId})):n.balanceDue?s.goToTaskByName(ExlConstants.wizardTaskInternalName.ShowSummary,{regId:n.registrantId}):c.goToDashboard(n.registrantId):(a(n),s.goToTaskByName(n.nextRegTask||s.getFirstRegTask().taskInternalName,{regId:n.registrantId}))};c.goToReservation=function(n){s.goToTaskByName(ExlConstants.wizardTaskInternalName.RoomOccupant,{id:n},null,!0)};c.goToHousing=function(n){s.goToSectionByName(ExlConstants.wizardSectionName.Housing,!1,{regId:n})};c.goToContact=function(){s.goToTask(c.taskContact)};c.goToPayment=function(){s.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment)};c.removeRegistrant=function(n){var i=c.booking.registrants;r.showModal({bodyTemplateUrl:"App/Summary/Views/RegistrantRemoveModal.html",footerTemplateUrl:"App/Summary/Views/RegistrantRemoveModalFooter.html",controller:"ModalController",modalcss:"small",inputs:{title:"Remove Registrant?",registrant:i[n]}}).then(function(r){if(r.status){var u=i[n].registrantId;e.delete(u).success(function(r){if(r.success)if(i.splice(n,1),i.length){if(t.params.regId==u){var f=c.loggedInRegId;f&&f!=u||(f=i[0].registrantId);s.reLoadTask({regId:f})}}else o.logout()})}})}}angular.module("SummaryModule").controller("GroupSummaryTaskController",n);n.$inject=["$scope","$state","WIZARD","ModalFactory","NotificationFactory","BookingFactory","RegistrantFactory","RegistrantLoginService","WizardNavService","FacilityService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a){function tt(n){if(n&&n.showItemCart)for(var t=0;t<n.showItemCart.length;t++)if(n.showItemCart[t].isInProgress)return!0;return!1}function nt(n){n&&n.balanceDue>0?(v.selfRegPayNow=!0,v.disableNext=!0):(v.selfRegPayNow=!1,v.disableNext=!1)}var v=this,w=n.current.data.config,b,k,d,g,y,p;if(v.isGroupIndividual=s.flow.isGroupIndividual,v.allowMultipleRegPerBooking=w.allowMultipleRegPerBooking,v.allowPayment=!1,v.disableNext=!1,v.showBadgePreview=!0,b="Please check the box to allow authorization of your payment",k="Please specify how you would like to pay.",v.hasGuestTask=u.hasTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.Guest),v.hasDemoTask=!1,v.paymentMethod=ExlConstants.paymentMethods.creditCard,e.getChecksRemainingUnpaid()&&(h.displayWarning("Checks have been accepted for the selected items. There are still some unpaid items."),e.setChecksRemainingUnpaid(!1)),v.isRegOpen=s.isRegistrationOpen(),v.isSelfRegFlow=angular.isDefined(c),v.isReg=s.flow.registrationType.toUpperCase()!="NONE",d=exlBaseFunctions.stringEqualsIgnoreCase(s.flow.registrationType,ExlConstants.flowRegistrationTypes.attendee),g=exlBaseFunctions.stringEqualsIgnoreCase(s.flow.housingType,ExlConstants.flowHousingTypes.none),v.addAnotherVisible=d&&g&&!v.allowMultipleRegPerBooking||v.isGroupIndividual?!1:!0,y=o.search(),y&&y.srstatus&&y.srstatus=="paid"){u.promote();return}f.getCurrentRegistrant().then(function(n){v.registrant=n;v.isSelfRegFlow?nt(n):v.registrant.balanceDue>0&&!tt(v.registrant)&&u.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment);v.loadReady=!0});v.isReg&&(i.getProfile().then(function(n){v.profile=n;r.getBadgePreviewB64(v.profile.registrantId).success(function(n){v.badgeSrc=n})}),p=s.tasks[ExlConstants.wizardTaskInternalName.Profile].config,v.showAdaFields=p.adaFieldsVisible,v.showBadgeFields=p.badgeFieldsVisible,v.colSize=p.layoutGridColumnSize,v.showGroupReg=w.allowMultipleRegPerBooking);e.getCheckOutInfo().then(function(n){if(v.checkOutInfo=n,v.checkOutInfo.showPayment)v.nextLabel="Pay Now";else{s.flow.registrationType!=ExlConstants.flowRegistrationTypes.none&&v.checkOutInfo.registrantCount>1&&!v.isGroupIndividual&&u.getTask(ExlConstants.wizardTaskInternalName.GroupSummary)&&(u.insertNextTaskByName(ExlConstants.wizardTaskInternalName.GroupSummary),v.nextLabel="Next:"+u.nextTask().taskDisplayName);var t=u.nextTask();t&&t.taskInternalName===ExlConstants.wizardTaskInternalName.Payment&&!v.checkOutInfo.hasBookingBalance&&t.NextTask&&(v.nextLabel="Next:"+t.NextTask.taskDisplayName)}},function(){v.disableNext=!0});l.loadRegistrants().then(function(n){v.registrants=n.data;v.isGroupIndividual||s.flow.registrationType==ExlConstants.flowRegistrationTypes.none||(v.notRegisteredList=[],v.registeredList=[],angular.forEach(v.registrants,function(n){n.regTypeCode?v.registeredList.push(n):v.notRegisteredList.push({value:n.registrantId,text:n.firstName+" "+n.lastName})}))});v.editProfile=function(){u.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.Profile)};v.editDemographics=function(){u.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.Demographic)};v.navGuests=function(){u.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.Guest)};v.registerOccupant=function(){u.clearSession();var n={regId:v.selectedOccupant.value};u.createRegistrationOnlyQueue();u.goToTaskByName(u.getFirstRegTask().taskInternalName,n)};v.addPerson=function(){u.clearSession();u.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard,{regId:0})};v.changeAllowPayment=function(n){v.allowPayment=n};v.changePaymentMethod=function(n,t){v.disableNext=exlBaseFunctions.isNullOrWhiteSpace(n);v.paymentMethod=n;v.surplus=t};v.next=function(){var n,t;if(v.checkOutInfo.showPayment&&!v.isSelfRegFlow){if(exlBaseFunctions.isNullOrWhiteSpace(v.paymentMethod)){h.displayError(k);return}if(exlBaseFunctions.stringEqualsIgnoreCase(v.paymentMethod,ExlConstants.paymentMethods.creditCard)&&!v.allowPayment){h.displayError(b);return}n=[];exlBaseFunctions.stringEqualsIgnoreCase(v.paymentMethod,ExlConstants.paymentMethods.creditCard)?(n=e.buildPayList(v.checkOutInfo.payList.charges,v.checkOutInfo.payList.rooms),e.redirectToSecuremit(n,null,!0)):exlBaseFunctions.stringEqualsIgnoreCase(v.paymentMethod,ExlConstants.paymentMethods.check)?(n=e.buildPayList(v.checkOutInfo.payList.charges,v.checkOutInfo.payList.rooms),t=u.getTask(ExlConstants.wizardTaskInternalName.Confirmation),e.paymentByCheck(n,null,t?t.taskInternalName:null)):exlBaseFunctions.stringStartsWith(v.paymentMethod,ExlConstants.paymentMethods.surplus)&&v.surplus&&v.surplus.bookingTransactionId&&(n=e.buildPayList(v.checkOutInfo.payList.charges,v.checkOutInfo.payList.rooms),e.paymentWithSurplus(n,v.surplus.bookingTransactionId))}else v.isSelfRegFlow?(a.setFailedPaymentRedirectUrl(o.absUrl()),u.promote()):u.promote()};v.navGroupSummary=function(){u.goToTaskByName(ExlConstants.wizardTaskInternalName.GroupSummary)};v.isSelfRegFlow&&t.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){nt(t)})}angular.module("SummaryModule").controller("SummaryTaskController",n);n.$inject=["$state","$scope","ProfileFactory","ProductionService","WizardNavService","RegistrantFactory","PaymentService","$location","WIZARD","NotificationFactory","SELFREGSETTINGS","PersonSwitcherService","SelfRegService","IS_PROD_DATABASE"]}(),function(){"use strict";function n(n,t,i){function u(){t.getBoostURLForRegContact().then(function(n){n&&(r.BoostWebUrl=n.url,r.isQa=n.isQA)})}var r=this;r.HtmlContentUrl="TrafficBoost/Content";r.BoostWebUrl="Boost"+i.showCode+"/";u()}angular.module("TrafficBoostModule").controller("TrafficBoostTaskController",n);n.$inject=["$scope","ExhibitorService","SHOW"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function y(n){if(n=="FlowSelection")a(!0),l.chatInfo||e.getCSChatInfo().then(function(n){l.chatInfo=n},function(){a(!1);i=!0});else{if(!o&&o!=="false"){a(!1);return}if(!(t&&t.params&&t.params.regId&&t.params.regId>0)){a(!1);return}if(!(u&&u.flow&&u.flow.registrationType&&u.flow.registrationType.toLowerCase()=="attendee")){a(!1);return}if(!n||n=="Login"||n=="Member"){a(!1);return}var i=!1;l.chatInfo||e.getCSChatInfo().then(function(n){l.chatInfo=n},function(){a(!1);i=!0});f.getCurrentRegistrant().then(function(n){n&&n.firstName&&n.firstName!==""&&n.lastName&&n.lastName!==""||(a(!1),i=!0)},function(){a(!1);i=!0});a(!i)}}function a(n){l.showChatInfo=n}function p(n){c(function(){var t="//wc.experientevent.com/i3root/chatframe.html?SHOWCODE="+l.chatInfo.showCode+(n?"&PARTY_NAME="+encodeURIComponent(n):"")+"&SHOWNAME="+encodeURIComponent(l.chatInfo.tradeShowName)+"&CUSTOMQUEUE="+l.chatInfo.csChatQueue;return s.open(t,"window_chat","status=yes,height=400,width=600,location=no,dependent=no,directories=no,toolbars=no,status=no,menubar=no,resizable=yes,scrollbars=yes"),!1},0)}function w(){f.getCurrentRegistrant().then(function(n){n&&n.firstName&&n.firstName!==""&&n.lastName&&n.lastName!==""?p(n.firstName+" "+n.lastName):p("Customer")},function(){})}var l=this,v;l.showChatInfo=!1;l.goChat=w;v=r.currentTask();v&&v.taskInternalName?y(v.taskInternalName):y("FlowSelection");n.$on("wizardTaskChange",function(n,t){y(t)})}angular.module("WidgetModule").controller("CustChatController",n);n.$inject=["$scope","$state","$location","WizardNavService","WIZARD","RegistrantFactory","ShowInfoFactory","CUST_CHAT_ENABLED","$window","$q","$timeout"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function l(){h.helpfulLinks||u.getHelpfulLinks().then(function(n){h.helpfulLinks=n},function(){});t&&t.params&&t.params.regId&&t.params.regId>0&&s.getData(t.params.regId).then(function(n){n&&(h.taskState=n)},function(){})}function a(n){u.getRegInfo(n).then(function(n){h.regInfo=n},function(){})}function v(n){i.goToTaskByName(n)}function y(n,t){var r,i,u;if(n=="ALWAYS")return!0;if(n=="PERSONCOM")return h.regInfo&&h.regInfo.personComplete;if(n=="TASKCOM"){if(r=!1,h.taskState)for(i=0;i<h.taskState.length;i++)if(u=h.taskState[i],u.taskInternalName===t&&u.completedDate){r=!0;break}return r}return!1}function p(n){o.open(n)}var h=this,c;h.goToTaskByName=v;h.toggleEnabled=y;h.goToURL=p;c=i.currentTask();c&&c.taskInternalName&&l();n.$on("wizardTaskChange",function(){l()});n.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){a(t?t.registrantId:0)})}angular.module("WidgetModule").controller("HelpfulLinksController",n);n.$inject=["$scope","$state","WizardNavService","WIZARD","HelpfulLinksFactory","ModalFactory","RegistrantFactory","$window","WizardTaskStateService"]}(),function(){"use strict";function n(n){var t=this;t.widgetInfo=n}angular.module("WidgetModule").controller("WidgetController",n);n.$inject=["WIDGETS"]}(),function(){"use strict";angular.module("CommonModule").controller("exlAccordionTabController",["$scope","$rootScope","$attrs","accordionConfig","MediaQueryService",function(n,t,i,r){var u=this;n.compiledGroups=[];this.openAtLeastOneGroup=function(){var t,i,r;if(n.compiledGroups.length){t=!0;for(i in n.compiledGroups)if(r=n.compiledGroups[i],r.isOpen){t=!1;break}t&&(n.compiledGroups[0].isOpen=!0)}};this.closeOthers=function(t){var u=angular.isDefined(i.closeOthers)?n.$eval(i.closeOthers):r.closeOthers;u&&angular.forEach(n.compiledGroups,function(n){n!==t&&(n.isOpen=!1)})};this.addGroup=function(t){var i=this;n.compiledGroups.push(t);t.$on("$destroy",function(){i.removeGroup(t)})};this.removeGroup=function(t){var i=n.compiledGroups.indexOf(t);i!==-1&&n.compiledGroups.splice(i,1)};n.groupTabClicked=function(n){n.isOpen=!0}}]).directive("exlAccordionTab",["$timeout","MediaQueryService",function(n,t){return{restrict:"EA",controller:"exlAccordionTabController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion-tab.html",link:function(i,r,u,f){i.$on(t.mediaQueryChanged,function(n,t,i){t.mediumUp&&i.mediumUp&&f.openAtLeastOneGroup()});n(function(){t.mediaQueries.mediumUp&&f.openAtLeastOneGroup()},1)}}}]).directive("exlAccordionTabGroup",["$parse",function(n){return{require:"^exlAccordionTab",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-tab-group.html",scope:{heading:"@"},controller:["$scope",function(n){this.setHeading=function(t,i){n.headingEl=t;this.heading=i}}],link:function(t,i,r,u){var f,e;u.addGroup(t);t.isOpen=!1;r.isOpen&&(f=n(r.isOpen),e=f.assign,t.$parent.$watch(f,function(n){t.isOpen=!!n}));t.$watch("isOpen",function(n){n&&u.closeOthers(t);e&&e(t.$parent,n)})}}}]).directive("exlAccordionTabHeading",[function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^exlAccordionTabGroup",compile:function(n,t,i){return function(n,t,r,u){u.setHeading(i(n,function(){}),i(n,function(){}))}}}}]).directive("exlAccordionTabTransclude",[function(){return{require:"^exlAccordionTabGroup",link:function(n,t,i,r){n.$watch(function(){return r[i.exlAccordionTabTransclude]},function(n){if(n){t.html("");var i=n;t.append(i)}})}}}]).directive("exlAccordionTabTabTransclude",[function(){return{scope:{exlAccordionTabTabTransclude:"="},require:"^exlAccordionTab",link:function(n,t){n.$watch(function(){return n.exlAccordionTabTabTransclude},function(n){n&&(t.html(""),t.append(n))})}}}]).run(["$templateCache",function(n){n.put("template/accordion/accordion-tab.html",'<ul class="show-for-medium-up tabs"><li ng-repeat="group in compiledGroups" ng-click="groupTabClicked(group)"  ng-class="{ active: group.isOpen }" class="tab-title"><a exl-accordion-tab-tab-transclude="group.headingEl">{{group.heading}}<\/a><\/li><\/ul><dl class="accordion" ng-transclude><\/dl>\n')}]).run(["$templateCache",function(n){n.put("template/accordion/accordion-tab-group.html",'<dd>\n  <a class="show-for-small-only" ng-click="isOpen = !isOpen" ng-class="{ active: isOpen }"  exl-accordion-tab-transclude="heading">{{heading}}<\/a>\n  <div class="content" ng-style="isOpen ? {display: \'block\'} : {}" ng-transclude><\/div>\n<\/dd>\n')}])}(),function(){"use strict";function n(n){function t(){var t=this;t.reg=n.currentTask().taskInternalName=="Profile";t.housing=n.currentTask().taskInternalName=="RoomOccupant"}function i(){}return{link:i,restrict:"EA",scope:{profile:"="},templateUrl:"App/Common/Views/AdaDirective.html",controller:t,controllerAs:"ADA",bindToController:!0}}angular.module("CommonModule").directive("exlAda",n);n.$inject=["WizardNavService"]}(),function(){"use strict";function n(n){function t(){var t=this,i={};t.click=function(){angular.copy(t.profile,i);var r={profile:i,title:t.title},u='<exl-ada profile="modalCtrl.profile"><\/exl-ada>',f='<button class="button secondary" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button> <button class="button dark" ng-click="modalCtrl.close(\'OK\')">Save<\/button>';n.showModal({bodyTemplate:u,footerTemplate:f,controller:"ModalController",modalcss:t.modalcss,inputs:r}).then(function(n){n.status=="OK"&&angular.extend(t.profile,i)})}}function i(){}return{link:i,restrict:"EA",scope:{profile:"=",title:"@",modalcss:"@"},template:'<button type="button" class="button" ng-click="AdaModal.click()"><span class="fa fa-lg fa-wheelchair"><\/span> Special Accommodations <span class="fa fa-chevron-right"><\/span><\/button>',controllerAs:"AdaModal",bindToController:!0,controller:t}}angular.module("CommonModule").directive("exlAdaModal",n);n.$inject=["ModalFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(o,s){function c(){var y;h.currentRegId=n.params.regId;var c=t.flow,v="Add Another",a,e=!1,p=n.current.data.config.allowMultipleRegPerBooking,w=!0,b=exlBaseFunctions.stringEqualsIgnoreCase(c.registrationType,ExlConstants.flowRegistrationTypes.attendee),k=exlBaseFunctions.stringEqualsIgnoreCase(c.housingType,ExlConstants.flowHousingTypes.standard),d=exlBaseFunctions.stringEqualsIgnoreCase(c.housingType,ExlConstants.flowHousingTypes.none),o=s.find("button, a.button").filter(":first");o.length||(o=s);y=b&&d&&!p||c.isGroupIndividual?!1:!0;s.toggle(y);l(o,e);y&&h.currentRegId&&f.getIsUnderReservationLimit().success(function(n){var f,s;t.isRegistrationOpen()&&b&&p?(v+=" Person",a=ExlConstants.wizardSectionName.Registration,e=!0):t.isHousingOpen()&&k&&(v+=" Room",a=ExlConstants.wizardSectionName.Housing,f=!0,n.success&&(f=n.data),f&&(e=!0),w=!1);l(o,e);s="click.exlAddAnother";o.text(v).off(s).on(s,function(){e&&(i.clearSession(),r.clearEdgeParams(),w?u.showModal("Create New Record").then(function(n){if(n.data&&n.data.regId){var r={regId:n.data.regId};t.isHousingOpen()&&k?i.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard,r):i.goToSectionByName(a,!1,r)}}):i.goToSectionByName(a,!1))})})}function l(n,t){n.is("button")?n.prop("disabled",!t):n.is("a.button")&&n.toggleClass("disabled",!t)}var h=e.controllerAs?o[e.controllerAs]:o;n.current.data&&c();o.$on("$stateChangeSuccess",function(n){n.defaultPrevented||c()})}var e={link:o,restrict:"A",scope:!1,controller:angular.noop,controllerAs:"addAnotherCtrl",bindToController:!0};return e}angular.module("CommonModule").directive("exlAddAnother",n);n.$inject=["$state","WIZARD","WizardNavService","EdgeService","RegistrantLoginModalService","BookingFactory"]}(),function(){"use strict";function n(){function n(n,t,i,r){var u=n.$eval(i.exlAsyncValidator),f;if(u instanceof Array)for(f in u)typeof u[f]=="function"&&u[f].call(this,r);else typeof u=="function"&&u.call(this,r)}return{link:n,restrict:"A",require:"ngModel"}}angular.module("CommonModule").directive("exlAsyncValidator",n);n.$inject=["$window"]}(),function(){"use strict";function n(){function n(){var n=this}function t(){}return{link:t,restrict:"EA",scope:{profile:"="},templateUrl:"App/Common/Views/BrowserReqDirective.html",controller:n,controllerAs:"BrowserReq",bindToController:!0}}angular.module("CommonModule").directive("exlBrowserRequirements",n);n.$inject=["WizardNavService"]}(),function(){"use strict";function n(n,t){function i(t,i,u){var f,e;t.CharCounter={};r(t,i,u);f=angular.element("<small><em>Characters remaining: {{CharCounter.remaining}}<\/em><\/small>");n(f)(t);i.after(f);e=function(){t.CharCounter.remaining=u.maxlength-i.val().length;t.$digest()};i.on("keyup keydown focus input paste",e);t.$on("$destroy",function(){i.off("keyup keydown focus input paste",e)})}function r(n,i,r){var u=n,f=i,e=r;t(function(){u.CharCounter.remaining=e.maxlength-f.val().length},0)}return{restrict:"A",link:i,scope:!0}}angular.module("CommonModule").directive("exlCharCounter",n);n.$inject=["$compile","$timeout"]}(),function(){"use strict";function n(n){return{replace:!1,transclude:!0,scope:{heading:"@","class":"="},template:'<accordion-group class="{{class}}" is-open="!mediaQueries.smallOnly" heading="{{heading}}"><ng-transclude><\/ng-transclude><\/accordion-group>',link:function(t){t.mediaQueries=n.mediaQueries}}}angular.module("CommonModule").directive("exlCollapseOnSmallAccordionGroup",n);n.$inject=["MediaQueryService"]}(),function(){"use strict";function t(){function e(){var n=this;n.inputType=Modernizr.touch&&Modernizr.inputtypes.number?"number":"text"}function o(t,i,u){var f=r(t,i,u);return moment(f,n)}function r(n,t,i){return n+"/"+t+"/"+i}function t(n){var t=parseInt(n);return isFinite(t)?t<10?"0"+t:t:n}function s(n){n.text=n.month&&n.day&&n.year?u(n.month,n.day,n.year)?r(t(n.month),t(n.day),n.year):"":""}function u(t,i,r){if(!t&&!i&&!r)return!0;if(t&&isNaN(parseInt(t))||i&&isNaN(parseInt(i))||r&&isNaN(parseInt(r)))return!1;var u=moment(o(t,i,r),n);return f(u)}function f(n){return n.isValid()&&n.year()>=1900&&n.year()<2100}function h(r,e,o,h){function a(){c.month=v.val();c.day=y.val();c.year=p.val();s(c);h&&(c.month||c.day||c.year||h.$validate(),(c.month&&isNaN(parseInt(c.month))||c.day&&isNaN(parseInt(c.day))||c.year&&isNaN(parseInt(c.year)))&&h.$validate(),h.$setViewValue(c.text),h.$setTouched())}function w(i){if(i){var r=moment(i,n);f(r)&&(c.month=r.month()+1,c.day=r.date(),c.year=r.year())}else c.month="",c.day="",c.year="";v.val(t(c.month));y.val(t(c.day));p.val(c.year)}var c=i.controllerAs?r[i.controllerAs]:r,v=e.find("input[name=month]"),y=e.find("input[name=day]"),p=e.find("input[name=year]"),l;c.text&&w(c.text);l="keyup input paste";v.on(l,a);y.on(l,a);p.on(l,a);r.$on("$destroy",function(){v.off(l,a);y.off(l,a);p.off(l,a)});h&&(h.$render=function(){w(h.$modelValue)},h.$name="exlDate",h.$validators.validDate=function(){return u(c.month,c.day,c.year)})}var i={link:h,restrict:"EA",require:"?^ngModel",templateUrl:"App/Common/Views/DateDemographicDirective.html",scope:{text:"="},controller:e,controllerAs:"DateDemographic",bindToController:!0};return i}angular.module("CommonModule").directive("exlDateDemographic",t);t.$inject=["$window"];var n="MM-DD-YYYY"}(),function(){"use strict";function n(n,t,i){function u(){var n=this;n.useNative=!1}function f(u,f,e){var o=r.controllerAs?u[r.controllerAs]:u,h=f.find("input"),c,l,s;if(o.useNative)s=function(){var i="YYYY-MM-DD",n=o.min(),t=o.max(),r=moment(angular.isFunction(n)?n():n).format(i),u=moment(angular.isFunction(t)?t():t).format(i);h.prop("min",r).prop("max",u)},e.counterpart?u.$watch(function(){return o.counterpart},s):s();else{c="yyyy-mm-dd";h.pickadate({today:!1,clear:!1,close:!1,editable:!1,format:c,weekdaysShort:["Su","Mo","Tu","We","Th","Fr","Sa"],onOpen:function(){var i=this;Modernizr.touch&&n.innerWidth<=768&&t.scrollToElem(f)},onRender:function(){var r=this,t=i[angular.lowercase(o.highlightScheduleTypeCode)],n;if(t){var f=moment(t.beginDate).startOf("d"),e=moment(t.endDate).startOf("d"),u=r.component.settings.klass,s=r.$root.find("."+u.day+":not(."+u.disabled+")");for(n=f;n<=e;n.add(1,"d"))s.filter('[data-pick="'+n.valueOf()+'"]').addClass("highlight")}}}).next(".picker").on("click","*",function(n){n.preventDefault()});o.model&&(l=moment(o.model),h.pickadate("set",{select:l.subtract(l.utcOffset(),"m").toDate()}));Modernizr.input.placeholder&&h.prop("placeholder",c);s=function(){var n=o.min(),t=o.max();h.pickadate("set",{min:angular.isFunction(n)?n():n,max:angular.isFunction(t)?t():t})};e.counterpart?u.$watch(function(){return o.counterpart},s):s()}}var r={priority:99,link:f,restrict:"E",replace:!0,scope:{model:"=",min:"&",max:"&",isRequired:"&",counterpart:"=",highlightScheduleTypeCode:"@",name:"@"},templateUrl:"App/Common/Views/DatePickerDirective.html",bindToController:!0,controller:u,controllerAs:"datePicker"};return r}angular.module("CommonModule").directive("exlDatePicker",n);n.$inject=["$window","DocumentService","SCHEDULES"]}(),function(){"use strict";function n(n,t){function r(r,u,f){var e=i.controllerAs?r[i.controllerAs]:r,o=t;if(o){e.hasKey=!0;var s=f.color||"black",h=f.number||"4",c=f.size||"m",l='<script>var __dcid = __dcid || []; __dcid.push(["DigiCertClickID", "'+h+'", "'+c+'", "'+s+'", "'+o+'"]); (function () { var cid = document.createElement("script"); cid.async = true; cid.src = "//seal.digicert.com/seals/cascade/seal.min.js"; var s = document.getElementsByTagName("script"); var ls = s[(s.length - 1)]; ls.parentNode.insertBefore(cid, ls.nextSibling); } ());<\/script>';e.digiCertScript=n.trustAsHtml(l)}}var i={link:r,restrict:"EA",scope:{number:"=",size:"=",color:"="},templateUrl:"App/Common/Views/DigiCertSealDirective.html",controller:[function(){var n=this}],controllerAs:"DigiCert",bindToController:!0};return i}angular.module("CommonModule").directive("exlDigiCertSeal",n);n.$inject=["$sce","DIGICERTKEY"]}(),function(){"use strict";function n(n){function t(t,i){function e(n){return n&&$(n).css("display").indexOf("none")<0}function r(){angular.forEach(f,function(n){if(e(n))return t.displayMode=n.className.split("-")[2],!1})}var f=i.find("span"),u;angular.element(n).bind("resize",function(){clearTimeout(u);u=setTimeout(function(){r();t.$apply()},300)});r()}return{link:t,restrict:"EA",template:'<span class="show-for-small-only"><\/span><span class="show-for-medium-only"><\/span><span class="show-for-large-only"><\/span>',scope:{displayMode:"="}}}angular.module("CommonModule").directive("exlDisplayMode",n);n.$inject=["$window"]}(),function(){"use strict";function n(n){return{link:function(t,i,r){function u(){var u=!1,n=i.find("[equalizer-watch]:visible"),f,t,e,o;n.length&&((f=n.first().offset().top,n.height("inherit"),n.each(function(){var n=angular.element(this);n.offset().top!==f&&(u=!0)}),r.equalizeOnStack!=="false"&&u)||(t=n.map(function(){return angular.element(this).outerHeight(!1)}).get(),r.useSmallest?(e=Math.min.apply(null,t),n.css("height",e)):(o=Math.max.apply(null,t),n.css("height",o))))}u();var f=i.find("[equalizer-watch]:visible img");f.on("load",function(){u()});angular.element(n).on("resize",function(){u()})}}}angular.module("CommonModule").directive("exlEqualizer",n);n.$inject=["$window"]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",scope:{errors:"="},templateUrl:"App/Common/Views/ErrorSummaryDirective.html"}}angular.module("CommonModule").directive("exlErrorSummary",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t,i){function f(){var n=this,t,i;if(n.item.html5Type=n.item.html5TypeCode=="number"?Modernizr.touch&&Modernizr.inputtypes.number?"number":"text":n.item.html5TypeCode,n.item.isReadOnly=!1,exlBaseFunctions.stringEqualsIgnoreCase(n.item.layoutStyleCode,"READONLY")&&(n.item.isReadOnly=!0),n.item.fieldPicks&&(n.itemlist=n.item.fieldPicks),n.isOpen=!1,(n.item.fieldTypeCode=="FREE"||n.item.displayTypeCode=="OPEN")&&(n.isOpen=!0),n.otherCheckedList=[],n.item.isPick&&n.profile[n.item.fieldName])for(t=0;t<n.item.fieldPicks.length;t++)i=n.item.fieldPicks[t],i.isOther&&_.some(n.profile[n.item.fieldName].split(","),_.matches(i.value))&&n.otherCheckedList.push(i);n.clickItem=function(t){n.item.fieldTypeCode==="MULTI"?t.item.otherFieldDetailID&&(t.selected?_.includes(n.otherCheckedList,t.item)||n.otherCheckedList.push(t.item):_.remove(n.otherCheckedList,t.item)):n.item.fieldTypeCode==="SINGLE"&&(n.otherCheckedList.length=0,t.item.otherFieldDetailID&&t.selected&&n.otherCheckedList.push(t.item))};n.isOtherSelected=function(t){return _.some(n.otherCheckedList,{otherFieldDetailID:t})};n.modelOptions=n.modelOptions||{}}function u(n,t){for(var r,i=0;i<n.otherFieldDetail.length;i++)if(r=n.otherFieldDetail[i],!t[r.fieldName].$valid||u(r,t))return!0;return!1}function e(f,e,o,s){var h=f.fieldDetail,a=h.isDemographic?"App/Common/Views/FieldDetailDemographicDirective.html":"App/Common/Views/FieldDetailDirective.html",c,l;t(i.getTrustedResourceUrl(a)).then(function(u){var c,s,o;if(!r.replace){if(h.item.otherFieldDetail){for(c="",s=0;s<h.item.otherFieldDetail.length;s++)o='<div ng-show="fieldDetail.isOtherSelected({2}) || fieldDetail.profile[fieldDetail.item.otherFieldDetail[{0}].fieldName]"><exl-field-detail profile="fieldDetail.profile" item="fieldDetail.item.otherFieldDetail[{0}]" is-other="true" {1}><\/exl-field-detail><\/div>',o=o.replace(new RegExp("\\{0\\}","g"),s),o=h.item.otherFieldDetail[s].isPick?o.replace("{1}",'is-demographic="true"'):o.replace("{1}",""),o=o.replace("{2}",h.item.otherFieldDetail[s].fieldDetailID),c+=o;u=u.replace("<exl-demographic-other><\/exl-demographic-other>",c)}h.isDemographic?t(i.getTrustedResourceUrl("App/Common/Views/FieldDetailDemographicHeading.html")).then(function(t){var i,r,o;h.item.displayTypeCode==="OPEN"||h.item.displayTypeCode==="CLOSED"?(i="<accordion-heading>{0}<\/accordion-heading>",t=i.replace("{0}",t),u=u.replace("<exl-demographic-heading><\/exl-demographic-heading>",t),r='<accordion><accordion-group is-open="fieldDetail.isOpen">{0}<\/accordion-group><\/accordion>',u=r.replace("{0}",u)):(o='<label for="{{::fieldDetail.item.fieldName}}">{0}<\/label>',t=o.replace("{0}",t),u=u.replace("<exl-demographic-heading><\/exl-demographic-heading>",t));n(e.html(u).contents())(f)}):n(e.html(u).contents())(f)}});h.formCtrl=s;h.regEx=new RegExp(h.item.pattern);h.isDemographic&&f.$on(ExlConstants.events.touchAllInputs,function(){(!h.formCtrl[h.item.fieldName].$valid||u(h.item,h.formCtrl))&&(h.isOpen=h.isOpen===1||1)});o.isOther&&f.$watchCollection(function(){return f.$parent.fieldDetail.otherCheckedList},function(n,t){if(angular.isDefined(n)&&n.length||angular.isDefined(t)&&t.length){var i=_.some(n,{otherFieldDetailID:h.item.fieldDetailID});h.item.isRequired=i;i?h.item.fieldName=="issenior"&&h.selecteditem==undefined&&(h.profile[h.item.fieldName]="N"):h.item.fieldTypeCode=="FREE"?h.profile[h.item.fieldName]="":h.item.fieldTypeCode=="SINGLE"?(h.selecteditem=undefined,h.otherCheckedList.length=0):h.item.fieldTypeCode=="MULTI"&&(h.selecteditems=[],h.otherCheckedList.length=0)}});h.item.fieldName=="alum"&&f.$watch(function(){return h.profile.issenior},function(n){n!="Y"||h.profile.alum||(h.profile.alum="N")});angular.isDefined(h.item.autoComplete)||(h.item.autoComplete=!0);h.asyncValidationMessages=[];h.asyncValidation=h.asyncValidation||{};h.validationSetupFunctions=[];for(c in h.asyncValidation)h.asyncValidation.hasOwnProperty(c),l=h.asyncValidation[c],h.asyncValidationMessages.push({key:c,message:angular.isDefined(l.message)?l.message:"This field is invalid"}),h.validationSetupFunctions.push(l.setup)}var r={link:e,restrict:"E",require:"^form",scope:{item:"=",profile:"=",isDemographic:"=?",isOther:"@",asyncValidation:"=?",modelOptions:"=?"},controller:f,controllerAs:"fieldDetail",bindToController:!0};return r}angular.module("CommonModule").directive("exlFieldDetail",n);n.$inject=["$compile","$templateRequest","$sce"]}(),function(){"use strict";function n(n){function t(t,i,r){var u=n(r.exlFileModel),f=u.assign;i.bind("change",function(){t.$apply(function(){f(t,i[0].files[0])})})}return{link:t,restrict:"A"}}angular.module("CommonModule").directive("exlFileModel",n);n.$inject=["$parse"]}(),function(){"use strict";function n(n,t){function r(){var n=this}function u(n){var r=i.controllerAs?n[i.controllerAs]:n;r.open=function(){var n={title:r.title,options:r.options,filterOptionFunc:function(n){angular.forEach(r.options,function(t){var i=t[n];angular.isFunction(i)&&i();t.options&&angular.forEach(t.options,function(t){var i=t[n];angular.isFunction(i)&&i()})})}};t.showModal({bodyTemplateUrl:"App/Common/Views/FilterModal.html",footerTemplateUrl:"App/Common/Views/FilterModalFooter.html",controller:"ModalController",inputs:n}).then(function(t){n.filterOptionFunc(t.status)},function(){n.filterOptionFunc("dismiss")})}}var i={priority:99,link:u,restrict:"E",replace:!0,scope:{title:"@",searchTerms:"=",searchTermsClick:"&",isDisabled:"=",hideFilterButton:"="},bindToController:!0,controller:r,controllerAs:"filterCtrl",templateUrl:"App/Common/Views/FilterDirective.html",transclude:!0};return i}angular.module("CommonModule").directive("exlFilter",n);n.$inject=["$window","ModalFactory"]}(),function(){"use strict";function n(){function t(){var n=this;n.dismiss=function(){n.tempModel=n.model};n.dismiss();n.clear=function(){n.tempModel=n.init};n.apply=function(){n.model=n.tempModel};n.isDirty=function(){return n.model!==n.init}}function i(t,i,r,u){var f=n.controllerAs?t[n.controllerAs]:t,e,o;if(f.reset=function(){angular.isDefined(r.click)?f.click():(f.model=f.init,f.dismiss())},u){if(angular.isArray(u.options)||(u.options=[]),r.groupTitle){for(o=0;o<u.options.length;o++)if(u.options[o].type===r.type){e=u.options[o];break}e||(e={title:r.groupTitle,type:r.type,options:[]},u.options.push(e));e.options.push(f)}else u.options.push(f);t.$on("$destroy",function(){var n,t,i;if(r.groupTitle){for(t=0;t<u.options.length;t++)if(u.options[t].type===r.type){n=u.options[t];break}n&&n.options&&(i=n.options.indexOf(f),i>-1&&(n.options.splice(i,1),n.options.length||u.options.splice(t,1)))}else i=u.options.indexOf(f),i>-1&&u.options.splice(i,1)})}}var n={link:i,restrict:"E",require:"?^exlFilter",replace:!0,scope:{type:"@",title:"@",init:"=",model:"=",params:"&",click:"&",groupTitle:"@"},templateUrl:"App/Common/Views/FilterOptionDirective.html",controller:t,controllerAs:"filterOptionCtrl",bindToController:!0};return n}angular.module("CommonModule").directive("exlFilterOption",n);n.$inject=[]}(),function(){"use strict";function n(){return{restrict:"A",priority:500,compile:function(){return{pre:function(n,t,i){i.type&&i.type==="{{fieldDetail.item.html5Type}}"&&n.fieldDetail.item.html5Type==="url"&&(i.$set("type",null,!1),t.attr("type","url"))},post:function(){}}}}}angular.module("CommonModule").directive("exlIgnoreType",n);n.$inject=["$window"]}(),function(){"use strict";function n(){function n(n,t,i){var r={mask:"",placeholder:""},u;i.exlInputMask&&(u=n.$eval(i.exlInputMask),angular.extend(r,u),r.mask&&t.mask(r.mask,{placeholder:r.placeholder}))}return{link:n,restrict:"A"}}angular.module("CommonModule").directive("exlInputMask",n);n.$inject=["$window"]}(),function(){"use strict";function n(){return{restrict:"A",require:"?form",link:function(n,t,i,r){var u,f,e;r&&(u={},angular.copy(r,u),f=t.parent().controller("form"),f.$removeControl(r),e={$setValidity:function(n,t,i){u.$setValidity(n,t,i);f.$setValidity(n,!0,r)},$setDirty:function(){t.removeClass("ng-pristine").addClass("ng-dirty");r.$dirty=!0;r.$pristine=!1}},angular.extend(r,e))}}}angular.module("CommonModule").directive("exlIsolateForm",n);n.$inject=[]}(),function(){"use strict";function n(){function t(){var n=this,u=n.itemsPerPageTitle(),i,r,t;for(n.title=u?u:"Page Size: ",i=n.itemsPerStep(),n.numberPerStep=i?i:25,r=n.steps(),n.numberSteps=r?r:4,n.stepList=[],t=1;t<=n.numberSteps;t++)n.stepList.push({itemsPerPage:n.numberPerStep*t})}function i(t){var i=n.controllerAs?t[n.controllerAs]:t}var n={restrict:"E",link:i,scope:{itemsPerPage:"=",itemsPerPageTitle:"&",itemsPerStep:"&",steps:"&"},templateUrl:"App/Common/Views/ItemsPerPageDirective.html",controller:t,bindToController:!0,controllerAs:"itemsPerPageCtrl"};return n}angular.module("CommonModule").directive("exlItemsPerPage",n);n.$inject=[]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",templateUrl:"App/Common/Views/LoadingIndicatorDirective.html"}}angular.module("CommonModule").directive("exlLoadingIndicator",n)}(),function(){"use strict";function n(n,t){function r(){var i=this;i.detail={description:i.label||"Marketing Code",displayTypeCode:"TEXTBOX",fieldName:i.fieldName||"marketingCode",fieldTypeCode:"FREE",html5TypeCode:"text",html5Type:"text",isActive:!0,isCustom:!1,isPick:!1,isRequired:angular.isDefined(i.isRequired)?i.isRequired:!1,maxLength:100,minLength:0,pattern:"",labelIdCode:"WIZARDTASKLAYOUT_MARKETINGCODE_LAYOUT_FIELDLABEL__MARKETINGCODE",closingIdCode:"FIELDDETAILCONTROL_MARKETINGCODE_CLOSING__MARKETINGCODE"};i.marketingCodeValidators={marketingCode:{setup:function(r){i.marketingCodeValidation&&(r.$asyncValidators.marketingCode=function(i,r){return t.isCodeValid(r).then(function(t){return t&&t.data?n.reject(t.data):!0})})},message:"Invalid marketing code"}}}function u(n,t,r,u){var f=i.controllerAs?n[i.controllerAs]:n;f.formCtrl=u}var i={link:u,restrict:"E",require:"^form",templateUrl:"App/Common/Views/MarketingCodeDirective.html",controller:r,controllerAs:"MarketingCode",scope:{profile:"=",label:"@",marketingCodeValidation:"=",isRequired:"=?",fieldName:"@"},bindToController:!0};return i}angular.module("CommonModule").directive("exlMarketingCode",n);n.$inject=["$q","MarketingCodeFactory"]}(),function(){"use strict";function n(){return{priority:1,restrict:"A",require:"ngModel",link:function(n,t,i,r){function u(n){return!angular.isDefined(n)||n==null?"":""+n}function f(n){return parseInt(n)}exlBaseFunctions.stringEqualsIgnoreCase(t.prop("tagName"),"INPUT")&&exlBaseFunctions.stringEqualsIgnoreCase(i.type,"number")&&(r.$formatters.push(f),r.$parsers.push(u))}}}angular.module("CommonModule").directive("exlModelTypeConverter",n);n.$inject=[]}(),function(){"use strict";function n(){function t(t){var i=n.controllerAs?t[n.controllerAs]:t;t.$watch(function(){return i.isRequired},function(n){i.detail.isRequired=angular.isDefined(n)?n:!0})}var n={link:t,restrict:"EA",templateUrl:"App/Common/Views/PasswordDirective.html",scope:{profile:"=",fieldName:"@",label:"@",minLength:"@",isRequired:"=",autoComplete:"="},controller:[function(){var n=this;n.showPassword=!1;n.detail={description:n.label||"Password",displayTypeCode:"TEXTBOX",fieldName:n.fieldName||"password",fieldTypeCode:"FREE",html5TypeCode:"password",html5Type:"password",isActive:!0,isCustom:!1,isPick:!1,maxLength:50,minLength:n.minLength||8,pattern:"",labelIdCode:"WIZARDTASKLAYOUT_PASSWORD_LAYOUT_FIELDLABEL__PASSWORD",closingIdCode:"FIELDDETAILCONTROL_PASSWORD_CLOSING__PASSWORD",autoComplete:n.autoComplete};n.changeType=function(){n.detail.html5Type=n.modelShowPwd?"text":"password"}}],controllerAs:"Password",bindToController:!0};return n}angular.module("CommonModule").directive("exlPassword",n);n.$inject=["$window"]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",scope:{regId:"@",title:"@",modalcss:"@"},template:'<button type="button" class="button" ng-click="PasswordModal.click()">Change Password <span class="fa fa-chevron-right"><\/span><\/button>',controllerAs:"PasswordModal",bindToController:!0,controller:["$scope","ModalFactory",function(n,t){var i=this;i.profile={};i.modalcss=i.modalcss||"small";i.click=function(){i.profile.password="";i.profile.newPassword="";var r={getFormScope:i.getFormScope,regId:i.regId,profile:i.profile,title:i.title};t.showModal({bodyTemplateUrl:"App/Common/Views/PasswordModal.html",footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button> &nbsp; <button class="button small dark" ng-click="modalCtrl.changePassword()">Change Password<\/button>',controller:"PasswordModalController",controllerAs:"PasswordModalController",modalcss:i.modalcss,scope:n,inputs:r}).then(function(){})};i.setFormScope=function(n){i.formScope=n};i.getFormScope=function(){return i.formScope}}]}}function t(n,t,i,r,u,f){var e=this;angular.extend(e,r);e.dismiss=t.dismiss;e.templates=i;e.close=function(n){var i={status:n};t.close(i)};e.changePassword=function(){var n=e.getFormScope();f.checkFormIsValid(n.formPassword)&&(e.showWait=!0,u.changeRegistrantPassword(e.regId,e.profile.password,e.profile.newPassword).then(function(){t.close()}).finally(function(){e.showWait=!1}))}}angular.module("CommonModule").directive("exlPasswordModal",n).controller("PasswordModalController",t);n.$inject=["$window"];t.$inject=["$scope","$modalInstance","templates","inputs","PasswordService","DocumentService"]}(),function(){"use strict";function n(){function t(t){var i=n.controllerAs?t[n.controllerAs]:t;t.$watch("selectedAmount",function(){i.selectedAmount=t.selectedAmount})}var n={link:t,restrict:"EA",scope:{changeAllowPayment:"&",changePaymentMethod:"&",multiplePaymentMethods:"=",selectedAmount:"="},templateUrl:"App/Common/Views/PaymentDirective.html",controller:["$scope","PaymentService","PAYMENTCASHCHECKENABLED","$timeout","ISSELFREG","WizardNavService",function(n,t,i,r,u,f){var e=this,o;e.allow=!1;e.cashCheckEnabled=i;e.paymentMethodList=[];i&&n.multiplePaymentMethods&&e.paymentMethodList.push({text:"Check",value:ExlConstants.paymentMethods.check});o={text:"Credit Card",value:ExlConstants.paymentMethods.creditCard};e.paymentMethodList.push(o);e.paymentMethodSelectListItem=o;e.isSelfReg=u;e.isBlockGuarantee=exlBaseFunctions.stringEqualsIgnoreCase(ExlConstants.wizardTaskInternalName.RABGuarantee,f.currentTask().taskInternalName)||exlBaseFunctions.stringEqualsIgnoreCase(ExlConstants.wizardTaskInternalName.ManageRooms,f.currentTask().taskInternalName);n.multiplePaymentMethods&&t.getSurplusPaymentList(!0).then(function(n){e.surplusPaymentList=n;var t=0;angular.forEach(e.surplusPaymentList,function(n){var i={text:"Surplus Payment (Acct # "+n.accountNumber+")",value:ExlConstants.paymentMethods.surplus+n.bookingTransactionId};e.paymentMethodList.push(i);t===0&&r(function(){e.paymentMethodSelectListItem=i;e.paymentMethod=i.value;e.paymentMethodChanged({item:i,selected:!0})},0);t++})},function(){});t.getPayTypes().success(function(n){e.payTypes=n});e.changed=function(){angular.isFunction(n.changeAllowPayment)&&n.changeAllowPayment({checked:e.allow})};e.paymentMethodChanged=function(t){var i=e.paymentMethod,r;t.item&&t.item.value&&t.selected?(e.isSurplusMethod(t.item.value)&&(r=!1,angular.forEach(e.surplusPaymentList,function(n){if(!r){var i=t.item.value.split("-")[1];n.bookingTransactionId==i&&(r=!0,e.surplus=n)}})),i=t.item.value):(i="",e.surplus=null);angular.isFunction(n.changePaymentMethod)&&n.changePaymentMethod({paymentMethod:i,surplus:e.surplus})};e.isSurplusMethod=function(n){var t=n||e.paymentMethod;return t?exlBaseFunctions.stringStartsWith(t,ExlConstants.paymentMethods.surplus):!1}}],controllerAs:"Payment"};return n}angular.module("CommonModule").directive("exlPayment",n)}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function s(n,t,i){var u={icon:"fa-warning"},f;return r.current.data.taskName===ExlConstants.wizardTaskInternalName.ShowSummary&&(u.text=""),t?u.text=i?"":"Finish":n.balance.regBalance>0||n.balance.housingBalance>0?(u.text="Pay Now",u.icon="fa-money"):n.balance.isccg&&(n.isGroupCart?u.text="Confirm Room(s)":(f=n.itemsINPAllReservations.length===1?"":"s",u.text="Confirm Room"+f)),o.flow.isOpen||(u.text=""),u}function h(n,t,r,u,e,s,h){n.text(t.text).off(r).on(r,function(n){f.checkForReservation(u).then(function(n){n?e&&o.isRegistrationOpen()?i.goToTaskByName(e,{regId:u.registrantId}):(s.balance.regBalance>0&&o.isRegistrationOpen()||(s.balance.housingBalance>0||s.balance.isccg)&&o.isHousingOpen())&&i.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment,{regId:u.registrantId}):o.isHousingOpen()&&i.goToSectionByName(ExlConstants.wizardSectionName.Housing,!1,{regId:u.registrantId})});n.stopPropagation()});h.showIcon&&t.icon&&angular.element("<i/>",{"class":"fa text-alert-color"}).addClass(t.icon).prependTo(n)}function c(f,o,c){var a=f.$eval(c.exlPayNow),b=a.registrantId||r.params.regId,l=a.shoppingCart,v=a.registrant,y=o.find("button, a.button").filter(":first"),p,w,k,d;if(y.length||(y=o),p="click.exlPayNow",l&&l.isGroupCart){w=s(l,null,a.payOnly);w.text||o.hide();y.text(w.text).off(p).on(p,function(n){i.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment,null,null,!1);n.stopPropagation()});a.showIcon&&w.icon&&angular.element("<i/>",{"class":"fa text-alert-color"}).addClass(w.icon).prependTo(y);return}if(!b&&!v){o.hide();return}if(v){if(v.guestId!==v.registrantId){o.hide();return}l={balance:{regBalance:v.balanceDue,housingBalance:0},itemsINPAllReservations:[]};angular.forEach(v.reservations,function(n){n.statusTypeCode==="INP"&&(l.itemsINPAllReservations.push(n),n.isCCG?l.balance.isccg=!0:l.balance.housingBalance+=n.depositAmt)});k=s(l,v.nextRegTask,a.payOnly);k.text||o.hide();h(y,k,p,v,v.nextRegTask,l,a)}else d={nextRegTask:t.getNextRegTask(b),registrant:e.getRegistrant(b)},l||(d.cart=n.getShoppingCart(b)),u.all(d).then(function(n){var i,r,t;if(n.cart&&(l=n.cart),i=n.nextRegTask?n.nextRegTask.taskInternalName:n.nextRegTask,r=s(l,i,a.payOnly),r.text||o.hide(),t=n.registrant,t.guestId!==t.registrantId){o.hide();return}h(y,r,p,t,i,l,a)})}return{link:c,restrict:"A",scope:null,controller:angular.noop,controllerAs:"PayNow",bindToController:!0}}angular.module("CommonModule").directive("exlPayNow",n);n.$inject=["PaymentService","WizardTaskStateService","WizardNavService","$state","$q","DashboardService","RegistrantFactory","WIZARD"]}(),function(){"use strict";function n(){function n(n,t,i){Modernizr.input.placeholder&&t.is("input")&&i.$observe("exlPlaceholder",function(n){i.$set("placeholder",n)})}return{link:n,restrict:"A"}}angular.module("CommonModule").directive("exlPlaceholder",n);n.$inject=[]}(),function(){"use strict";function n(n){function t(t,i,r){if(r.exlRefFileUrl.indexOf("/")===0||r.exlRefFileUrl.match(/^https?:\/\//))throw"The reference files directive requires a relative URL";var u;switch(i.prop("tagName").toLowerCase()){case"embed":case"iframe":case"img":case"input":case"layer":case"script":case"source":case"track":u="src";break;case"a":case"base":case"link":u="href";break;case"form":u="action";break;case"object":u="data";break;default:throw"The reference files directive is not valid on <"+i.tagName+"> elements.";}r.$observe("exlRefFileUrl",function(t){var f=n+t;r.$set(u,f);i.prop(u,f)})}return{priority:99,link:t,restrict:"A"}}angular.module("CommonModule").directive("exlRefFileUrl",n);n.$inject=["REF_FILES_URL"]}(),function(){"use strict";function n(n,t,i,r,u){function e(){var r=this,n;r.regId=i.getRegId();n=t.flow;r.isVisible=n&&!n.isGroup}function o(t){function s(){var t,r;return i.regId?(r=u.cache(i.regId,i.likeTypeCode),r?i.isLiked=angular.element.inArray(parseInt(i.likeTypeId),r)>-1:(t=n.defer(),u.read(i.regId,i.likeTypeCode).success(function(n){n.success?(i.isLiked=angular.element.inArray(parseInt(i.likeTypeId),n.data)>-1,t.resolve()):t.reject()}).error(function(){t.reject()}))):i.isLiked=!1,t?t.promise:n.when()}function h(){i.regId&&(t.$root.$broadcast(e,i.regId,i.likeTypeCode,i.likeTypeId).defaultPrevented||u[i.isLiked?"delete":"create"](i.regId,i.likeTypeCode,i.likeTypeId).success(function(n){n.success&&t.$root.$broadcast(o,i.regId,i.likeTypeCode,i.likeTypeId,!i.isLiked)}))}var i=f.controllerAs?t[f.controllerAs]:t,e="exlRegistrantLikeChangeStart",o="exlRegistrantLikeChangeSuccess";s().then(function(){t.$on(e,function(n,t,r,u){n.defaultPrevented||t!=i.regId||r!=i.likeTypeCode||u!=i.likeTypeId||(i.isDisabled=!0)});t.$on(o,function(n,t,r,u,f){n.defaultPrevented||t!=i.regId||r!=i.likeTypeCode||u!=i.likeTypeId||(i.isLiked=f,i.isDisabled=!1)})});i.toggle=function(n){n.stopPropagation();i.regId?h():r.showModal("Create New Record",i.likeTypeCode).then(function(n){if(n.data&&n.data.regId){i.regId=n.data.regId;var t=i.isLiked;s().then(function(){i.isLiked==t&&h()})}})}}var f={link:o,restrict:"E",scope:{likeTypeCode:"@",likeTypeId:"=",buttonLabel:"@"},templateUrl:"App/Common/Views/RegistrantLikeDirective.html",controller:e,controllerAs:"registrantLikeCtrl",bindToController:!0};return f}angular.module("CommonModule").directive("exlRegistrantLike",n);n.$inject=["$q","WIZARD","RegistrantLoginService","RegistrantLoginModalService","RegistrantLikesService"]}(),function(){"use strict";function n(n,t){function r(){var n=this}function u(r,u,f){function o(){e.regId=n.getRegId();e.regId&&(e.cache=t.cache(e.regId,e.likeTypeCode),e.cache?e.likeTotal=e.cache.length:t.read(e.regId,e.likeTypeCode).success(function(n){n.success&&(e.cache=n.data,e.likeTotal=e.cache.length)}))}var e=i.controllerAs?r[i.controllerAs]:r;o();r.$on(ExlConstants.events.registrantLogin,function(n){n.defaultPrevented||o()});r.$on(ExlConstants.events.registrantLikeChanged,function(n,t,i,r){e.regId>0&&e.regId==t&&e.likeTypeCode===i&&(e.cache=r,e.likeTotal=e.cache.length)});e.click=function(n){e.likeTotal&&(n.stopPropagation(),e.likeActive=!e.likeActive,angular.isDefined(f.likeClick)&&e.likeClick({active:e.likeActive,cache:e.cache}))}}var i={link:u,restrict:"E",scope:{likeTypeCode:"@",likeClick:"&",likeActive:"=?",dashboard:"=?",likeTotal:"=?"},templateUrl:"App/Common/Views/RegistrantLikeTotalsDirective.html",controller:r,controllerAs:"RegistrantLikeTotals",bindToController:!0};return i}angular.module("CommonModule").directive("exlRegistrantLikeTotals",n);n.$inject=["RegistrantLoginService","RegistrantLikesService"]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",template:'<p><small><i class="fa fa-asterisk text-alert-color"><span class="exl-screen-reader-text">Asterisk<\/span><\/i><\/small> indicates required fields.<\/p>'}}angular.module("CommonModule").directive("exlRequiredFieldLegend",n);n.$inject=["$window"]}(),function(){"use strict";function n(n){function t(t,i){var r="click.exlScrollTo",u=function(){var i=angular.element(t.exlScrollTo);n.scrollToElem(i)};i.on(r,u);t.$on("$destroy",function(){i.off(r)})}return{link:t,restrict:"A",scope:{exlScrollTo:"@"}}}angular.module("CommonModule").directive("exlScrollTo",n);n.$inject=["DocumentService"]}(),function(){"use strict";function n(){function t(n,i,r){var f="SelectedDemographicsList.profile."+r.fieldName,u;if(n.$watch(f,function(n,t){(n||t)&&i.createDisplay()}),r.otherFieldDetail&&r.otherFieldDetail.length)for(u=0;u<r.otherFieldDetail.length;u++)t(n,i,r.otherFieldDetail[u])}function i(i){var r=n.controllerAs?i[n.controllerAs]:i;t(i,r,r.fieldDetail)}var n={link:i,restrict:"EA",scope:{fieldDetail:"=",profile:"="},template:"{{SelectedDemographicsList.display}}",controllerAs:"SelectedDemographicsList",bindToController:!0,controller:function(){function t(n,t){var u="",o,f,s,e,r,h;if(n&&t&&t.fieldPicks)for(o=n.split(","),f=0;f<o.length;f++)for(s=o[f],e=0;e<t.fieldPicks.length;e++)if(r=t.fieldPicks[e],s===r.value){u&&(u+=", ");r.isOther?(h=_.find(t.otherFieldDetail,{fieldDetailID:r.otherFieldDetailID}),u+=r.text+":"+i(h)):u+=r.text;break}return u}function i(i){return i.fieldTypeCode==="FREE"?n.profile[i.fieldName]||"":t(n.profile[i.fieldName],i)}var n=this;n.createDisplay=function(){n.profile&&n.fieldDetail&&(n.display=t(n.profile[n.fieldDetail.fieldName],n.fieldDetail))}}};return n}angular.module("CommonModule").directive("exlSelectedDemographicsList",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t){function r(t,r,e,o){var s=t.SelectList;s.model=o;u(e);e.selecteditem?s.isMulti=!1:e.selecteditems&&(s.isMulti=!0);e.clickItem&&(s.clickItemDefined=!0);s.isMulti?(t.$watch("SelectList.itemlist",function(n,t){if((n||t)&&o&&o.$modelValue){s.selecteditems=[];var i=o.$modelValue.split(",");angular.forEach(s.itemlist,function(n){angular.forEach(i,function(t){n.value==t&&s.selecteditems.push(n)})})}}),t.$watch("SelectList.selecteditems",function(n,t){var h;if(angular.isArray(s.selecteditems)){var u=angular.isArray(n)?n.map(function(n){return n.value}):[],e=angular.isArray(t)?t.map(function(n){return n.value}):[],c=e.filter(function(n){return u.indexOf(n)<0}),l=u.filter(function(n){return e.indexOf(n)<0});angular.forEach(s.itemlist,function(n){l.indexOf(n.value)>-1?(i(r,n.value,"remove",!0),i(r,n.value,"add",!0)):c.indexOf(n.value)>-1&&i(r,n.value,"remove",!0)});o&&(h=f(s.selecteditems),o.$setViewValue(h))}},!0),t.$watch("filterresults",function(t,u){if(t&&t!=u)if(s.filterClearSelectedItems){var f=[];angular.forEach(s.selecteditems,function(n,i){t.indexOf(n)==-1&&f.push(i)});angular.forEach(f.sort().reverse(),function(n){s.selecteditems.splice(n,1)})}else u&&t.length>=u.length&&n(function(){angular.forEach(s.selecteditems,function(n){t.indexOf(n)>=0&&(i(r,n.value,"remove",!0),i(r,n.value,"add",!0))})},0)}),o&&(o.$render=function(){if(o.$modelValue){var n=o.$modelValue.split(",");angular.forEach(s.itemlist,function(t){angular.forEach(n,function(n){n==t.value&&(angular.isArray(s.selecteditems)||(s.selecteditems=[]),s.selecteditems.push(t))})})}})):(t.$watch("SelectList.itemlist",function(n,t){(n||t)&&o&&angular.forEach(s.itemlist,function(n){n.value==o.$modelValue&&(s.selecteditem=n)})}),t.$watch("SelectList.selecteditem",function(n,t){(n||t)&&(t&&(i(r,t.value,"remove",!1),o&&o.$setViewValue("")),n&&(i(r,n.value,"add",!1),o&&o.$setViewValue(n.value)))}),t.$watch("filterresults",function(t,u){t&&(s.filterClearSelectedItems?t.indexOf(s.selecteditem)==-1&&(s.selecteditem=null):u&&t.length>=u.length&&n(function(){t.indexOf(s.selecteditem)>=0&&(i(r,s.selecteditem.value,"remove",!0),i(r,s.selecteditem.value,"add",!0))},0))}),o&&(o.$render=function(){angular.forEach(s.itemlist,function(n){n.value==o.$viewValue&&(s.selecteditem=n)})}))}function i(n,t,i,r){var f=r?"fa-square-o":"fa-circle-thin",e=r?"fa-check-square-o":"fa-check-circle",u=n.find('li[exlvalue="'+t+'"]');i==="add"?(u.find("button").addClass("selected"),u.find("i").removeClass(f).addClass(e)):i==="remove"&&(u.find("button").removeClass("selected"),u.find("i").removeClass(e).addClass(f))}function u(n){angular.isDefined(n.gridcolumns)||(n.gridcolumns="2")}function f(n){for(var i="",t=0;t<n.length;t++)i+=n[t].value,t<n.length-1&&(i+=",");return i}return{link:r,restrict:"E",require:"?^ngModel",scope:{itemlist:"=",selecteditem:"=",selecteditems:"=",gridcolumns:"@",label:"@",hideFilter:"=",isRequired:"=",filterClearSelectedItems:"=",staticTextId:"@",clickItem:"&",isDisabled:"=",fieldName:"@"},templateUrl:"App/Common/Views/SelectListDirective.html",controller:["$scope",function(i){var r=this,u;r.hideLimit=12;r.clickitem=function(n,i){var e,f,l;if(r.model&&r.model.$setTouched&&!r.model.$touched&&r.model.$setTouched(),r.isMulti){for(angular.isArray(r.selecteditems)||(r.selecteditems=[]),e=-1,f=0;f<r.selecteditems.length;f++)if(r.selecteditems[f].value===n.value){e=f;break}e==-1?(r.selecteditems.push(n),u=!0):(!r.isRequired||r.selecteditems.length>1)&&(r.selecteditems.splice(e,1),u=!1)}else if(n==r.selecteditem)r.isRequired||(!r.hideFilter&&r.itemlist.length>r.hideLimit&&r.listfilter==r.selecteditem.text&&delete r.listfilter,r.selecteditem=null,u=!1);else if(r.selecteditem=n,u=!0,!r.hideFilter&&r.itemlist.length>r.hideLimit){r.listfilter=r.selecteditem.text;var o=angular.element(i.target),s=o.closest(".accordion > *"),h=o.closest(".reveal-modal"),c=s.length?s:h.length?h:null;c&&t.scrollToElem(c)}r.clickItemDefined&&angular.isDefined(u)&&(l={item:n,selected:u},r.clickItem()(l))};n(function(){var n,t;r.isMulti?r.selecteditems&&(n=r.selecteditems,r.selecteditems=null,i.$apply(),r.selecteditems=n,i.$apply()):r.selecteditem&&(t=r.selecteditem,r.selecteditem=null,i.$apply(),r.selecteditem=t,i.$apply())},0)}],controllerAs:"SelectList",bindToController:!0}}angular.module("CommonModule").directive("exlSelectList",n);n.$inject=["$timeout","DocumentService"]}(),function(){"use strict";function n(){function n(n,t,i,r){var u=n.SelectListModal;u.model=r;i.selecteditem?n.SelectListModal.isMulti=!1:i.selecteditems&&(n.SelectListModal.isMulti=!0);r&&(u.isMulti?(n.$watch("SelectList.itemlist",function(n,t){if(n||t){u.selecteditems=[];var i=r.$modelValue.split(",");angular.forEach(u.itemlist,function(n){angular.forEach(i,function(t){n.value==t&&u.selecteditems.push(n)})})}}),n.$watch("SelectListModal.selecteditems",function(n,t){if((n||t)&&(t&&r.$setViewValue(""),n)){var i=n.join(",");r.$setViewValue(i)}}),r.$render=function(){var n=r.$modelValue.split(",");angular.forEach(u.itemlist,function(t){angular.forEach(n,function(n){n==t.value&&(angular.isArray(u.selecteditems)||(u.selecteditems=[]),u.selecteditems.push(t))})})}):(n.$watch("SelectListModal.itemlist",function(n,t){(n||t)&&angular.forEach(u.itemlist,function(n){n.value==r.$modelValue&&(u.selecteditem=n)})}),n.$watch("SelectListModal.selecteditem",function(n,t){(n||t)&&(t&&r.$setViewValue(""),n&&r.$setViewValue(n.value))}),r.$render=function(){angular.forEach(u.itemlist,function(n){n.value==r.$viewValue&&(u.selecteditem=n)})}))}return{link:n,restrict:"EA",require:"?ngModel",scope:{itemlist:"=",selecteditem:"=",selecteditems:"=",gridcolumns:"@",title:"@",modalcss:"@",isDisabled:"=",hideFilter:"="},template:'<button type="button" class="small" data-ng-click="SelectListModal.clickme()" data-ng-disabled="SelectListModal.isDisabled" data-ng-blur="SelectListModal.blur()"><span data-ng-bind="SelectListModal.display()"><\/span> <span class="fa fa-chevron-right"><\/span><\/button>',controller:["ModalFactory",function(n){var t=this;t.display=function(){return t.isMulti?t.selecteditems&&t.selecteditems.length?t.selecteditems&&t.selecteditems.length==1?t.selecteditems[0].text:"Multiple Selections":"Please Select":t.selecteditem?t.selecteditem.text:"Please Select"};t.clickme=function(){var r,u,i;t.isMulti&&(r=t.selecteditems?t.selecteditems.slice(0):[]);u={title:t.title,itemlist:t.itemlist,selecteditem:t.selecteditem,selecteditems:r,gridcolumns:t.gridcolumns,setFocusCtlName:"selectListInputFilter",hideFilter:t.hideFilter};i='<exl-select-list itemlist="modalCtrl.itemlist" selecteditem="modalCtrl.selecteditem" gridcolumns="{{modalCtrl.gridcolumns}}" hide-filter="modalCtrl.hideFilter"><\/exl-select-list>';t.isMulti&&(i=i.replace(new RegExp("selecteditem","g"),"selecteditems"));t.modalOpen=!0;n.showModal({bodyTemplate:i,footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'OK\')">Continue<\/button>',controller:"ExlSelectListModalController",modalcss:t.modalcss,inputs:u}).then(function(n){n.status==="OK"&&(t.isMulti?t.selecteditems=n.selecteditems:t.selecteditem=n.selecteditem)}).finally(function(){t.modalOpen=!1;t.blur()})};t.blur=function(){t.model&&t.model.$setTouched&&!t.model.$touched&&!t.modalOpen&&t.model.$setTouched()}}],controllerAs:"SelectListModal",bindToController:!0}}angular.module("CommonModule").controller("ExlSelectListModalController",["$scope","$modalInstance","templates","inputs",function(n,t,i,r){var u=this;angular.extend(u,r);u.dismiss=t.dismiss;u.templates=i;u.close=function(n){var i={status:n,selecteditem:null};n==="OK"&&(u.selecteditems?i.selecteditems=u.selecteditems:i.selecteditem=u.selecteditem);t.close(i)}}]).directive("exlSelectListModal",n);n.$inject=[]}(),function(){"use strict";function n(n){return{link:function(t,i,r){t.$watch(r.exlSetFocus,function(u){u===!0&&(console.log("value=",u),n(function(){i[0].focus();t[r.exlSetFocus]=!1}))})}}}angular.module("CommonModule").directive("exlSetFocus",n);n.$inject=["$timeout"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function l(){function v(){c.showItems&&c.showItemInfo&&c.allLikedShowItems&&(c.showItemInfo.showItems=_.filter(c.allLikedShowItems,function(n){return!_.some(c.showItems,function(t){return t.showItemId===n.showItemId})}))}var c=this,a=n.current.data.config,l=t.flow;c.hideRegFees=l.hideRegFees;c.hideShowItemFees=l.hideShowItemFees;c.hideReservationFees=a.hideReservationFees;c.hideCodeInRegTypeControl=a.hideCodeInRegTypeControl;c.housingOnly=l.registrationType=="None";c.hasShowItemTask=u.hasTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.ShowItems);c.guestTerm=a.guestTerm||"Spouse/Guest";c.isProcessing=!1;c.isRegOpen=t.isRegistrationOpen();l.registrationType!=ExlConstants.flowRegistrationTypes.none&&l.housingType!=ExlConstants.flowHousingTypes.none?c.hideBalance=l.hideRegFees&&l.hideShowItemFees&&a.hideReservationFees:l.registrationType!=ExlConstants.flowRegistrationTypes.none&&l.housingType===ExlConstants.flowHousingTypes.none?c.hideBalance=l.hideRegFees&&l.hideShowItemFees:l.registrationType===ExlConstants.flowRegistrationTypes.none&&l.housingType!=ExlConstants.flowHousingTypes.none&&(c.hideBalance=a.hideReservationFees);c.geShowItem=o.getSession(ExlConstants.session.geShowItem);c.nav=function(n){if(c.isRegOpen||!h){var t;switch(n.showItemTypeCode){case"REG":t=ExlConstants.setupWizardTypeCode.RegType;break;case"GUE":t=ExlConstants.setupWizardTypeCode.Guest}t&&u.goToTaskBySetupWizardCode(t)}};c.navRoom=function(n){var t={id:n.reservationId};u.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.RoomOccupant,t)};c.navShowItems=function(){(c.isRegOpen||!h)&&(u.currentTask().setupWizardTypeCode==ExlConstants.setupWizardTypeCode.ShowItems?u.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.ShowItems,null,!0):u.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.ShowItems))};c.processShowItem=function(n,t,r){if((!(n.maxQtyPerReg>0)||!(t>n.maxQtyPerReg))&&(t!==0||r)&&n.includeTypeCode!=="PKG"&&(c.isRegOpen||!h)&&!c.isProcessing){var u=function(){c.isProcessing=!0;f.processShowItem(n,t).then(function(n){e.setCurrentRegistrant(n);v()}).finally(function(){c.isProcessing=!1})};r?i.showModal({bodyTemplate:"Are you sure that you want to completely remove this item from your shopping cart?",footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No, don\'t do this<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes, remove it<\/button>',inputs:{title:n.showItemDescription}}).then(function(n){n.status&&u()}):u()}};s.isLoggedIn()&&(c.regId=s.getRegId());e.getCurrentRegistrant().then(function(n){c.registrant=n;c.loadCart();c.regId&&f.getLikes(c.regId,n?n.statusBitMask:0).then(function(n){c.showItemInfo=n.data;c.allLikedShowItems=c.showItemInfo.showItems.slice(0);v()})});c.order=function(n){return n.showItemTypeCode==="REG"?".01":n.showItemTypeCode==="GUE"?".02":n.showItemTypeCode==="PKG"?"."+n.regTransactionId:n.parentLinkId?"."+n.parentLinkId+"."+n.regTransactionId:n.showItemStartDate?"y"+n.showItemStartDate:"z"+n.showItemDescription};c.loadCart=function(){r.getShoppingCart().then(function(n){c.cart=n;l.isGroupIndividual?(c.showItems=c.cart.items.purchasesINP,c.reservations=c.cart.items.reservationsINP,c.balance=c.cart.balance):(c.showItems=c.cart.items.purchasesINP,c.reservations=c.cart.items.allReservationsINP,c.balance=c.cart.balanceAllINPReservations);v();c.showItemsSorted=_.sortBy(c.showItems,function(n){return c.order(n)})})};c.loadCart()}function a(n){var t=c.controllerAs?n[c.controllerAs]:n;n.$on(ExlConstants.events.currentRegistrantChanged,function(n,i){!n.defaultPrevented&&i&&(t.registrant=i,t.loadCart())});n.$on(ExlConstants.events.registrantLikeChanged,function(n,i,r,u){!n.defaultPrevented&&t.registrant&&t.registrant.registrantId==i&&r=="SHOWITEM"&&_.remove(t.showItemInfo.showItems,function(n){return!_.some(u,function(t){return t===n.showItemId})})});n.$on(ExlConstants.events.geShowItemPricingChanged,function(n,i){if(!n.defaultPrevented){if(t.registrant&&t.registrant.statusBitMask)return;t.pricingProfile=i;var r=bigInt();angular.forEach(i.statusList,function(n){if(n){var t=bigInt(n.bitValue);r=r.or(t)}});f.getFees(t.showItem.showItemId,r.toString()).success(function(n){t.showItem.fees=n})}});n.$on(ExlConstants.events.roomOccupantChanged,function(n,i){if(!n.defaultPrevented&&i&&i.method==="roomCancel"&&i.reservation&&t.balance&&t.reservations){i.reservation.isccg&&(t.balance.isccg=_.any(t.reservations,function(n){return!n.isCancelled&&n.isccg}));var r=i.reservation.balanceDue||0;r>0&&(t.balance.housingBalance-=r,t.balance.totalBalanceDue-=r)}})}var c={link:a,restrict:"EA",templateUrl:"App/Common/Views/ShoppingCartDirective.html",scope:{},controller:l,controllerAs:"ShoppingCart"};return c}angular.module("CommonModule").directive("exlShoppingCart",n);n.$inject=["$state","WIZARD","ModalFactory","PaymentService","WizardNavService","ShowItemService","RegistrantFactory","WebStorageFactory","RegistrantLoginService","IS_PROD_DATABASE"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function c(n){var t=h.controllerAs?n[h.controllerAs]:n;n.$on(ExlConstants.events.currentRegistrantChanged,function(n,i){if(t.reg&&i&&i.registrantId===t.reg.registrantId&&(!r.flow||r.flow.housingType==ExlConstants.flowHousingTypes.none)?i&&i.showItemCart&&i.showItemCart.length&&(t.itemINPCount=0,angular.forEach(i.showItemCart,function(n){n.regTranState==="INP"&&n.isVisibleCart&&(t.itemINPCount+=n.quantity)})):t.loadCart(i?i.registrantId:0),t.reg=i,e.isLoggedIn()){t.regId=e.getRegId();var u=f.cache(t.regId,"SHOWITEM");u?t.hasLikes=u.length:f.read(t.regId,"SHOWITEM").success(function(n){t.hasLikes=n.length})}});n.$on(ExlConstants.events.roomOccupantChanged,function(){t.isGroupIndividual?t.loadCart():t.reg&&t.loadCart()});n.$on(ExlConstants.events.registrantLikeChanged,function(n,i,r,u){t.regId&&t.regId==i&&r=="SHOWITEM"&&(t.hasLikes=u.length)});n.$on(ExlConstants.events.bookingBalanceUpdate,function(){t.loadGroupCart()});n.$on(ExlConstants.events.paymentApplied,function(){t.loadCart()});n.$on("$stateChangeSuccess",function(n,i){t.isCartTask=i.data.taskName===ExlConstants.wizardTaskInternalName.Payment||i.data.taskName===ExlConstants.wizardTaskInternalName.GroupSummary||i.data.taskName===ExlConstants.wizardTaskInternalName.ShowSummary||i.data.taskName===ExlConstants.wizardTaskInternalName.ExhibitingCompanySearch||i.data.taskName===ExlConstants.wizardTaskInternalName.ExhibitingCompanyValidate||i.data.taskName===ExlConstants.wizardTaskInternalName.RegistrantGroupLogin?!1:!0})}var h={link:c,restrict:"E",templateUrl:"App/Common/Views/ShoppingCartIconDirective.html",controllerAs:"ShoppingCartIcon",bindToController:!0,controller:function(){function u(){var i={},r='<button class="button secondary" ng-click="modalCtrl.close(\'Close\')">Close<\/button> &nbsp; ';n.cart?(n.cart.balance.regBalance==0&&n.reg&&n.reg.balanceDue&&(n.cart.balance.regBalance=n.reg.balanceDue),r+='<button type="button" class="success" exl-pay-now="{payOnly: true, shoppingCart: modalCtrl.cart}"><\/button>',i.cart=n.cart):r+='<button type="button" class="success" exl-pay-now="{payOnly: true}"><\/button>';i.title=n.itemINPCount?"Cart ("+n.itemINPCount+")":"Cart";i.iconClass="fa fa-shopping-cart";i.isGroupCart=n.isGroupCart;i.itemINPCount=n.itemINPCount;i.reg=n.reg;n.showItemInfo&&(i.showItems=n.showItemInfo.showItems,i.dateList=n.showItemInfo.dateList,i.settings=n.showItemInfo.settings);i.hasLikes=n.hasLikes;t.showModal({controller:"ModalController",bodyTemplateUrl:"App/Common/Views/ShoppingCartModal.html",modalcss:"medium",footerTemplate:r,inputs:i})}var n=this;n.isGroupIndividual=r.flow&&r.flow.isGroupIndividual;n.isGroupFlow=r.flow&&r.flow.isGroup;n.balanceDueText="Payment Required";n.loadCart=function(t){n.isGroupFlow||i.getShoppingCart(t).then(function(t){n.cart=t;n.itemINPCount=_.sum(n.cart[n.isGroupIndividual?"itemsINP":"itemsINPAllReservations"],function(n){return n.unitQuantity||1})})};n.loadGroupCart=function(){o.isLoggedIn()&&n.isGroupFlow&&(n.groupBookingBalanceDue=!1,n.cart=null,n.isGroupCart=!0,s.getBookingFinancials().then(function(t){t&&(t.totalBalanceDue>0||t.isccgNeeded)&&(t.totalBalanceDue==0&&(n.balanceDueText="CCG Required"),n.groupBookingBalanceDue=!0,n.cart={balance:{regBalance:t.totalRegBalance,housingBalance:t.totalHousingBalance,totalBalanceDue:t.totalBalanceDue,isccg:t.isccgNeeded},isGroupCart:n.isGroupCart})}))};n.click=function(){u()}}};return h}angular.module("CommonModule").directive("exlShoppingCartIcon",n);n.$inject=["$rootScope","ModalFactory","PaymentService","WIZARD","ShowItemService","RegistrantLikesService","RegistrantLoginService","RegistrantGroupLoginService","BookingFactory","$state"]}(),function(){"use strict";function n(n,t,i){function u(t,i,u){var f=r.controllerAs?t[r.controllerAs]:t;f.signInFacebook=function(){angular.isDefined(u.clickButtonFacebook)?f.clickButtonFacebook():n.signInFacebook("Dashboard",!1)}}var r={link:u,restrict:"E",templateUrl:"App/Common/Views/SocialNetworkSignInDirective.html",scope:{clickButtonFacebook:"&"},controllerAs:"socialNetworkSignIn",bindToController:!0,controller:function(){var n=this;n.signedIn=!1;i.getCurrentRegistrant().then(function(i){if(i){var r=_.find(t,{customCode:"FCBK"}),u=_.find(i.socialNetArray,{customCodeID:r.customCodeID});u&&(n.signedIn=!0)}})}};return r}angular.module("CommonModule").directive("exlSocialNetworkSignIn",n);n.$inject=["RegistrantLoginService","SOCIALNET","RegistrantFactory"]}(),function(){"use strict";function n(n){function i(){function r(){var n=t.step();return angular.isNumber(n)?n:1}function u(n,t,i){var f=t.toString().split("."),r,u,e;return f.length===2&&(r=f[1].length,r)?(u=Math.pow(10,r),e=i?parseInt:Math.round,e(n*u)/u):n}var t=this,i={decrement:null,increment:null},f,e;t.decrement=function(){var i=t.min(),f=r(),n=t.model||0;angular.isNumber(n)&&(n-=f,n=u(n,f),angular.isNumber(i)&&n<i&&(n=i),t.model!==n&&(t.model=n),angular.isFunction(t.setMaxlength)&&t.setMaxlength())};t.increment=function(){var i=t.max(),f=r(),n=t.model||0;angular.isNumber(n)&&(n+=f,n=u(n,f),angular.isNumber(i)&&n>i&&(n=i),t.model!==n&&(t.model=n),angular.isFunction(t.setMaxlength)&&t.setMaxlength())};f=600;e=100;t.holdDecrement=function(){i.decrement=n(function r(){i.decrement=n(function(){t.decrement();r()},e)},f)};t.holdIncrement=function(){i.increment=n(function r(){i.increment=n(function(){t.increment();r()},e)},f)};t.releaseDecrement=function(){i.decrement&&(n.cancel(i.decrement),i.decrement=null)};t.releaseIncrement=function(){i.increment&&(n.cancel(i.increment),i.increment=null)};t.isDisableIncrement=function(){var n=t.max(),i=angular.isNumber(n)&&t.model>=n||t.isDisabled();return i&&t.releaseIncrement(),i};t.isDisableDecrement=function(){var n=t.min(),i=angular.isNumber(n)&&t.model<=n||t.isDisabled();return i&&t.releaseDecrement(),i};t.change=function(){var f,n,i;angular.isNumber(t.model)&&(f=r(),t.model=u(t.model,f,!0),n=t.min(),i=t.max(),angular.isNumber(n)&&t.model<n&&(t.model=n),angular.isNumber(i)&&t.model>i&&(t.model=i))}}function r(n,i){var r=t.controllerAs?n[t.controllerAs]:n;n.$on("$destroy",function(){r.releaseDecrement();r.releaseIncrement()});r.setMaxlength=function(){var n=angular.element(i).find("input[data-ng-model]"),t,u,f,e;n.length&&(t=r.min(),u=r.max(),n.prop("type")==="number"&&Modernizr.inputtypes.number?(Modernizr.input.step&&(f=r.step(),n.prop("step",angular.isNumber(f)?f:"any")),Modernizr.input.min&&angular.isNumber(t)&&n.prop("min",t),Modernizr.input.max&&angular.isNumber(u)&&n.prop("max",u)):angular.isNumber(t)&&angular.isNumber(u)&&(e=Math.max(Math.floor(t).toString().length,Math.ceil(u).toString().length),n.prop("maxlength",e)))};r.setMaxlength()}var t={link:r,restrict:"E",replace:!0,scope:{min:"&",max:"&",step:"&",required:"&",isDisabled:"&",model:"=",name:"@"},bindToController:!0,controller:i,controllerAs:"spinnerCtrl",templateUrl:"App/Common/Views/SpinnerDirective.html"};return t}angular.module("CommonModule").directive("exlSpinner",n);n.$inject=["$timeout"]}(),function(){"use strict";function n(){return{link:function(n,t,i){if(i.exlSticky){var r=n.$eval(i.exlSticky);if(r.disable_sticky)return;r.offset_top_selector&&(r.offset_top=0,$(r.offset_top_selector).each(function(){r.offset_top+=$(this).innerHeight()}));t.stick_in_parent(r)}t.stick_in_parent()}}}angular.module("CommonModule").directive("exlSticky",n);n.$inject=[]}(),function(){"use strict";function n(){function t(){}function i(t,i,r){var u=n.controllerAs?t[n.controllerAs]:t;u.clickButtonFn=function(){angular.isDefined(r.clickButton)&&(u.wasClicked=!0,u.clickButton())};u.disableButtonFn=function(){return angular.isDefined(r.disableButton)?u.disableButton():!1};u.hideButtonFn=function(){return angular.isDefined(r.hideButton)?u.hideButton():!1};t.$on(ExlConstants.events.httpRequestsPending,function(){u.wasClicked&&(u.showSpinner=!0)});t.$on(ExlConstants.events.httpRequestsComplete,function(){u.wasClicked=!1;u.showSpinner=!1})}var n={link:i,restrict:"E",transclude:!0,replace:!0,scope:{clickButton:"&",disableButton:"&",hideButton:"&","class":"@"},templateUrl:"App/Common/Views/SubmitButtonDirective.html",controller:t,controllerAs:"submitButton",bindToController:!0};return n}angular.module("CommonModule").directive("exlSubmitButton",n);n.$inject=["$rootScope"]}(),function(){"use strict";function n(n){function t(t,i){n(i.html(t.content).contents())(t.$parent)}return{link:t,restrict:"E",scope:{content:"@"}}}angular.module("CommonModule").directive("exlTemplate",n);n.$inject=["$compile"]}(),function(){"use strict";function n(n,t){function r(){var n=this}function u(r,u,f){var e=i.controllerAs?r[i.controllerAs]:r,s=u.find("input"),h,o;if(e.useNative)o=function(){var i="h:i A",n=e.min(),t=e.max(),r=moment(angular.isFunction(n)?n():n).format(i),u=moment(angular.isFunction(t)?t():t).format(i);s.prop("min",r).prop("max",u)},f.counterpart?r.$watch(function(){return e.counterpart},o):o();else{h="h:i A";s.pickatime({clear:!1,editable:!1,format:h,onOpen:function(){var i=this;Modernizr.touch&&n.innerWidth<=768&&t.scrollToElem(u)}}).next(".picker").on("click","*",function(n){n.preventDefault()});e.model;Modernizr.input.placeholder&&s.prop("placeholder",h);o=function(){};f.counterpart?r.$watch(function(){return e.counterpart},o):o()}}var i={priority:99,link:u,restrict:"E",replace:!0,scope:{model:"=",min:"&",max:"&",isRequired:"&",counterpart:"=",name:"@"},templateUrl:"App/Common/Views/TimePickerDirective.html",bindToController:!0,controller:r,controllerAs:"timePicker"};return i}angular.module("CommonModule").directive("exlTimePicker",n);n.$inject=["$window","DocumentService"]}(),function(){"use strict";function n(n,t){function u(){var i=this;i.defaultButtonNextText=r();i.isSelfRegLayout=angular.isDefined(t);i.taskDashboard=n.getTask(ExlConstants.wizardTaskInternalName.Dashboard);i.disableDemote=function(){return i.disableButtonBack()||!i.alwaysEnableButtonBack()&&angular.isUndefined(n.previousTask())};i.disablePromote=function(){return i.disableButtonNext()||!i.alwaysEnableButtonNext()&&angular.isUndefined(n.nextTask())}}function r(){var i="Next",t=n.nextTask();return t&&t.setupWizardTypeCode===ExlConstants.setupWizardTypeCode.RegType&&t.config.defaultRegType&&t.config.skipRegTypePage&&(t=t.NextTask),t&&(i+=": "+t.taskDisplayName),i}function f(t,u,f){var e=i.controllerAs?t[i.controllerAs]:t;e.demote=function(){angular.isDefined(f.clickButtonBack)?e.clickButtonBack():n.demote()};e.promote=function(){angular.isDefined(f.clickButtonNext)?e.clickButtonNext():n.promote()};e.goToDashboard=function(){n.goToTask(e.taskDashboard)};t.$on(ExlConstants.events.wizardNavChanged,function(){e.defaultButtonNextText=r()})}var i={link:f,restrict:"E",scope:{clickButtonBack:"&",clickButtonNext:"&",disableButtonBack:"&",disableButtonNext:"&",alwaysEnableButtonNext:"&",alwaysEnableButtonBack:"&",hideButtonBack:"&",hideButtonNext:"&",hideButtonDashboard:"&",labelButtonBack:"&",labelButtonNext:"&"},templateUrl:"App/Common/Views/WizardNavDirective.html",controller:u,controllerAs:"wizardNav",bindToController:!0};return i}angular.module("CommonModule").directive("exlWizardNav",n);n.$inject=["WizardNavService","SELFREGSETTINGS","PaymentService"]}(),function(){"use strict";function n(n){function i(){var n=this;n.isCurrentTask=r}function r(t){return t.taskInternalName==n.currentTask().taskInternalName}function u(i){var r=t.controllerAs?i[t.controllerAs]:i;r.taskList=n.getTaskList(r.taskFilter)}var t={restrict:"E",link:u,scope:{taskFilter:"="},templateUrl:"App/Common/Views/WizardSubNavDirective.html",controller:i,bindToController:!0,controllerAs:"wizardSubNavCtrl"};return t}angular.module("CommonModule").directive("exlWizardSubNav",n);n.$inject=["WizardNavService"]}(),function(){"use strict";function n(n){function i(n,t){if(angular.isArray(n))return _(n).flatten().filter(function(n){return n.displayTypeCode!="STATIC_TEXT"}).forEach(function(n){n.colSize=12/t}).chunk(t).value()}function r(r,u,f){function s(n){var t=!0;return angular.forEach(n,function(n){if(n.fieldName&&e.profile)switch(n.fieldName.toUpperCase()){case"ALUM":t=!e.profile.demographics.issenior||e.profile.demographics.issenior=="N"}}),t}var e=t.controllerAs?r[t.controllerAs]:r,o=angular.isDefined(f.interfaceType);r.$watch(function(){return e.profile},function(t,r){if(o||t&&Object.keys(t).length&&(t!=r||!e.data)){var u=e.profile&&e.profile.profileInterface||"",s;o&&(u=e.interfaceType);e.profile&&angular.isDefined(e.profile.registrantId)&&(s=e.profile.registrantId);n.getData(e.layout,u,s).success(function(n){e.data=e.itemsPerRow&&e.summary?i(n,e.itemsPerRow):n;angular.forEach(e.data,function(n){angular.forEach(n,function(n){n.fieldName&&e.overrides&&e.overrides[n.fieldName]&&angular.element.extend(n,e.overrides[n.fieldName])})});angular.isDefined(f.fieldDetailData)&&(e.fieldDetailData=_(e.data).flatten().filter(function(n){return n.displayTypeCode!="STATIC_TEXT"}).value());e.isLoaded||(e.isLoaded=!0)})}});e.checkRowVisibility=s}var t={link:r,restrict:"E",scope:{layout:"@",profile:"=",summary:"@",overrides:"=",itemsPerRow:"@",interfaceType:"@",fieldDetailData:"="},templateUrl:"App/Common/Views/WizardTaskLayoutDirective.html",controller:angular.noop,controllerAs:"WizardTaskLayout",bindToController:!0};return t}angular.module("CommonModule").directive("exlWizardTaskLayout",n);n.$inject=["WizardTaskLayoutService"]}(),function(){"use strict";function n(n){function i(n,t){n&&(n.$setViewValue(t),n.$render())}function u(n,t,i){for(var r=0;r<n.length;r++)if(n[r].iso2===t)return n[r].value+"-"+i;return i}function f(r,f,e,o){if(e.exlZipcodeLookup){var s=r.$eval(e.exlZipcodeLookup);angular.extend(t,s)}r.$watch(o.$name,function(f){f&&o[t.zipcodeName]&&r.$watch(o.$name+"."+t.zipcodeName+".$viewValue",function(r,f){var e,s;r&&r!==f&&(e=o[t.countryName].$modelValue,e&&e!=="United States"&&e!=="Canada"||(s=r.trim().match(/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/),s&&n.getLocale(r.trim()).then(function(r){n.getCountry().then(function(n){var f,e,c,s,h;if(i(o[t.cityName],r.preferredCity),r.localeType==="Domestic"?(f="US",e=r.stateCode):r.localeType==="Canadian"&&(f="CA",e=r.provinceCode),angular.isDefined(f))for(angular.isDefined(e)&&(c=u(n,f,e),i(o[t.stateName],c)),s=0;s<n.length;s++)if(h=n[s],h.iso2===f){i(o[t.countryName],h.value);break}})})))},!0)},!0)}var r={require:"form",link:f,restrict:"EA"},t={zipcodeName:"zipCode",cityName:"city",stateName:"stateCode",countryName:"countryCode"};return r}angular.module("CommonModule").directive("exlZipcodeLookup",n);n.$inject=["CountryStateFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function c(c,l,a){var y=h.controllerAs?c[h.controllerAs]:c,v=t.current.data.config;l.click(function(){var t=c.$eval(a.exlConfirmationPreview);t.registrantId&&e.getPersonList(t.registrantId).success(function(h){var c=[],y,l,a;angular.forEach(h,function(n){n.isGuest||this.push(n)},c);c&&c.length===1&&(y=c[0],l=v&&v.enableForwardConfirmation,angular.isDefined(l)||(a=_.find(s.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.Confirmation}),l=a&&a.config&&a.config.enableForwardConfirmation),e.getConfirmationLetter(y.registrantId).success(function(s){var h=o.createFieldDetailTextBox("email","CONFIRMATION_PREVIEW_FORWARD"),c={title:"View Confirmation Letter",registrant:y,content:n.trustAsHtml(s),areConfirmationsEnabled:v.enableConfirmation&&!r,sendConfirmation:function(n){e.sendConfirmation(n.registrantId).success(function(n){n.success&&!n.messages.length&&f.displaySuccess("Confirmation letter has been sent.")})},enableForwardConfirmation:l,forwardEmailFieldDetail:h,forwardConfirmation:function(){this.profile&&this.profile.email&&e.forwardConfirmation(this.registrant.registrantId,this.profile.email).success(function(n){n.success&&!n.messages.length&&f.displaySuccess("Confirmation letter has been forwarded.")})}};u.showModal({bodyTemplateUrl:"App/Confirmation/Views/ConfirmationModal.html",footerTemplateUrl:"App/Confirmation/Views/ConfirmationModalFooter.html",controller:"ModalController",modalcss:"hide-for-print",inputs:c,onOpen:function(){t.scrollToEngageDownload&&i(function(){var n=angular.element(".exl-conf-engage-section").offset();n&&angular.element("html,body").animate({scrollTop:n.top},"slow")},100)}}).then(angular.noop)}))})})}var h={link:c,restrict:"A",scope:!1,controller:angular.noop,controllerAs:"confirmationPreviewCtrl",bindToController:!0};return h}angular.module("ConfirmationModule").directive("exlConfirmationPreview",n);n.$inject=["$sce","$state","$timeout","ISSELFREG","ModalFactory","NotificationFactory","ConfirmationService","FieldDetailFactory","WIZARD"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){function w(){var n=this,e;n.config=t.current.data.config;n.isFlowOpen=r.flow.isOpen;n.isSelfReg=i;n.allowMultipleRegPerBooking=n.config.allowMultipleRegPerBooking;n.isGroupIndividual=r.flow.isGroupIndividual;n.allowMultipleRegPerBooking||!f.isLoggedIn()||n.isGroupIndividual||u.getAllRegistrants().success(function(i){var u=i.length,r=_.find(i,function(n){return n.regTypeCode});r&&u>1&&r.registrantId!=t.params.regId&&(n.noRegAllowed=!0)});n.getFirstTaskState=function(n){if(n.wizardTasks.length)return n.wizardTasks[0].stateName};n.goToTask=function(t){if(t.sectionName.toUpperCase()===ExlConstants.wizardSectionName.Registration.toUpperCase()){if(n.isRegistrationSectionFinished())return;n.registrationProgressPercent==100?l.checkForReservation(n.registrant).then(function(n){n?o.goToTaskByName(ExlConstants.wizardTaskInternalName.ShowSummary):o.goToSectionByName(ExlConstants.wizardSectionName.Housing,!1)}):(r.flow.housingType!=ExlConstants.flowHousingTypes.none&&n.registrantHasHousing&&o.createRegistrationOnlyQueue(),o.goToTask(n.registrationNextTask||o.getFirstRegTask()))}else if(t.wizardTasks.length){var i=t.sectionName!==ExlConstants.wizardSectionName.Housing;o.goToSection(t,i)}};n.isRegistrationSectionFinished=function(){return n.isRegistrationCompleted&&!n.hasRegistrationInProgressItem&&n.registrationProgressPercent==100&&n.registrant&&n.registrant.balanceDue===0};n.registrationProgress=function(){return n.isRegistrationCompleted?"100%":n.registrationProgressPercent&&n.registrationProgressPercent>0?Math.round(n.registrationProgressPercent)+"%":"0%"};n.isSectionEnabled=function(t){var i=r.flow;if(t.isOpen||t.sectionName==="Confirmation")switch(t.sectionName){case"Housing":return(i.registrationType===ExlConstants.flowRegistrationTypes.none||i.allowResBeforeReg&&n.config.allowResBeforeReg||n.isRegistrationCompleted||n.registrationProgressPercent==100)&&n.isBookingUnderReservationLimit!==!1;case"FriendInvite":return i.registrationType!==ExlConstants.flowRegistrationTypes.none&&n.registrant&&n.registrant.regTypeCode;case"AddAnother":return n.isLoggedIn&&n.registrant&&r.isRegistrationOpen();case"Financial":return n.registrant;case"Confirmation":return n.isLoggedIn&&n.registrant&&(i.registrationType!==ExlConstants.flowRegistrationTypes.none&&n.registrant.isCompleted||i.housingType!==ExlConstants.flowHousingTypes.none&&n.registrant.hsnState==="COM");case ExlConstants.wizardSectionName.GESessions:return!y||r.isRegistrationOpen();default:return!0}else return!1};e=r.flow;n.hideAllFees=(e.registrationType===ExlConstants.flowRegistrationTypes.none||e.hideRegFees&&e.hideShowItemFees)&&(e.housingType===ExlConstants.flowHousingTypes.none||n.config.hideReservationFees);n.showModal=function(n){if(n.isOpen){var t=_.find(r.flow.wizardSections,{sectionName:ExlConstants.wizardSectionName.Confirmation});return t&&t.config.useConfirmationModal}return!0};n.confirmationToolTip=function(t){return n.isSectionEnabled(t)||!n.isFlowOpen?null:"Your record is not yet completed."}}function b(i){function b(n){c.isRegistrationCompleted=n&&n.isCompleted}function k(n){if(c.hasRegistrationInProgressItem=!1,n&&n.showItemCart)for(var t=0;t<n.showItemCart.length;t++)if(n.showItemCart[t].isInProgress){c.hasRegistrationInProgressItem=!0;return}}function d(n){n&&n.regStatus&&!exlBaseFunctions.isNullOrWhiteSpace(n.regStatus.statusCode)&&!exlBaseFunctions.isNullOrWhiteSpace(n.regStatus.description)&&(c.regTypeDesc=c.config.hideCodeInRegTypeControl?n.regStatus.description:n.regStatus.statusCode+" - "+n.regStatus.description)}function g(n){for(var o,i,u,s,f,t,e=0;e<r.flow.wizardSections.length;e++)if(o=r.flow.wizardSections[e],o.sectionName.toUpperCase()==ExlConstants.wizardSectionName.Registration.toUpperCase()){t=o;break}if(i=0,t&&t.wizardTasks&&t.wizardTasks.length){for(u=0;u<t.wizardTasks.length;u++)for(s=t.wizardTasks[u],f=0;f<n.length;f++)n[f].taskInternalName.toUpperCase()==s.taskInternalName.toUpperCase()&&n[f].completedDate&&(i=u+1);c.registrationProgressPercent=i/t.wizardTasks.length*100;c.registrationNextTask=i<t.wizardTasks.length?t.wizardTasks[i]:null}}function w(n){var e;if(r.flow.isOpen){var f="Payment Due",t="",i=!1,u=!1;n.totalRegBalance>0&&(t+="Your registration is not complete until you have paid your balance. <br /><br />",i=!0);n.totalHousingBalance>0&&(t+="Your hotel room is not confirmed until you have paid the deposit. <br /><br />",i=!0);n.isccgNeeded&&(i||(f="Confirm Room"),t+="Your hotel room is not confirmed until you have provided a Credit Card Guarantee. <br /><br />",u=!0);i?t+="Click this to pay now or the 'x' to close.":u&&(t+="Click this to add one now or the 'x' to close.");(i||u)&&(e={type:"warning",title:f,body:t,timeout:0,bodyOutputType:"trustedHtml",clickHandler:function(n,t){return t||o.goToTaskByName(ExlConstants.wizardTaskInternalName.ShowSummary),!0}},h.displayToast(e))}}function nt(){a.getAll(t.params.regId).success(function(n){n.success&&n.data&&n.data.length&&(c.registrantHasHousing=!0)})}var y,c,l;r.flow.housingType!==ExlConstants.flowHousingTypes.none&&f.isLoggedIn()&&(y=function(){s.getIsUnderReservationLimit().success(function(n){n.success?c.isBookingUnderReservationLimit=n.data:delete c.isBookingUnderReservationLimit})},y(),i.$on(ExlConstants.events.roomOccupantChanged,function(n,t){!n.defaultPrevented&&t&&t.method==="roomCancel"&&y()}));c=p.controllerAs?i[p.controllerAs]:i;c.errorMessages=i.taskCtrl?i.taskCtrl.errorMessages||[]:[];c.sections=r.flow.wizardSections;c.isLoggedIn=f.isLoggedIn();f.isLoggedIn()&&(nt(),l={},c.isGroupIndividual?angular.extend(l,{shoppingCart:v.getShoppingCart()}):angular.extend(l,{bookingFinancials:s.getBookingFinancials()}),t.params&&t.params.regId&&angular.extend(l,{taskState:e.getData(t.params.regId),registrant:u.getCurrentRegistrant()}),n.all(l).then(function(n){var t={},u=n.bookingFinancials,i=n.shoppingCart,r;u?t=u:i&&(t.totalRegBalance=i.balance.regBalance,t.totalHousingBalance=i.balance.housingBalance,t.isccgNeeded=i.balance.isccg);c.registrant=n.registrant;c.registrant?(b(c.registrant),k(c.registrant),d(c.registrant),r=n.taskState,r&&(g(r,c.isRegistrationCompleted),c.registrationProgressPercent===100&&w(t))):c.isGroupIndividual||w(t)},function(n){c.errorMessages=n}))}var p={link:b,restrict:"E",scope:!1,templateUrl:"App/Dashboard/Views/DashboardSectionsDirective.html",controller:w,controllerAs:"dashboardSectionsCtrl",bindToController:!0};return p}angular.module("DashboardModule").directive("exlDashboardSections",n);n.$inject=["$q","$state","ISSELFREG","WIZARD","RegistrantFactory","RegistrantLoginService","WizardTaskStateService","WizardNavService","BookingFactory","NotificationFactory","ShowItemService","DashboardService","ReservationService","PaymentService","IS_PROD_DATABASE"]}(),function(){"use strict";function n(){function t(){var n=this}function i(t){var i=n.controllerAs?t[n.controllerAs]:t}var n={link:i,restrict:"E",scope:{actions:"="},templateUrl:"App/Dashboard/Views/ExploreHousingSectionDirective.html",controller:t,controllerAs:"exploreHousingSectionCtrl",bindToController:!0};return n}angular.module("DashboardModule").directive("exlExploreHousingSection",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t){function i(){var i=this,r=n.current.data.config,u=t.flow;i.hideRegFees=u.hideRegFees;i.hideShowItemFees=u.hideShowItemFees;i.hideReservationFees=r.hideReservationFees;i.hideCodeInRegTypeControl=r.hideCodeInRegTypeControl}function r(){}return{link:r,restrict:"A",scope:{item:"=exlFinancialItems"},templateUrl:"App/Dashboard/Views/FinancialItemsDirective.html",controller:i,controllerAs:"FinancialItems",bindToController:!0}}angular.module("DashboardModule").directive("exlFinancialItems",n);n.$inject=["$state","WIZARD"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(t){var i=e.controllerAs?t[e.controllerAs]:t;t.$on(ExlConstants.events.roomOccupantChanged,function(){i.registrantId&&n.getShoppingCart(i.registrantId).then(function(n){i.cart=n;i.updateTotals()})})}var e={link:o,restrict:"EA",scope:{registrantid:"@",section:"="},templateUrl:"App/Dashboard/Views/FinancialSectionDirective.html",controller:function(){var e=this,o;(e.registrantId=e.registrantId||r.params.regId,e.registrantId)&&(u.getCurrentRegistrant().then(function(n){e.registrant=n}),e.updateTotals=function(){e.cart&&(e.hasINP=e.cart.itemsINP.length,e.hasCOM=e.cart.itemsCOM.length,e.canPay=!e.nextRegTask&&(e.cart.balance.totalBalanceDue>0||e.cart.balance.isccg))},o={cart:n.getShoppingCart(e.registrantId),nextRegTask:t.getNextRegTask(e.registrantId)},i.all(o).then(function(n){e.cart=n.cart;e.nextRegTask=n.nextRegTask;e.updateTotals()}),e.click=function(){(e.hasINP||e.hasCOM)&&f.showSummary(e.registrant,e.cart)})},controllerAs:"FinancialSection",bindToController:!0};return e}angular.module("DashboardModule").directive("exlFinancialSection",n);n.$inject=["PaymentService","WizardTaskStateService","$q","$state","RegistrantFactory","FinancialService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function h(n,t){var i=0;return t?i=n.length:_.forEach(n,function(n){i+=n.reservationId?n.totalFee:n.totalAmount}),i}function c(i){var r=s.controllerAs?i[s.controllerAs]:i;i.$on(ExlConstants.events.roomOccupantChanged,function(){(r.registrantId=r.registrantId||t.params.regId,r.registrantId)&&n.getShoppingCart(r.registrantId).then(function(n){r.cart=n;r.updateTotals()})})}var s={link:c,restrict:"E",templateUrl:"App/Dashboard/Views/FinancialSummaryDirective.html",scope:{registrantId:"@",shoppingCart:"=",hideTitle:"=",expand:"=",hideButton:"="},controller:function(){var r=this,l=t.current.data.config,s=i.flow,c;(r.section=_.find(s.wizardSections,{sectionName:"Financial"}),r.section)&&(r.registrantId=r.registrantId||t.params.regId,r.registrantId)&&(e.getCurrentRegistrant().then(function(n){r.registrant=n}),r.hideAllFees=(s.registrationType===ExlConstants.flowRegistrationTypes.none||s.hideRegFees&&s.hideShowItemFees)&&(s.housingType===ExlConstants.flowHousingTypes.none||l.hideReservationFees),r.updateTotals=function(){r.cart&&(r.itemsCOMTotal=h(r.cart.itemsCOM,r.isHousingOnlyNoDeposit),r.itemsINPTotal=h(r.cart.itemsINP,r.isHousingOnlyNoDeposit),r.chargesTotal=r.itemsCOMTotal+r.itemsINPTotal,r.paymentsTotal=h(r.cart.payments,r.isHousingOnlyNoDeposit))},c={nextRegTask:u.getNextRegTask(r.registrantId)},r.shoppingCart?r.cart=r.shoppingCart:c.cart=n.getShoppingCart(r.registrantId),f.all(c).then(function(n){n.cart&&(r.cart=n.cart);var t={depositAmt:0};r.isHousingOnlyNoDeposit=s.registrationType===ExlConstants.flowRegistrationTypes.none&&_.every(r.cart.itemsCOM,t)&&_.every(r.cart.itemsINP,t);r.updateTotals();r.nextRegTask=n.nextRegTask}),r.click=function(){!r.expand&&(r.cart.itemsINP.length||r.cart.itemsCOM.length)&&o.showSummary(r.registrant,r.cart)})},controllerAs:"FinancialSummary",bindToController:!0};return s}angular.module("DashboardModule").directive("exlFinancialSummary",n);n.$inject=["PaymentService","$state","WIZARD","WizardNavService","WizardTaskStateService","$q","RegistrantFactory","FinancialService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function l(){function v(){if(l.isPreview)r.isLoaded=!0;else{var t={};angular.extend(t,{regisrantGroupSummary:f.getRegGroupSummary(),bookingSummary:e.getBookingSummary(!0),bookingFinancials:e.getBookingFinancials(),cabConfigPolicy:o.getCreateBlockConfigPolicy(),rabConfigPolicy:s.getBlockRequestConfigPolicy(),currentBlockRequst:s.getCurrentBlockRequest()});n.all(t).then(function(n){var u,t;for(r.registrationData.regGroupSummary=n.regisrantGroupSummary,r.isCABEnabled=i.isSectionEnabled(ExlConstants.wizardSectionName.CAB)&&exlBaseFunctions.stringEqualsIgnoreCase(r.registrationData.regGroupSummary.blockRequestSettings.blockManagementType,ExlConstants.blockManagementTypes.cab),r.isRABEnabled=i.isSectionEnabled(ExlConstants.wizardSectionName.RAB)&&exlBaseFunctions.stringEqualsIgnoreCase(r.registrationData.regGroupSummary.blockRequestSettings.blockManagementType,ExlConstants.blockManagementTypes.rab),r.isHotelItemAssigned=w(),c=n.cabConfigPolicy,r.addBlockEnabled=c.addBlockEnabled,r.minRooms=c.minRoomsRequested,r.isCabCCGRequired=b(),r.isCabMinRoomNightsValid=k(),r.registrationData.bookingSummary=n.bookingSummary,r.currentBookingId=r.registrationData.bookingSummary.bookingId,r.isBookingContactVerified=r.registrationData.bookingSummary.contact?r.registrationData.bookingSummary.contact.isVerified:!1,r.contactProfileAction=r.registrationData.bookingSummary.contact?r.isBookingContactVerified?"EDIT":"VERIFY":"ADD",u=n.bookingFinancials,r.registrationData.bookingFinancials=u,r.currentBlockRequest=angular.copy(n.currentBlockRequst),r.rabConfigPolicy=n.rabConfigPolicy,r.blockRequestStatus=s.getRABStatus(r.currentBlockRequest),r.addNewBlockRequestEnabled=r.rabConfigPolicy?r.rabConfigPolicy.addRequestEnabled:!1,r.isRABSectionEnabled=d(),r.blockHousingRequirementsSatisfied=nt(),r.sections=angular.copy(i.flow.wizardSections),t=0;t<r.sections.length;t++)y(r.sections[t]),p(r.sections[t]),exlBaseFunctions.stringEqualsIgnoreCase(r.sections[t].sectionName,ExlConstants.wizardSectionName.ManageRooms)&&(r.manageRoomsSectionDisplayName=g(r.sections[t].sectionDisplayName));r.isLoaded=!0;rt(u)})}}function y(n){n.isVisible=!0;switch(n.sectionName){case ExlConstants.wizardSectionName.CAB:n.isVisible=r.isCABEnabled?!0:!1;break;case ExlConstants.wizardSectionName.RAB:n.isVisible=r.isRABEnabled?!0:!1;break;case ExlConstants.wizardSectionName.ManageRooms:n.isVisible=r.isHotelItemAssigned||r.isCABEnabled||r.isRABEnabled}return}function p(n){n.isEnabled=!0;switch(n.sectionName){case ExlConstants.wizardSectionName.CAB:n.isEnabled=r.isCABOpen&&r.isBookingContactVerified&&r.addBlockEnabled;break;case ExlConstants.wizardSectionName.RAB:n.isEnabled=r.isRABSectionEnabled&&r.isBookingContactVerified;break;case ExlConstants.wizardSectionName.ManageRooms:n.isEnabled=r.isHotelItemAssigned&&(!r.isRABEnabled||r.isRABEnabled&&r.blockRequestStatus.isGuaranteed)&&r.isBookingContactVerified;break;case ExlConstants.wizardSectionName.ManageGroup:n.isEnabled=r.isBookingContactVerified?!0:!1;break;case ExlConstants.wizardSectionName.Housing:n.isEnabled=r.isHousingOpen&&r.blockHousingRequirementsSatisfied;break;case ExlConstants.wizardSectionName.ViewCompleted:n.isEnabled=tt()&&r.isBookingContactVerified}return}function w(){var n=r.registrationData.regGroupSummary;return n&&n.isHotelItemAssigned}function b(){var n=!1,t=r.registrationData.regGroupSummary;return r.isCABEnabled&&r.isHotelItemAssigned&&c&&t&&(n=c.requireCCG&&!t.hasSaveOnlyCCG),n}function k(){var n=!0,t=r.registrationData.regGroupSummary;return r.isCABEnabled&&r.isHotelItemAssigned&&t&&(n=t.iscabMinRoomNightsValid),n}function d(){var n=!1;return(i.isRABOpen()&&r.addNewBlockRequestEnabled||r.blockRequestStatus.isSubmitted||r.blockRequestStatus.isFulfilled||r.blockRequestStatus.isGuaranteed)&&(n=!0),n}function g(n){var t="View Inventory";return c&&r.isCABEnabled&&c.editBlockEnabled&&r.isCABOpen&&(t=n),t}function nt(){var n=!1;return r.isBookingContactVerified?(r.isCABEnabled?r.isHotelItemAssigned&&r.isCabMinRoomNightsValid&&!r.isCabCCGRequired&&(n=!0):r.isRABEnabled?r.isHotelItemAssigned&&r.blockRequestStatus.isGuaranteed&&(n=!0):n=!0,n):n}function tt(){var n=r.registrationData.bookingSummary;return n&&(n.completedReg>0||n.completedRes>0)}function it(n){if(n.wizardTasks.length){switch(n.sectionName){case ExlConstants.wizardSectionName.RAB:if(r.blockRequestStatus.isFulfilled){u.goToTaskByName(ExlConstants.wizardTaskInternalName.RABGuarantee,null,null,!0);return}if(r.blockRequestStatus.isSubmitted||r.blockRequestStatus.isGuaranteed){u.goToTaskByName(ExlConstants.wizardTaskInternalName.RABSummary,null,null,!0);return}break;case ExlConstants.wizardSectionName.ContactProfile:r.registrationData.bookingSummary.contact||e.setCreateNewBooking(!0)}u.goToSection(n,!0)}}function rt(n){if(i.flow.isOpen&&n){var e="Payment Due",t="",r=!1,f=!1;n.totalRegBalance>0&&(t+="Your registrations are not complete until you have paid the registration balance due. <br /><br />",r=!0);n.totalHousingBalance>0&&(t+="Your hotel rooms are not confirmed until you have paid the room(s) total due. <br /><br />",r=!0);n.isccgNeeded&&(r||(e="Confirm Room(s)"),t+="Your hotel rooms are not confirmed until you have provided the required Credit Card Guarantee. <br /><br />",f=!0);r?t+="Click this to pay now or the 'x' to close.":f&&(t+="Click this to add one now or the 'x' to close.");(r||f)&&h.pop("warning",e,t,0,"trustedHtml",function(n,t){return t||u.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment,null,null,!0),!0})}}var r=this,a=t.current.data.config,l=i.flow,c;r.registrationData={};r.blockRequestStatus={};r.isCABOpen=i.isCABOpen();r.isHousingOpen=i.isHousingOpen();r.goToTask=it;r.viewCompletedAdditionalTextIdCode="WEB_GROUP_DASH_SECTION_VIEW_COMPLETED_ADDINFO_TEXT";r.hideAllFees=(l.registrationType===ExlConstants.flowRegistrationTypes.none||l.hideRegFees&&l.hideShowItemFees)&&(l.housingType===ExlConstants.flowHousingTypes.none||a.hideReservationFees);v()}function a(n){var t=c.controllerAs?n[c.controllerAs]:n}var c={link:a,restrict:"E",scope:!1,templateUrl:"App/Dashboard/Views/GroupDashboardSectionsDirective.html",controller:l,controllerAs:"groupDashboardSectionsCtrl",bindToController:!0};return c}angular.module("DashboardModule").directive("exlGroupDashboardSections",n);n.$inject=["$q","$state","WIZARD","RegistrantGroupLoginService","WizardNavService","RegistrantGroupFactory","BookingFactory","CABFactory","RABFactory","toaster"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(){function e(){o();n.reservationUploadVisible=h();n.reservationUploadEnabled=!u&&!f;n.isSectionVisible=s()}function o(){n.reservationUploadListCount=0;t.getUploadList().then(function(t){t&&(n.reservationUploadListCount=t.length)})}function s(){var t=!1;return(n.actions&&n.actions.length||n.data.bookingSummary||n.reservationUploadVisible)&&(t=!0),t}function h(){var t=!1,i=n.data.regGroupSummary;return i&&i.isHotelItemAssigned&&!r&&(t=!0),t}function c(n,t,r,u){switch(n){case"TASK":i.goToTaskByName(t,r,null,u);break;case"SWTC":i.goToTaskBySetupWizardCode(t,r)}}var n=this;n.clickActionSection=c;e()}function s(n){var t=e.controllerAs?n[e.controllerAs]:n}var e={link:s,restrict:"E",scope:{data:"=",actions:"="},templateUrl:"App/Dashboard/Views/GroupHousingSectionDirective.html",controller:o,controllerAs:"groupHousingSectionCtrl",bindToController:!0};return e}angular.module("DashboardModule").directive("exlGroupHousingSection",n);n.$inject=["ModalFactory","ReservationService","WizardNavService","IS_ONSITE","IS_DEV_DATABASE","IS_QA_DATABASE"]}(),function(){"use strict";function n(n){function i(){function i(){t.isRegistrationEnabled=!exlBaseFunctions.stringEqualsIgnoreCase(n.flow.registrationType,ExlConstants.flowRegistrationTypes.none);t.isExhibitorRegEnabled=exlBaseFunctions.stringEqualsIgnoreCase(n.flow.registrationType,ExlConstants.flowRegistrationTypes.exhibitor);t.isSectionVisible=r()}function r(){var n=!1;return(t.actions&&t.actions.length||t.isRegistrationEnabled)&&(n=!0),n}var t=this;i()}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={link:r,restrict:"E",scope:{data:"=",actions:"="},templateUrl:"App/Dashboard/Views/GroupRegistrationSectionDirective.html",controller:i,controllerAs:"groupRegistrationSectionCtrl",bindToController:!0};return t}angular.module("DashboardModule").directive("exlGroupRegistrationSection",n);n.$inject=["WIZARD"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function h(){var t=this;t.isGroupIndividual=i.flow.isGroupIndividual;t.currentRegId=n.params.regId;t.housingClosed=!i.isHousingOpen();t.roomNights=function(n){return moment(n.checkOutDate).diff(n.checkInDate,"d")}}function c(t){var r=s.controllerAs?t[s.controllerAs]:t;if(i.flow.housingType!=="None"&&e.isLoggedIn()){if(r.isGroupIndividual&&!r.currentRegId)return;o.getAll(n.params.regId).success(function(n){n.success&&f.getAll().success(function(i){i.success&&(r.facilityData=f.toDictionary(i.data),r.reservations=n.data,t.$watch(function(){return r.reservations},function(){r.reservations.length&&o.bookingFees().success(function(n){n.success&&(r.reservationFeesTotal=0,angular.forEach(n.data,function(n){this[n.reservationId]=n;r.reservationFeesTotal+=n.totalForStay},r.reservationFees={}))})},!0))})})}}var s={link:c,restrict:"E",scope:{actions:"="},templateUrl:"App/Dashboard/Views/HousingSectionDirective.html",controller:h,controllerAs:"housingSectionCtrl",bindToController:!0};return s}angular.module("DashboardModule").directive("exlHousingSection",n);n.$inject=["$state","$filter","WIZARD","ModalFactory","NotificationFactory","FacilityService","RegistrantLoginService","ReservationService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function p(){var i=this,r=t.current.data.config;i.isSelfReg=a;i.showBadge=function(n){l.getBadgePreviewB64(n).success(function(n){var t={title:"View Badge",badgeSrc:n,goToProfile:function(){c.goToTaskByName(ExlConstants.wizardTaskInternalName.Profile)}};return u.showModal({bodyTemplate:'<img style="border:solid;" data-ng-src="{{modalCtrl.badgeSrc}}" />',footerTemplate:'<button class="button small secondary" data-ng-click="modalCtrl.close(\'OK\')">Cancel<\/button>&nbsp;<button class="button small dark" data-ng-click="modalCtrl.goToProfile()">Edit Badge<\/button>',controller:"ModalController",inputs:t}).then(angular.noop)})};i.showAgenda=function(t){var e={},s={},p=t&&t.showItemCart&&t.showItemCart.length?t.showItemCart:[],i,r,l,a,y;angular.forEach(p,function(n){if(v.isValidAgendaItem(n)){var t="Key"+n.showItemId,i=moment(n.startDate);i.isValid()&&i.isAfter("1/1/0001")?e[t]?e[t].adjustedQuantity+=n.quantity:e[t]={showItem:n,adjustedQuantity:n.quantity}:s[t]?s[t].adjustedQuantity+=n.quantity:s[t]={showItem:n,adjustedQuantity:n.quantity}}});i=[];for(l in e)i.push(e[l]);r=[];for(l in s)r.push(s[l]);a=n("orderBy");i=i&&i.length?a(i,["showItem.startDate","showItem.description"],null):[];r=r&&r.length?a(r,["showItem.description"],null):[];y={title:"My Agenda",registrant:t,itemsYesDate:i,itemsNoDate:r,hasShowItemTask:c.hasTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.ShowItems),goToShowItems:function(){c.goToTaskBySetupWizardCode(ExlConstants.setupWizardTypeCode.ShowItems)},sendAgenda:function(){h.sendAgenda(t.registrantId).success(function(n){n.success&&!n.messages.length&&f.displaySuccess("Agenda letter has been sent.")})}};o.getCalendarUrl(t.registrantId).then(function(n){if(n.status/100==2){var t=n.data;t.success&&(y.calendarUrl=t.data)}}).finally(function(){u.showModal({bodyTemplateUrl:"App/Dashboard/Views/AgendaModal.html",footerTemplateUrl:"App/Dashboard/Views/AgendaModalFooter.html",controller:"ModalController",inputs:y})})};i.actionVisible=function(n){switch(n){case"Confirmation":return!i.isSelfReg;case"Agenda":return i.hasAgendaItem;case"Badge":return i.showBadgeFields;case"RegType":return!(i.registrant&&i.registrant.isCompleted)||r.regTypeUpgradeAllowed;default:return!0}}}function w(n){var i=y.controllerAs?n[y.controllerAs]:n,f=t.current.data.config,u;i.regTypeDesc=function(){return i.registrant&&i.registrant.regStatus&&!exlBaseFunctions.isNullOrWhiteSpace(i.registrant.regStatus.statusCode)&&!exlBaseFunctions.isNullOrWhiteSpace(i.registrant.regStatus.description)?i.registrant.regStatus.description:null};i.isLoggedIn=e.isLoggedIn();r.flow.registrationType!=="None"&&e.isLoggedIn()&&(o.getCurrentRegistrant().then(function(n){i.registrant=n;i.registrant&&i.registrant.showItemCart&&i.registrant.showItemCart.length&&angular.forEach(i.registrant.showItemCart,function(n){!i.hasAgendaItem&&v.isValidAgendaItem(n)&&(i.hasAgendaItem=!0)});i.showSectionActions=r.isRegistrationOpen()&&i.registrant&&i.registrant.isCompleted}),u=r.tasks[ExlConstants.wizardTaskInternalName.Profile].config,i.showAdaFields=u.adaFieldsVisible,i.showBadgeFields=u.badgeFieldsVisible,i.colSize=u.layoutGridColumnSize,i.showGroupReg=f.allowMultipleRegPerBooking)}var y={link:w,restrict:"E",scope:{actions:"=",isModal:"@",registrantId:"="},templateUrl:"App/Dashboard/Views/RegistrationSectionDirective.html",controller:p,controllerAs:"registrationSectionCtrl",bindToController:!0};return y}angular.module("DashboardModule").directive("exlRegistrationSection",n);n.$inject=["$filter","$state","$window","WIZARD","ModalFactory","NotificationFactory","RegistrantLoginService","RegistrantFactory","PaymentService","ConfirmationService","WizardNavService","ProductionService","ISSELFREG","ShowItemService"]}(),function(){"use strict";function n(n){function i(){var t=this;t.click=function(){switch(t.actionType){case"TASK":n.goToTaskByName(t.actionCommand,t.params,null,t.actionShouldReturn);break;case"SWTC":n.goToTaskBySetupWizardCode(t.actionCommand,t.params);break;case"CUSTOM":default:angular.isFunction(t.onClick)&&t.onClick()}};t.hasCount=function(){return angular.isNumber(t.count)&&t.count>0}}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={link:r,restrict:"E",scope:{actionType:"@",actionCommand:"@",actionShouldReturn:"=",params:"=",displayName:"@",icon:"@",onClick:"&",buttonClass:"@",count:"=",showCountSign:"=",isDisabled:"="},templateUrl:"App/Dashboard/Views/SectionActionDirective.html",controller:i,controllerAs:"sectionActionCtrl",bindToController:!0};return t}angular.module("DashboardModule").directive("exlSectionAction",n);n.$inject=["WizardNavService"]}(),function(){"use strict";function n(n,t,i){function u(){var r=this;if(r.likeTotal=0,!n.tasks[ExlConstants.wizardTaskInternalName.ShowItemGE]||!n.tasks[ExlConstants.wizardTaskInternalName.ShowItemGE].config){r.isVisible=!1;return}if(r.config=n.tasks[ExlConstants.wizardTaskInternalName.ShowItemGE].config,!r.config.enableLikes&&!r.config.enableQuickSearch){r.isVisible=!1;return}r.config.enableQuickSearch&&t.quickFilters(ExlConstants.wizardTaskInternalName.ShowItemGE).success(function(n){r.quickFilters=n;r.isQuickSearchEnabled=r.quickFilters.length?!0:!1});r.likeToggle=function(n,u){t.likesCache=u;i.goToSection(r.section)};r.quickSearch=function(n){t.selectedQuickFilter=n;i.goToSection(r.section)}}function f(n){var t=r.controllerAs?n[r.controllerAs]:n;!t.visible&&t.config&&t.config.enableQuickSearch&&n.$watch(function(){return t.isQuickSearchEnabled},function(n){n&&(t.isVisible=!0)})}var r={link:f,restrict:"EA",scope:{section:"="},templateUrl:"App/Dashboard/Views/ShowItemSectionDirective.html",controller:u,controllerAs:"ShowItemSection",bindToController:!0};return r}angular.module("DashboardModule").directive("exlShowItemSection",n);n.$inject=["WIZARD","ShowItemService","WizardNavService"]}(),function(){"use strict";function n(n,t){function r(){function r(){var r={};angular.extend(r,{allotmentConfigData:t.getAllotmentConfigData(),allotmentData:t.getAllotmentData()});n.all(r).then(function(n){n.allotmentConfigData&&(i.allotmentConfigData=n.allotmentConfigData);n.allotmentData&&(i.allotments=n.allotmentData)})}var i=this;r()}function u(n){var t=i.controllerAs?n[i.controllerAs]:n}var i={link:u,restrict:"E",templateUrl:"App/Exhibitor/Views/ExhibitorAllotmentDirective.html",controller:r,controllerAs:"ExhAllotmentCtrl",bindToController:!0};return i}angular.module("DashboardModule").directive("exlExhibitorAllotment",n);n.$inject=["$q","ExhibitorService"]}(),function(){"use strict";function n(n,t){function r(){var n=this}function u(r){var u=i.controllerAs?r[i.controllerAs]:r,f=n.getRoomSearchCriteria(),e=u.resCheckInDate||f.arrivalDate;r.$watchGroup([function(){return u.resCheckInDate},function(){return f.arrivalDate}],function(){t.getCancelPolicy(u.facilityId,u.regTypeGroupCode,e).success(function(n){if(n.success){var t=n.data,i=angular.element("<div/>").html(t).text().trim();u.policy=i?t:"Please contact customer service to obtain the cancellation policy."}})})}var i={link:u,restrict:"E",scope:{facilityId:"=",regTypeGroupCode:"=",resCheckInDate:"="},template:'<div data-ng-bind-html="facilityCancelPolicyCtrl.policy"><\/div>',bindToController:!0,controller:r,controllerAs:"facilityCancelPolicyCtrl"};return i}angular.module("HousingModule").directive("exlFacilityCancelPolicy",n);n.$inject=["RoomSearchService","RoomService"]}(),function(){"use strict";function n(n,t){function r(){var n=this;n.isFirstOfMonth=function(n){var t=moment(n).date()===1};n.getDayOfMonthOrdinal=function(n){var t=moment(n).date();switch(t%100){case 11:case 12:case 13:return"th"}switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}}}function u(r,u,f){var e=i.controllerAs?r[i.controllerAs]:r;angular.extend(e,r.$eval(f.exlFacilityDailyRates));var o=n.getRoomSearchCriteria(),s=e.startDate||o.arrivalDate,h=e.endDate||o.departureDate,c=e.numberOfGuests||o.numberOfGuests;e.displayTotal=e.displayTotal!=null?e.displayTotal:!0;t.getDailyRates(e.hotelItemId,s,moment(h).subtract(1,"d").toDate(),c).success(function(n){var t,i;if(n.success){if(t=n.data,t==null)return;e.rates=t;e.days=Object.keys(t);e.sum=0;for(i in t)e.sum+=t[i]}})}var i={link:u,restrict:"A",replace:!0,transclude:"element",scope:!1,templateUrl:"App/Housing/Views/FacilityDailyRatesDirective.html",bindToController:!0,controller:r,controllerAs:"facilityDailyRatesCtrl"};return i}angular.module("HousingModule").directive("exlFacilityDailyRates",n);n.$inject=["RoomSearchService","RoomService"]}(),function(){"use strict";function n(){function t(){var n=this}function i(t){var i=n.controllerAs?t[n.controllerAs]:t,u,r;if(i.toolTip=i.desc,i.itemList&&angular.isArray(i.itemList)){for(u="",r=0;r<i.itemList.length;r++)i.itemList[r].desc&&(u+=i.itemList[r].desc+"<br />");u&&(i.toolTip=u)}}var n={priority:99,link:i,restrict:"E",scope:{code:"=",desc:"=",itemList:"="},templateUrl:"App/Housing/Views/FacilityFeatureIconDirective.html",bindToController:!0,controller:t,controllerAs:"facilityFeatureIconCtrl"};return n}angular.module("HousingModule").directive("exlFacilityFeatureIcon",n);n.$inject=[]}(),function(){"use strict";function n(n){function i(){function i(i,r){var f=n.getFacilityFeatures(i,r),u;return angular.isFunction(t.include)&&(u=t.include()),angular.element.grep(f,function(n){return!u||!angular.isArray(u)||!u.length||angular.element.grep(u,function(t){return n.code===t}).length})}var t=this;n.getAll().success(function(r){if(r.success){var u=n.toDictionary(r.data);t.features=i(u,t.facilityId)}})}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={priority:99,link:r,restrict:"E",scope:{facilityId:"@",include:"&"},templateUrl:"App/Housing/Views/FacilityFeaturesDirective.html",bindToController:!0,controller:i,controllerAs:"facilityFeatureCtrl"};return t}angular.module("HousingModule").directive("exlFacilityFeatures",n);n.$inject=["FacilityService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function s(){var n=this;n.src=function(t){if(n.imgConfig)return n.imgConfig.url+(n.imgConfig.url.match(/\/$/)?"":"/")+t};n.alt=function(t,i,r){if(n.imgConfig)switch(t){case n.imgConfig.idIn:return i;case n.imgConfig.idOut:return r}}}function h(s,h,c){var l=e.controllerAs?s[e.controllerAs]:s;u.getImages().success(function(u){if(u.success)if(l.imgConfig=u.data,l.isOrderReverse=l.imgConfig.idIn<l.imgConfig.idOut,c.exlFacilityImages){var v=s.$parent.$eval(c.exlFacilityImages),a=v&&v.length?t("orderBy")(v,"resourceImageCode",l.isOrderReverse)[0]:null,y=a?l.src(a.image):f+"imgBlankHotel.png",p=a?l.alt(a.resourceImageCode,"Interior","Exterior"):"Image Not Available";h.css("background-image","url('"+y+"')").prop("title",p)}else o&&r(i.getTrustedResourceUrl(o)).then(function(t){e.replace||n(h.html(t).contents())(s)})})}var o="App/Housing/Views/FacilityImagesDirective.html",e={link:h,restrict:"EA",scope:{"class":"@",images:"="},bindToController:!0,controller:s,controllerAs:"facilityImageCtrl"};return e}angular.module("HousingModule").directive("exlFacilityImages",n);n.$inject=["$compile","$filter","$sce","$templateRequest","FacilityService","REF_FILES_URL"]}(),function(){"use strict";function n(n,t){function r(r,u,f){var s=i.controllerAs?r[i.controllerAs]:r,e=r.$eval(f.exlFacilityInventory),o="click.exlFacilityInventory";u.off(o).on(o,function(i){i.stopPropagation();var r={};t.getInventory(e.facilityId).success(function(n){r.inventory=n.data});n.showModal({bodyTemplateUrl:"App/Housing/Views/FacilityInventoryModal.html",footerTemplateUrl:"App/Housing/Views/FacilityInventoryModalFooter.html",controller:"ModalController",modalcss:"medium",inputs:{title:e.hotelName,data:r}})})}var i={link:r,restrict:"A",controller:angular.noop,controllerAs:"facilityInventoryCtrl",bindToController:!0};return i}angular.module("HousingModule").directive("exlFacilityInventory",n);n.$inject=["ModalFactory","RoomSearchService"]}(),function(){"use strict";function n(n,t,i,r){function f(){var n=this;n.isOpen=!0}function e(f,e,o,s){var h=u.controllerAs?f[u.controllerAs]:f,c,l;if(s)for(c=f.$parent;c;c=c.$parent)if(c&&angular.isDefined(c.headingEl)){l=c.$watch("isOpen",function(n){h.isOpen!==n&&(h.isOpen=n)});f.$on("$destroy",function(n){!n.defaultPrevented&&angular.isFunction(l)&&l()});break}n.then(function(n){h.map={center:{latitude:45,longitude:-73},zoom:8,control:{},controlMarkers:{},refresh:!1,options:{panControl:!h.facilityId,zoomControlOptions:{style:h.facilityId?n.ZoomControlStyle.SMALL:n.ZoomControlStyle.DEFAULT},scrollwheel:!h.facilityId,mapTypeControl:!1,streetViewControl:!h.facilityId,styles:[{featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]}]}};h.map.markers=[];i.getMapExclusions().success(function(u){u.success&&(h.eventFacilities=[],h.travelModes=[{value:"DRIVING",text:"Driving"},{value:"WALKING",text:"Walking"}],h.travelModes&&h.travelModes.length&&(h.selectedTravelMode=h.travelModes[0]),f.$watchGroup([function(){return h.selectedEventFacility},function(){return h.selectedTravelMode}],function(n,t){n!==t&&angular.isFunction(h.getDirections)&&h.getDirections()}),i.getAll().success(function(i){var c,l,s,o,a;if(i.success){for(c=0,l=[],s=0;s<i.data.facility.length;s++)(o=i.data.facility[s],(!h.facilityId||h.facilityId!=o.facilityID)&&(u.data.ids.indexOf(o.facilityID)>-1||u.data.types.indexOf(o.facilityTypeCode)>-1))||(h.facilityId&&o.facilityID!=h.facilityId&&(o.isPrimaryFacility||o.isEventFacility)&&h.eventFacilities.push({value:o.facilityID,text:o.name}),(!h.facilityId||o.facilityID==h.facilityId||o.isPrimaryFacility||o.isEventFacility)&&(o.isBookingFacility&&c++,a=o.isPrimaryFacility?r+"marker-primaryfacility.png":o.isBookingFacility?"https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+c+"|59DE59|000000":o.facilityTypeCode==="AIRPORT"?r+"marker-airport.png":r+"marker-eventfacility.png",l.push({id:o.facilityID,name:o.name,address:o.address1,graticule:{latitude:o.geoX,longitude:o.geoY},optMarker:{animation:n.Animation.DROP,title:o.name},optWindow:{maxWidth:175,pixelOffset:new n.Size(0,-30)},showWindow:!1,onClick:function(t,i,r){var e=r.showWindow,u;e||(u=t.anchorPoint,r.optWindow.pixelOffset=new n.Size(u.x,u.y));r.showWindow=!e;f.$apply()},onCloseClick:function(n){n.showWindow=!1;f.$apply()},icon:a})));h.map.markers=l;f.$evalAsync(function(){angular.forEach(h.map.markers,function(n){n.showWindow=n.id==h.facilityId})})}t.promise().then(function(){var r=new n.DirectionsService,t=new n.DirectionsRenderer({suppressInfoWindows:!0,suppressMarkers:!0});h.getDirections=function(){var c=e.find(".exl_directions_placeholder").empty(),o,f,u,s;if(i.success&&h.selectedEventFacility&&h.selectedTravelMode){for(o={travelMode:n.TravelMode[h.selectedTravelMode.value]},f=0;f<i.data.facility.length;f++)u=i.data.facility[f],s=u.facilityID==h.facilityId?"origin":u.facilityID==h.selectedEventFacility.value?"destination":null,s&&(o[s]=new n.LatLng(u.geoX,u.geoY));r.route(o,function(i,r){r===n.DirectionsStatus.OK&&(t.setMap(h.map.control.getGMap()),t.setPanel(c[0]),t.setDirections(i))})}}})}))})})}var u={priority:99,require:"?^^exl-accordion-tab-group",link:e,restrict:"E",scope:{facilityId:"@"},templateUrl:"App/Housing/Views/FacilityMapDirective.html",bindToController:!0,controller:f,controllerAs:"facilityMapCtrl"};return u}angular.module("HousingModule").directive("exlFacilityMap",n);n.$inject=["uiGmapGoogleMapApi","uiGmapIsReady","FacilityService","REF_FILES_URL"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function s(){function a(){r.getAll().success(function(n){var t,i;if(n.success){o.facilityDetail=r.toDictionary(n.data);t=o.facilityDetail.facility[o.facilityId];o.facility=t&&t.length?t[0]:null;o.description=angular.element.trim(o.facility.description);o.distances=v();o.adaKeys={};for(i in o.facilityDetail.ada)o.adaKeys[i]=Object.keys(o.facilityDetail.ada[i])}});u.getFacilityRates(o.facilityId).success(function(n){o.rates=n});o.visibilityOptions.reserveRoomVisible!==!1&&u.getData(o.facilityId).success(function(n){var r,u,t,f,e,i;if(n.success)for(o.subBlockLevelSearchResults=n.data,o.subBlockQuantities.length=0,o.subBlockMaxOccupancyIterators=[],r=n.data.length,u=o.roomSearchCriteria.numberOfRooms,t=0;t<r;t++){for(f=n.data[t],e=[],i=0;i<f.maxOccupancy;i++)e.push(i);o.subBlockMaxOccupancyIterators.push(e);o.subBlockQuantities.push({subBlock:f,qty:u===1?1:r===1?u:0})}})}function v(){var r,u,f,i,t,n;if(o.facility&&o.facility.isPrimaryFacility||!o.facilityDetail)return null;r=[];u=[];for(f in o.facilityDetail.facility)if(i=o.facilityDetail.facility[f],i&&i.length)for(n=0;n<i.length;n++)i[n].isEventFacility&&r.push(f);if(r.length>0){for(t=o.facilityDetail.distances[o.facilityId],n=0;n<t.length;n++)t[n].distance&&t[n].name&&r.indexOf(t[n].toFacilityID.toString())>-1&&u.push({distance:t[n].distance,name:t[n].name});return u}}var o=this,l=n.current,s=l&&l.data,h=s&&s.config,c=t.flow;o.visibilityOptions=o.visibilityOptions||{};o.isGradualEngagement=s&&s.isGradualEngagement;o.hideReservationFees=h&&h.hideReservationFees;o.roomSearchCriteria=u.getRoomSearchCriteria();o.subBlockMaxQty=function(n){var t=0;return angular.forEach(o.subBlockQuantities,function(i){i.subBlock!==n&&(t+=i.qty)}),o.roomSearchCriteria.numberOfRooms-t};o.mapEnabled=i.isMapEnabled;o.isCABMode=u.isCABMode();o.unPascalCase=function(n){return n.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b([A-Z]+)([A-Z][a-z])/,"$1 $2")};o.allowReserve=c&&(c.registrationType===ExlConstants.flowRegistrationTypes.none||c.isGroup)||o.isCABMode;o.allowReserve||(h&&h.allowResBeforeReg?o.allowReserve=!0:f.isLoggedIn()&&e.getCurrentRegistrant().then(function(n){o.allowReserve=n&&n.regTypeCode}));a()}function h(n){var t=o.controllerAs?n[o.controllerAs]:n}var o={link:h,restrict:"E",replace:!0,scope:{facilityId:"@",visibilityOptions:"=",clickRoom:"&",subBlockQuantities:"="},templateUrl:"App/Housing/Views/FacilityProfileDirective.html",bindToController:!0,controller:s,controllerAs:"facilityProfileCtrl"};return o}angular.module("HousingModule").directive("exlFacilityProfile",n);n.$inject=["$state","WIZARD","HOUSING","FacilityService","RoomSearchService","RegistrantLoginService","RegistrantFactory"]}(),function(){"use strict";function n(n,t){function r(){var i=this;i.roomSearchCriteria=t.getRoomSearchCriteria();i.isGradualEngagement=n.current.data.isGradualEngagement}function u(n){var t=i.controllerAs?n[i.controllerAs]:n}var i={link:u,restrict:"E",scope:{},templateUrl:"App/Housing/Views/FacilityRateMessageDirective.html",bindToController:!0,controller:r,controllerAs:"facilityRateMessageCtrl"};return i}angular.module("HousingModule").directive("exlFacilityRateMessage",n);n.$inject=["$state","RoomSearchService"]}(),function(){"use strict";function n(n,t){function r(r){var u=i.controllerAs?r[i.controllerAs]:r,f,e,o;u.hotelItemId?(o=n.getRoomSearchCriteria(),f=o.arrivalDate,e=o.departureDate):u.reservationId&&(f=u.checkInDate,e=u.checkOutDate);t.getWaitlistDates(u.hotelItemId,u.reservationId,f,e).then(function(n){n.success&&(u.waitlistDates=n.data)})}var i={link:r,restrict:"E",scope:{hotelItemId:"=",reservationId:"=",checkInDate:"=",checkOutDate:"="},templateUrl:"App/Housing/Views/FacilityWaitlistDatesDirective.html",bindToController:!0,controller:angular.noop,controllerAs:"facilityWaitlistDatesCtrl"};return i}angular.module("HousingModule").directive("exlFacilityWaitlistDates",n);n.$inject=["RoomSearchService","RoomService"]}(),function(){"use strict";function n(n,t,i,r,u){function e(){function e(n){u.displayHotelProfileModal(n)}function o(n,i){if(!t.disableInput){t.disableInput=!0;switch(n){case t.events.edit:s(i);t.currentEventState=n;i.isEditing=!0;h(i).then(function(){},function(){}).finally(function(){t.disableInput=!1});break;case t.events.save:var u=[];angular.forEach(i.hirpInventoryList,function(n){u.push({dayDate:n.dayDate,quantity:n.editedCapacityQty})});c(u).then(function(n){n!=null&&n.length?r.displayMessages(n):r.displaySuccess("Inventory increase Successful!");f(i);angular.isDefined(t.inventoryUpdate)&&t.inventoryUpdate()(i)},function(){}).finally(function(){t.disableInput=!1});break;case t.events.cancel:f(i);t.disableInput=!1;break;default:t.disableInput=!1}}}function s(n){angular.forEach(n.hirpInventoryList,function(n){n.editedCapacityQty=0})}function h(t){var r=n.defer();return t.sourceSubBlock?(i.setSourceSubBlock(t.sourceSubBlock),r.resolve()):i.getSourceSubBlockForDestination(t).then(function(n){var u={hotelItemId:n.hotelItemID,destHotelItemId:t.subblockHotelItemId,categoryHotelItemId:t.categoryHotelItemId,units:t.units,hotelName:t.hotelName,categoryName:t.categoryName,blockName:t.blockName,subBlockName:n.hotelItemName};t.sourceSubBlock=u;i.setSourceSubBlock(u);r.resolve()},function(n){r.reject(n)}),r.promise}function c(t){var r=n.defer();return i.validateInventoryUpdate(t).then(function(n){i.moveInventory(n).then(function(n){r.resolve(n)},function(n){r.reject(n)})},function(n){r.reject(n)}),r.promise}function f(n){t.currentEventState=null;n.isEditing=!1;i.setSourceSubBlock(null)}var t=this;t.showHotelProfileModal=e;t.disableInput=!1;t.editInventoryEventHandler=o;t.events={edit:"EDIT",save:"SAVE",cancel:"CANCEL"};t.currentEventState=null}function o(n){var t=f.controllerAs?n[f.controllerAs]:n}var f={restrict:"E",link:o,scope:{data:"=",configOptions:"=",inventoryUpdate:"&"},templateUrl:"App/Housing/Views/HotelItemInventoryDirective.html",controller:e,bindToController:!0,controllerAs:"hotelItemInventoryCtrl"};return f}angular.module("HousingModule").directive("exlHotelItemInventory",n);n.$inject=["$q","SCHEDULES","CABFactory","NotificationFactory","RoomService"]}(),function(){"use strict";function n(n){function t(){var t=this;n.getNoHotelTypes().success(function(n){var r,i,u;n.success&&(r=[],i=[],angular.forEach(n.data.types,function(n){var i={value:n.customCode,text:n.description},r;if(this.push(i),t.profile){r=t.profile.noHotelTypeCode;switch(r){case ExlConstants.noHotelTypeCodes.StaffCancel:case ExlConstants.noHotelTypeCodes.WebCancel:break;default:i.value===r&&(t.selection.noHotelType=i)}}},r),angular.forEach(n.data.hotels,function(n){var i={value:n,text:n},r;this.push(i);t.profile&&(r=t.profile.noHotelOth,i.value===r&&(t.selection.noHotel=i))},i),u={value:ExlConstants.noHotelTypeCodes.Other,text:"Other"},i.push(u),t.profile&&t.selection.noHotelType&&!t.selection.noHotel&&t.profile.noHotelOth&&angular.extend(t.selection,{noHotel:u,noHotelOther:t.profile.noHotelOth}),t.noHotelTypes=r,t.noHotelList=i)})}function i(){}return{link:i,restrict:"EA",scope:{profile:"=",selection:"="},templateUrl:"App/Housing/Views/NoHotelDirective.html",controller:t,controllerAs:"NoHotelCtrl",bindToController:!0}}angular.module("HousingModule").directive("exlNoHotel",n);n.$inject=["RoomSearchService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function e(e,o,s){var h=e.$eval(s.exlRoomCancel),c="click.exlRoomCancel";o.off(c).on(c,function(){if(!u.isHousingOpen()){r.displayError("Housing is Closed.  You cannot cancel the reservation at this time.");return}t.showModal({bodyTemplateUrl:"App/Housing/Views/RoomCancelModal.html",footerTemplateUrl:"App/Housing/Views/RoomCancelModalFooter.html",controller:"ModalController",inputs:{title:"Cancel Room",reservation:h}}).then(function(t){if(t.status&&t.status.isCancelConfirmed){var u=angular.isDefined(h.reservationId)?h.reservationId:h.reservationID;i.delete(u).then(function(t){var i=t.data;i.success&&(h.isCancelled=!0,f.refreshBookingFinancials(),n.$broadcast(ExlConstants.events.roomOccupantChanged,{method:"roomCancel",reservation:h}),r.displaySuccess("This reservation has been cancelled"))})}})})}return{link:e,restrict:"A"}}angular.module("HousingModule").directive("exlRoomCancel",n);n.$inject=["$rootScope","ModalFactory","ReservationService","NotificationFactory","WIZARD","BookingFactory"]}(),function(){"use strict";function n(n,t,i){function r(r,u,f){var e=r.$eval(f.exlRoomChangeDates),o="click.exlRoomChangeDates";u.off(o).on(o,function(){var r={title:"Change Dates",arrive:{date:moment(e.checkInDate).toDate(),min:moment(n.inv.beginDate).toDate(),max:function(){var t=moment(r.depart.date);return moment(t.isValid()?t.subtract(t.utcOffset(),"m").subtract(1,"d"):n.inv.endDate).toDate()}},depart:{date:moment(e.checkOutDate).toDate(),min:function(){var t=moment(r.arrive.date);return moment(t.isValid()?t.subtract(t.utcOffset(),"m"):n.inv.beginDate).add(1,"d").toDate()},max:moment(n.inv.endDate).add(1,"d").toDate()}};t.showModal({bodyTemplateUrl:"App/Housing/Views/ReservationDatesModal.html",footerTemplateUrl:"App/Housing/Views/ReservationDatesModalFooter.html",modalcss:"small",controller:"ModalController",inputs:r}).then(function(n){i.changeDates(e.reservationID,n.status.checkIn,n.status.checkOut).success(function(n){var t,i;n.success&&(t=moment(n.data.checkIn),e.checkInDate=moment(t.subtract(t.utcOffset(),"m")).toDate(),i=moment(n.data.checkOut),e.checkOutDate=moment(i.subtract(i.utcOffset(),"m")).toDate())})})})}return{link:r,restrict:"A"}}angular.module("HousingModule").directive("exlRoomChangeDates",n);n.$inject=["SCHEDULES","ModalFactory","ReservationService"]}(),function(){"use strict";function n(){function t(){var n=this}function i(t){var i=n.controllerAs?t[n.controllerAs]:t}var n={link:i,restrict:"E",scope:{dropdownId:"@",subBlock:"="},templateUrl:"App/Housing/Views/RoomFeesDirective.html",controller:t,controllerAs:"roomFeesCtrl",bindToController:!0};return n}angular.module("HousingModule").directive("exlRoomFees",n);n.$inject=[]}(),function(){"use strict";function n(n,t,i,r){function f(){function e(){t.getCreateBlockConfigPolicy().then(function(n){u.configPolicy=n;u.maxRoomsRequested=n.maxRoomsRequested>0?u.configPolicy.maxRoomsRequested:null;var t=i.getRoomNightsFromSearchCriteria(u.roomSearchCriteria);f(t).then(function(){t.length?u.displayAppliedRoomNightsDistribution=!0:u.historicalRoomNightsActive&&(u.displaySuggestedHistoricalRoomNightsDistribution=!0)})})}function o(){if(!u.peakRoomQuantity){r.displayError("Main event night room quantity must be greater than 0");return}f(null,u.peakRoomQuantity).then(function(){u.displayAppliedRoomNightsDistribution=!0;u.newDistributionApplied=!0},function(){r.displayError("There was an error encountered when distributing your room quantities")})}function s(){f().then(function(){u.displaySuggestedHistoricalRoomNightsDistribution=!0},function(){r.displayError("There was an error encountered when distributing your room quantities")})}function f(i,r){var f=n.defer();return u.roomNights.length=0,t.getDistributedRoomNightQuantites(u.roomSearchCriteria.arrivalDate,moment(u.roomSearchCriteria.departureDate).subtract(1,"d").toDate(),i,r).then(function(n){u.historicalRoomNightsActive=n.historicalRoomNightsActive;n.roomNightCollection!=null?(angular.forEach(n.roomNightCollection,function(n){this.push({dayDate:n.dayDate,quantity:n.quantity})},u.roomNights),t.setMaxRooms(u.roomNights,u.roomNightCapacity).then(function(){f.resolve()})):f.reject()}).catch(function(){f.reject()}),f.promise}function h(){u.displayAppliedRoomNightsDistribution=!1;u.displaySuggestedHistoricalRoomNightsDistribution=!1;u.roomNights.length=0}var u=this;u.applyNewDistribution=o;u.applyHistoricalDistribution=s;u.resetDistribution=h;e()}function e(n){var t=u.controllerAs?n[u.controllerAs]:n}var u={restrict:"E",link:e,scope:{roomSearchCriteria:"=",roomNights:"=",roomNightCapacity:"="},templateUrl:"App/Housing/Views/RoomNightsCriteriaDirective.html",controller:f,bindToController:!0,controllerAs:"roomNightsCriteriaCtrl"};return u}angular.module("HousingModule").directive("exlRoomNightsCriteria",n);n.$inject=["$q","CABFactory","RoomSearchService","NotificationFactory"]}(),function(){"use strict";function n(){function n(){var n=this,t,i;n.reservation&&(t=moment(n.reservation.checkinDate),i=moment(n.reservation.checkoutDate),t.isValid()&&i.isValid()&&(n.reservation.numberOfNights=i.diff(t,"d")))}function t(){}return{link:t,restrict:"EA",templateUrl:"App/Housing/Views/RoomNightsDisplayDirective.html",scope:{reservation:"="},controller:n,controllerAs:"RoomNightsDisplay",bindToController:!0}}angular.module("HousingModule").directive("exlRoomNightsDisplay",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(){function r(){n.occupant=n.reservationOccupant||{registrant:{}};n.selected={registrant:n.reservationOccupant?{}:null};n.isCancelVisible=!0;n.isGroupIndividual&&n.reservation.addRoomRegistrant&&(n.isCancelVisible=!1);n.reservationOccupant||(n.reservation.addRoomRegistrant?n.selected.registrant=n.reservation.addRoomRegistrant:t.flow.isPreview||i());n.hasBlockHousing=t.flow.housingType==ExlConstants.flowHousingTypes.block}function i(){f.read(n.reservation.reservationID).success(function(t){t.success&&(n.occupant=t.data)})}function u(){n.reservation.occupants.length||i();n.selected=null;n.reservation.addRoomRegistrant=null;var t=n.close();angular.isFunction(t)&&t(n.reservation.reservationID)}var n=this;n.closeOccupant=u;n.isGroupIndividual=t.flow.isGroupIndividual;r();n.isOccupantOnly=function(){var t=n.occupant.registrant.isOccupantOnly;return angular.isUndefined(t)||t}}function s(o){var s=e.controllerAs?o[e.controllerAs]:o,h,c;o.$watch(function(){return s.selected?s.selected.registrant:null},function(n){n&&n.value&&f.read(s.reservation.reservationID,n.value,!0).success(function(n){n.success&&(angular.extend(s.occupant,n.data),h())})});h=function(){s.requiresEmail=t.flow.flowCode!="TEAM"&&(!s.booking.hasRegistrantWithEmailAndPassword||s.occupant._RequiresEmail||!s.reservation.occupants.length||s.occupant.isLeadOccupant);s.requiresPassword=!s.booking.hasRegistrantWithEmailAndPassword||s.occupant.isLeadOccupant||!!s.occupant._RequiresPassword};o.$watchGroup([function(){return s.occupant._RequiresEmail},function(){return s.occupant._RequiresPassword},function(){return s.occupant.isLeadOccupant}],h);o.$watch(function(){return s.booking.hasRegistrantWithEmailAndPassword},h);o.$watchCollection(function(){return s.booking.registrants},function(n,t){n!==t&&c(n)});c=function(t){s.registrants=s.reservationOccupant?[]:n("filter")(t,function(n){for(var i=s.reservation.occupants,t=0;t<i.length;t++)if(i[t].registrantID==n.value)return!1;return!0})};c(s.booking.registrants);s.validateSave=function(n){if(n.$invalid){var t=u.touchAllInputs(n);t&&u.setFocusByName(t,!0)}else s.selected.registrant&&(s.occupant.registrant.registrantId=s.selected.registrant.value),s.showDupeOverride=!1,f.save(s.reservation.reservationID,s.occupant.reservationOccupantID||undefined,s.occupant).success(function(n){var i,t;if(n.success){for(i=!1,t=0;t<s.reservation.occupants.length;t++)if(s.reservation.occupants[t].reservationOccupantID==n.data.reservationOccupantID){s.reservation.occupants[t]=n.data;i=!0;break}if(i){for(t=0;t<s.booking.registrants.length;t++)if(s.booking.registrants[t].value==n.data.registrantID){s.booking.registrants[t].text=n.data.bookingRegistrantName;break}}else s.reservation.occupants.push(n.data),s.booking.hasRegistrantWithEmailAndPassword||(s.booking.hasRegistrantWithEmailAndPassword=!0),s.selected.registrant&&s.selected.registrant.value==n.data.registrantID||s.booking.registrants.push({value:n.data.registrantID,text:n.data.bookingRegistrantName});n.data.isLeadOccupant&&_.each(_.filter(s.reservation.occupants,function(t){return t.reservationOccupantID!=n.data.reservationOccupantID}),function(n){n.isLeadOccupant=!1});r.displaySuccess('Guest "'+n.data.bookingRegistrantName+'" saved.');s.closeOccupant()}else s.showDupeOverride=exlBaseFunctions.findFirstByKey(n.messages,"messageTypeCode",ExlConstants.executionMessageTypeCode.duplicateRegistrant)!=null})};s.validateLeadSave=function(n){if(n.$invalid){var t=u.touchAllInputs(n);t&&u.setFocusByName(t,!0)}else s.selected.registrant&&(s.occupant.registrant.registrantId=s.selected.registrant.value),s.showDupeOverride=!1,f.save(s.reservation.reservationID,s.occupant.reservationOccupantID||undefined,s.occupant).success(function(n){var i,t;if(n.success){for(i=!1,t=0;t<s.reservation.occupants.length;t++)if(s.reservation.occupants[t].reservationOccupantID==n.data.reservationOccupantID){s.reservation.occupants[t]=n.data;i=!0;break}if(i){for(t=0;t<s.booking.registrants.length;t++)if(s.booking.registrants[t].value==n.data.registrantID){s.booking.registrants[t].text=n.data.bookingRegistrantName;break}}else s.reservation.occupants.push(n.data),s.booking.hasRegistrantWithEmailAndPassword||(s.booking.hasRegistrantWithEmailAndPassword=!0),s.selected.registrant&&s.selected.registrant.value==n.data.registrantID||s.booking.registrants.push({value:n.data.registrantID,text:n.data.bookingRegistrantName});r.displaySuccess('Guest "'+n.data.bookingRegistrantName+'" saved.');s.closeOccupant()}else s.showDupeOverride=exlBaseFunctions.findFirstByKey(n.messages,"messageTypeCode",ExlConstants.executionMessageTypeCode.duplicateRegistrant)!=null})};s.registrants&&s.registrants.length&&!s.selected.registrant&&i.showModal({bodyTemplateUrl:"App/Housing/Views/OccupantAddModal.html",footerTemplateUrl:"App/Housing/Views/OccupantAddModalFooter.html",controller:"ModalController",modalcss:"small",inputs:{title:"Select Guest -or- Create New",registrants:s.registrants,selected:{registrant:null}}}).then(function(n){s.selected.registrant=n.status},function(){s.closeOccupant()})}var e={link:s,restrict:"E",scope:{reservation:"=",reservationOccupant:"=",booking:"=",close:"&"},templateUrl:"App/Housing/Views/RoomOccupantDirective.html",controller:["$scope",o],controllerAs:"roomOccupantCtrl",bindToController:!0};return e}angular.module("HousingModule").directive("exlRoomOccupant",n);n.$inject=["$filter","WIZARD","ModalFactory","NotificationFactory","DocumentService","ReservationOccupantService","HOUSING"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function l(){var u=this,h=r.flow,s=n.current.data.config,o;u.isGradualEngagement=n.current.data.isGradualEngagement;u.maxNumOfRooms=s.maxNumberOfRooms||r.defaultMaxNumOfRooms;u.isCABMode=e.isCABMode();u.roomSearchCriteria.datesChanged=!1;f.getAll().success(function(n){u.maxNumOfGuests=t.Math.max.apply(null,n.data.facility.map(function(n){return n.maxOccupancy}))||6});u.submitSearch=function(){u.isCABMode&&(u.roomSearchCriteria.datesChanged||!u.roomSearchCriteria.numberOfRoomsList.length)?u.showRoomNightsModal():u.onSubmit()};o=i.inv;o&&(u.dateArriveMin=moment(o.beginDate).toDate(),u.dateArriveMax=function(){var n=moment(u.roomSearchCriteria.departureDate);return moment(n.isValid()?n.subtract(n.utcOffset(),"m").subtract(1,"d"):o.endDate).toDate()},u.dateDepartMin=function(){var n=moment(u.roomSearchCriteria.arrivalDate);return moment(n.isValid()?n.subtract(n.utcOffset(),"m"):o.beginDate).add(1,"d").toDate()},u.dateDepartMax=moment(o.endDate).add(1,"d").toDate())}function a(n){function o(){return moment(t.roomSearchCriteria.arrivalDate).isValid()&&moment(t.roomSearchCriteria.departureDate).isValid()&&n.frmRoomSearch&&n.frmRoomSearch.$valid&&(!t.isCABMode||t.roomSearchCriteria.numberOfRoomsList.length)}var t=c.controllerAs?n[c.controllerAs]:n,r=i.inv,f;r&&(n.$evalAsync(function(){(t.searchStatus.isSearched||t.isGradualEngagement)&&o()&&t.submitSearch()}),t.isCABMode&&(h.getRoomNightCapacityPerDay(moment.utc(r.beginDate).toDate(),moment.utc(r.endDate).toDate()).then(function(n){f=n}),n.$watch(function(){return t.roomSearchCriteria.arrivalDate},function(n,i){moment(n).calendar()!=moment(i).calendar()&&(t.roomSearchCriteria.datesChanged=!0)}),n.$watch(function(){return t.roomSearchCriteria.departureDate},function(n,i){moment(n).calendar()!=moment(i).calendar()&&(t.roomSearchCriteria.datesChanged=!0)})));t.showRoomNightsModal=function(){if(t.roomSearchCriteria.arrivalDate!=null&&t.roomSearchCriteria.departureDate!=null){var i="",n=[],r={title:"Room Quantities",roomSearchCriteria:t.roomSearchCriteria,roomNights:n,roomNightCapacity:f,httpPromise:{promise:function(){return e.validateCABRoomNightSearch(n)},callback:function(n){return n.success}}};u.showModal({bodyTemplate:'<exl-room-nights-criteria room-search-criteria="modalCtrl.roomSearchCriteria" room-nights="modalCtrl.roomNights" room-night-capacity="modalCtrl.roomNightCapacity"><\/exl-room-nights-criteria>',footerTemplate:'<button class="button small dark" data-ng-if="modalCtrl.roomNights.length" data-ng-click="modalCtrl.close(\'OK\', modalCtrl.httpPromise)">Apply<\/button>',controller:"ModalController",modalcss:"small",inputs:r}).then(function(r){if(r&&r.status==="OK"){i=r.status;var u=[],f=[],e=[];angular.forEach(n,function(n){u.push(n.dayDate);f.push(n.quantity==null?0:n.quantity);e.push(moment(n.dayDate).add(1,"days").toDate())});t.roomSearchCriteria.arrivalDateList=u;t.roomSearchCriteria.numberOfRoomsList=f;t.roomSearchCriteria.departureDateList=e;t.roomSearchCriteria.datesChanged=!1;o()&&t.onSubmit()}})}}}var c={link:a,restrict:"E",scope:{roomSearchCriteria:"=",searchStatus:"=",onSubmit:"&",showButton:"&"},templateUrl:"App/Housing/Views/RoomSearchCriteriaDirective.html",controller:l,controllerAs:"roomSearchCriteriaCtrl",bindToController:!0};return c}angular.module("HousingModule").directive("exlRoomSearchCriteria",n);n.$inject=["$state","$window","SCHEDULES","WIZARD","ModalFactory","FacilityService","RoomSearchService","ProfileFactory","RegistrantFactory","RegistrantGroupFactory","NotificationFactory","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(){var o=this,s=n.flow,e;s.registrationType!=="None"&&s.housingType!=="Block"&&(r.getCurrentRegistrant().then(function(t){if(t&&t.registrantId>0&&(e=t,o.showNoHotelButton=!0,t.noHotelTypeCode!==ExlConstants.noHotelTypeCodes.Unavailable&&!n.isHousingOpen())){var u={noHotelTypeCode:ExlConstants.noHotelTypeCodes.Unavailable,noHotelOth:""};i.putNoHotelReason(e.registrantId,u).then(function(n){r.setCurrentRegistrant(n)})}}),o.modalNoHotel=function(){var n={noHotelTypeCode:e.noHotelTypeCode,noHotelOth:e.noHotelOth};t.modalNoHotel(n).then(function(){i.putNoHotelReason(e.registrantId,n).then(function(n){u.displaySuccess("No Reservation Needed: updated successfully.");r.setCurrentRegistrant(n);f.goToTaskByName(ExlConstants.wizardTaskInternalName.ShowSummary)},function(){u.displayError("No Reservation Needed: update failed.")})})})}function s(n){var t=e.controllerAs?n[e.controllerAs]:n}var e={link:s,restrict:"E",scope:{isNoResButtonOnly:"="},templateUrl:"App/Housing/Views/RoomSearchCriteriaNoHotelDirective.html",controller:o,controllerAs:"roomSearchCriteriaNoHotelCtrl",bindToController:!0};return e}angular.module("HousingModule").directive("exlRoomSearchCriteriaNoHotel",n);n.$inject=["WIZARD","RoomSearchService","ProfileFactory","RegistrantFactory","NotificationFactory","WizardNavService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function c(){function t(t){n.disableInput||(n.currentBooking==null||t.bookingId!=n.currentBooking.bookingId)&&(n.disableInput=!0,u.createBookingAuthToken(t.bookingId).then(function(){n.disableInput=!1;t.contactVerified?f.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard,null,!0):f.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile,null,!0)},function(){}).finally(function(){n.disableInput=!1}))}function r(){e.setCreateNewBooking(!0);f.goToTaskByName(ExlConstants.wizardTaskInternalName.BookingContactProfile,null,!0)}function o(){return u.isLoggedIn()}function h(n){t(n)}function c(t){if(!n.currentBooking){u.logout();return}e.getBookingFinancials().then(function(n){var r=!exlBaseFunctions.stringEqualsIgnoreCase(i.flow.housingType,ExlConstants.flowRegistrationTypes.none),f=n.balanceDue?"payment":n.isccgNeeded&&r?"Credit Card guarantee":null,e;f?(e=r&&(n.totalHousingBalance>0||n.isccgNeeded)?"Any items currently being held will be lost if you do not confirm your room.":"",s.showModal({bodyTemplate:'<p class="alert-box alert">A '+f+" is required.  "+e+"<\/p><p>Are you certain that you want to sign out?<\/p>",footerTemplate:'<button type="button" data-ng-click="modalCtrl.close()">No, do not sign out<\/button><button type="button" class="dark" data-ng-click="modalCtrl.close({signOut: true})">Yes<\/button>',modalcss:"small",controller:"ModalController",inputs:{title:"Balance Due"}}).then(function(n){n.status&&n.status.signOut?u.logout():t&&t.cancelable&&t.preventDefault()},function(){t&&t.cancelable&&t.preventDefault()})):u.logout()},function(){u.logout()})}var n=this;n.selectBooking=t;n.addNew=r;n.isLoggedIn=o;n.changeBooking=h;n.logout=c;n.isCurrentlyAddingNew=!1}function l(t){function u(t){if((i.isCurrentlyAddingNew=!1,i.isLoggedIn())&&(i.isBookingSelectionTask=f.currentTask().taskInternalName===ExlConstants.wizardTaskInternalName.BookingSelection?!0:!1,t||!i.bookings)){var u=[];u.push(r.getBookings());u.push(e.getCurrentBookingId());n.all(u).then(function(n){i.exCompany=o.getCurrentExCompanyLight();i.bookings=n[0].bookings;i.groupName=i.exCompany&&i.exCompany.company?i.exCompany.company:n[0].groupName;i.bookingSelectList=[];for(var t=0;t<i.bookings.length;t++)i.bookingSelectList.push({value:i.bookings[t].bookingId,text:i.bookings[t].contactLastName+", "+i.bookings[t].contactFirstName});i.isAddNewEnabled=n[0].addNewBookingsEnabled;s(n[1])},function(){i.disableInput=!0})}}function s(n){for(var t=0;t<i.bookings.length;t++)if(i.bookings[t].bookingId==n){i.currentBooking=i.bookings[t];return}}var i=h.controllerAs?t[h.controllerAs]:t;t.$on("wizardTaskChange",function(){u(!0)});t.$on(ExlConstants.events.currentRegistrantChanged,function(){u(!0)});t.$on(ExlConstants.events.creatingNewBooking,function(){i.isCurrentlyAddingNew=!0})}var h={restrict:"E",link:l,scope:{},templateUrl:"App/Login/Views/BookingSelectionDirective.html",controller:c,bindToController:!0,controllerAs:"directiveCtrl"};return h}angular.module("LoginModule").directive("exlBookingSelection",n);n.$inject=["$q","$state","WIZARD","RegistrantGroupFactory","RegistrantGroupLoginService","WizardNavService","BookingFactory","ExhibitorService","ModalFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l){function v(){var i=this;i.isGroupIndividual=e.flow.isGroupIndividual;i.currentRegId=t.params.regId;i.signIn=function(){u.showModal()};i.signOut=function(t){if(r.isLoggedIn()){if(i.isGroupIndividual&&!i.currentRegId){r.logout();return}var u={};i.isGroupIndividual?angular.extend(u,{shoppingCart:l.getShoppingCart()}):angular.extend(u,{bookingFinancials:o.getBookingFinancials()});n.all(u).then(function(n){var s=!exlBaseFunctions.stringEqualsIgnoreCase(e.flow.housingType,ExlConstants.flowRegistrationTypes.none),i={},h=n.bookingFinancials,u=n.shoppingCart,o,c;h?i=h:u&&(i.balanceDue=u.balance.totalBalanceDue,i.isccgNeeded=u.balance.isccg);o=i.balanceDue?"payment":i.isccgNeeded&&s?"Credit Card guarantee":null;o?(c=s&&(i.totalHousingBalance>0||i.isccgNeeded)?"Any items currently being held will be lost if you do not confirm your room.":"",f.showModal({bodyTemplate:'<p class="alert-box alert">A '+o+" is required.  "+c+"<\/p><p>Are you certain that you want to sign out?<\/p>",footerTemplate:'<button type="button" data-ng-click="modalCtrl.close()">No, do not sign out<\/button><button type="button" class="dark" data-ng-click="modalCtrl.close({signOut: true})">Yes<\/button>',modalcss:"small",controller:"ModalController",inputs:{title:"Balance Due"}}).then(function(n){n.status&&n.status.signOut?r.logout():t&&t.cancelable&&t.preventDefault()},function(){t&&t.cancelable&&t.preventDefault()})):r.logout()},function(){r.logout()})}};i.personClick=function(n){var t={};t.regId=n.registrantId;h.goToTaskByName(ExlConstants.wizardTaskInternalName.Dashboard,t)};i.taskGroupSummary=h.getTask(ExlConstants.wizardTaskInternalName.GroupSummary);i.navGroupSummary=function(){h.goToTaskByName(i.taskGroupSummary.taskInternalName,null,!1,!0)};i.setUserName=function(n){if(i.isGroupIndividual){var t=r.getRegGroupName();i.username=t?t:"";t&&n&&(i.username=i.username+" / ");n&&(i.username=i.username+n)}else i.username=n}}function y(n){function e(n){var t;return u.registrants&&(t=_.find(u.registrants,{registrantId:n})),t}function f(n){return c.loadRegistrants(n).then(function(n){u.registrants=n.data;u.enableGroupSummary=u.registrants.length>1||u.registrants.length&&u.registrants[0].guests.length})}var u=a.controllerAs?n[a.controllerAs]:n;u.setUserName(r.getUserName());u.username&&f();n.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){if(t&&t.registrantId>0){u.setUserName(t.firstName);var i;u.isGroupIndividual&&t&&(i=t.registrantId);f(i);u.currentRegId=t.registrantId}});n.$on(ExlConstants.events.roomOccupantChanged,function(n,t){if(t)if(u.isGroupIndividual)!u.currentRegId&&t.registrantId&&(i.setRegUser(t.registrantId,t.firstName),u.setUserName(t.firstName),u.currentRegId=t.registrantId,h.reLoadTask({regId:t.registrantId}));else if(t.registrantId){var r=e(t.registrantId);u.registrants&&r||f().finally(function(){if(!u.username){var n=e(t.registrantId);n&&(i.setRegUser(n.registrantId,n.firstName),u.setUserName(n.firstName),u.currentRegId=n.registrantId,h.reLoadTask({regId:n.registrantId}))}})}});n.$on(ExlConstants.events.paymentApplied,function(){f();u.currentRegId=t.params.regId})}var a={link:y,restrict:"EA",scope:{},templateUrl:"App/Login/Views/PersonSwitcherDirective.html",controller:v,controllerAs:"PersonSwitcher",bindToController:!0};return a}angular.module("LoginModule").directive("exlPersonSwitcher",n);n.$inject=["$q","$state","LoginService","RegistrantLoginService","RegistrantLoginModalService","ModalFactory","WIZARD","BookingFactory","RegistrantFactory","WizardNavService","PersonSwitcherService","PaymentService"]}(),function(){"use strict";function n(n,t,i){function u(){function u(){if(!r.disableInput){if(r.disableInput=!0,r.showSuccess=!1,r.formRegGroupCreate.$invalid){var u=t.touchAllInputs(r.formRegGroupCreate);u&&t.setFocusByName(u,!1);r.disableInput=!1;return}r.showWait=!0;n.createNewGroup(r.profile).then(function(){i.setSession(ExlConstants.session.teamNum,r.profile.teamNum);i.setSession(ExlConstants.session.teamProg,r.profile.teamProg);i.setSession(ExlConstants.session.teamName,r.profile.groupName);r.showSuccess=!0;angular.isDefined(r.successCallback)&&r.successCallback()()},function(){}).finally(function(){r.showWait=!1;r.disableInput=!1})}}var r=this;r.disableInput=!1;r.create=u}function f(n){var t=r.controllerAs?n[r.controllerAs]:n}var r={restrict:"E",link:f,scope:{profile:"=",items:"=",successCallback:"&"},templateUrl:"App/Login/Views/RegistrantGroupCreate.html",controller:u,bindToController:!0,controllerAs:"registrantGroupCreateCtrl"};return r}angular.module("LoginModule").directive("exlRegistrantGroupCreate",n);n.$inject=["RegistrantGroupFactory","DocumentService","WebStorageFactory"]}(),function(){"use strict";function n(n,t){function r(){function r(){if(!i.disableInput){if(i.disableInput=!0,i.formRegGroupLogin.$invalid){var r=t.touchAllInputs(i.formRegGroupLogin);r&&t.setFocusByName(r,!1);i.disableInput=!1;return}i.showWait=!0;n.login(i.profile.userName,i.profile.password).then(function(n){angular.isDefined(i.successCallback)&&i.successCallback()(n)},function(){}).finally(function(){i.showWait=!1;i.disableInput=!1})}}var i=this;i.disableInput=!1;i.login=r}function u(n){var t=i.controllerAs?n[i.controllerAs]:n}var i={restrict:"E",link:u,scope:{profile:"=",items:"=",successCallback:"&"},templateUrl:"App/Login/Views/RegistrantGroupLogin.html",controller:r,bindToController:!0,controllerAs:"registrantGroupLoginCtrl"};return i}angular.module("LoginModule").directive("exlRegistrantGroupLogin",n);n.$inject=["RegistrantGroupLoginService","DocumentService"]}(),function(){"use strict";function n(){function n(){}function t(n,t,i,r,u){function e(){o();s()}function o(){u.validateDiscountQualifiers(f.discount.marketingCodeDiscountID).then(function(n){f.discountHasQualifierError=!n.success;f.discountError=f.discountHasQualifierError?"There are 1 or more issues with the qualifiers for this discount.":""})}function s(){f.discountType=r.determineDiscountType(f.discount)}function h(n){n.preventDefault();angular.isDefined(f.discount)&&(f.discount.isActive=!f.discount.isActive,f.discount.hasChanged=!0)}function c(){var n=_.find(r.discountTypes,{value:f.discount.discountType});if(angular.isDefined(n))switch(f.discountType){case"REGTYPE":return n.text+" - Reg Types";case"SHOWITEM":return n.text+" - Show Items";default:return n.text}return""}function l(){return f.discount.discountType.toUpperCase()==="PERCENT"?f.discount.discountAmount+"%":"$"+f.discount.discountAmount}var f=this;f.busy=!1;f.discountHasQualifierError=!1;f.discountError="";f.toggleActive=h;f.getDiscountTypeDescription=c;f.getDiscountAmount=l;e();n.$on("marketingCodeDiscountChanged",function(n,t){t.discountID==f.discountId&&e()})}return{link:n,restrict:"EA",scope:{discount:"="},templateUrl:"App/MarketingCode/Views/DiscountDirective.html",controller:["$scope","$q","MarketingCodeFactory","DiscountFactory","QualifierFactory",t],controllerAs:"DiscountCtrl",bindToController:!0}}angular.module("MarketingCodeModule").directive("exlDiscount",n);n.$inject=[]}(),function(){"use strict";function n(){function n(n,t,i,r){n.showPercentSign=function(){return angular.isDefined(n.discount)&&angular.isDefined(n.discount.discountType)&&n.discount.discountType.toUpperCase()=="PERCENT"};n.form=r;i.required!==undefined&&(n.required=!0)}return{link:n,restrict:"E",require:"?^form",templateUrl:"App/MarketingCode/Views/DiscountAmountDirective.html",scope:{discount:"="}}}angular.module("MarketingCodeModule").directive("exlDiscountAmount",n);n.$inject=[]}(),function(){"use strict";function n(n){function t(t){t.addNewDiscount=function(){n.go("marketingCode.edit.discount",{discountID:0})}}return{link:t,restrict:"EA",scope:{discounts:"="},templateUrl:"App/MarketingCode/Views/DiscountGroupDirective.html"}}angular.module("MarketingCodeModule").directive("exlDiscountGroup",n);n.$inject=["$state"]}(),function(){"use strict";function n(n){function t(t){function i(){angular.isDefined(t.discountId)&&angular.isNumber(t.discountId)&&n.validateDiscountQualifiers(t.discountId).then(function(n){n.success||(t.discountQualifierErrors=n.messages)})}t.discountQualifierErrors=[];t.$watch("discountId",function(){i()});i()}return{link:t,restrict:"EA",templateUrl:"App/MarketingCode/Views/DiscountQualifierErrorsDirective.html",scope:{discountId:"="}}}angular.module("MarketingCodeModule").directive("exlDiscountQualifierErrors",n);n.$inject=["QualifierFactory"]}(),function(){"use strict";function n(){function n(n,t){n.ctrl.init(t)}function t(n,t,i,r,u,f,e){function s(t){o.setup[t]||h().then(function(r){var u=n.$new(),e;u.type=t;u.activeDiscounts=o.activeDiscounts;e=i(r)(u);f(function(){o.marketingCode.discountPopupHTML[t]=$("<div/>").append(e.clone()).html();o.setup[t]=!0})})}function h(){var i=r.get("App/MarketingCode/Views/DiscountSummaryPopupTemplate.html"),n;return i?(n=t.defer(),n.resolve(i),n.promise):u("App/MarketingCode/Views/DiscountSummaryPopupTemplate.html")}function c(){var n=[],t,i,r,u;for(r in o.activeDiscounts)t=o.activeDiscounts[r],t&&t.discountTargets&&(i=e.determineDiscountType(t),t.type=i,i&&n.indexOf(i)===-1&&n.push(i));n.sort();o.marketingCode.discountTypes=n;o.marketingCode.discountPopupHTML||(o.marketingCode.discountPopupHTML={});for(r in n)u=n[r],o.setup[u]=!1,o.marketingCode.discountPopupHTML[u]="Loading..."}var o=this;o.setup={};o.loading=!1;o.setupAndShowPopup=s;o.activeDiscounts=[];o.init=function(){o.activeDiscounts=_.filter(o.marketingCode.marketingCodeDiscounts,{isActive:!0});c(o.marketingCode)}}return{link:n,restrict:"EA",scope:{marketingCode:"="},templateUrl:"App/MarketingCode/Views/DiscountSummaryPopupDirective.html",controller:["$scope","$q","$compile","$templateCache","$templateRequest","$timeout","DiscountFactory",t],controllerAs:"ctrl",bindToController:!0}}angular.module("MarketingCodeModule").directive("exlDiscountSummaryPopup",n);n.$inject=[]}(),function(){"use strict";function n(n,t){function i(i){function f(){var f=[],o=[],s,r;angular.isDefined(i.marketingCode)&&(o=_.where(i.marketingCode.marketingCodeQualifiers,{isActive:!0}));u();for(s in i.qualifierTypes)r=n.defer(),t.getQualifierOptions(i.qualifierTypes[s]).then(function(n){if(!i.qualifierOptions[n.type]){var t=_.map(n.options,function(t){var i=e(o,n.type,t.statusCode);return{value:t.statusCode,text:t.statusCode+" - "+t.description,valid:i}});i.qualifierOptions[n.type]=t}r.resolve()}),f.push(r);return n.all(f)}function r(){if(angular.isDefined(i.qualifiers)&&angular.isArray(i.qualifiers)){var n=_.groupBy(i.qualifiers,"qualType");angular.forEach(n,function(n,t){n=_.where(n,{isActive:!0});i.selectedQualifierOptions[t]=_.map(n,function(n){return{value:n.qualCode,text:n.statusCode+" - "+n.description}})})}}function u(){if(i.showQualifierTypes){var n=i.showQualifierTypes.toUpperCase().split(",");_.remove(i.qualifierTypes,function(t){return n.indexOf(t.toUpperCase())===-1})}}function e(n,t,r){var u=!0,f;return i.qualifierType==="MARKETINGCODE"?u:(f=_.where(n,{qualType:t}).length,f&&(u=angular.isDefined(_.find(n,{qualType:t,qualCode:r}))),u)}i.qualifierTypes=angular.copy(t.qualifierTypes);i.qualifierOptions={};i.busy=!1;f().then(function(){r();i.busy=!1});i.$watch("qualifiers",function(){r()});i.$watch("showQualifierTypes",function(){u()})}return{link:i,restrict:"EA",templateUrl:"App/MarketingCode/Views/EditQualifiersDirective.html",scope:{qualifiers:"=",selectedQualifierOptions:"=",marketingCode:"=",qualifierType:"@",showQualifierTypes:"@"}}}angular.module("MarketingCodeModule").directive("exlEditQualifiers",n);n.$inject=["$q","QualifierFactory"]}(),function(){"use strict";function n(n){function t(t){t.type="success";angular.isDefined(t.code)&&n.getUsedLimit(t.code).then(function(n){t.limit=n.data.data.limit;t.used=n.data.data.used;t.pbUsed=Math.min(t.used,t.limit);t.percentUsed=t.limit>0?t.used/t.limit*100:t.used;t.percentUsed>=75&&(t.type="alert")})}return{link:t,restrict:"EA",templateUrl:"App/MarketingCode/Views/MarketingCodeLimitDirective.html",scope:{code:"="}}}angular.module("MarketingCodeModule").directive("exlMarketingCodeLimit",n);n.$inject=["MarketingCodeFactory"]}(),function(){"use strict";function n(){function n(n,t,i,r){r.$validators.percent=function(t,i){if(n.validatePercent){var r=t||i;return r>=0&&r<=100}return!0};n.$watch("validatePercent",function(n,t){var i=n||t;i?r.$validate():r.$setValidity("percent",!0)})}return{link:n,restrict:"A",require:"ngModel",scope:{validatePercent:"=exlPercent"}}}angular.module("MarketingCodeModule").directive("exlPercent",n);n.$inject=[]}(),function(){"use strict";function n(){function n(n,i,r,u){t(r);n.$watch("QualifierOptionList.selecteditems",function(){angular.isArray(n.QualifierOptionList.selecteditems)&&(angular.forEach(n.QualifierOptionList.itemlist,function(t){t.selected=!1;angular.forEach(n.QualifierOptionList.selecteditems,function(n){n.value==t.value&&(t.selected=!0)})}),u&&u.$setViewValue(n.QualifierOptionList.selecteditems))},!0);u&&(u.$render=function(){angular.forEach(n.QualifierOptionList.itemlist,function(t){angular.forEach(u.$viewValue,function(i){i.value==t.value&&(angular.isArray(n.selecteditems)||(n.selecteditems=[]),n.selecteditems.push(t))})})})}function t(n){angular.isDefined(n.gridcolumns)||(n.gridcolumns="3")}return{link:n,restrict:"EA",require:"?^ngModel",scope:{itemlist:"=",selecteditems:"=",gridcolumns:"@",label:"@",hideFilter:"=",isRequired:"="},templateUrl:"App/MarketingCode/Views/QualifierOptionListDirective.html",controller:["$scope","$timeout",function(n,t){function r(){angular.forEach(i.itemlist,function(n){var t=_.find(i.selecteditems,{value:n.value});n.selected=angular.isDefined(t)})}function u(){t(function(){if(i.selecteditems){var t=i.selecteditems;i.selecteditems=null;n.$apply();i.selecteditems=t;n.$apply()}},0)}var i=this;r();i.clickitem=function(n){var r,t;for(angular.isArray(i.selecteditems)||(i.selecteditems=[]),r=-1,t=0;t<i.selecteditems.length;t++)if(i.selecteditems[t].value===n.value){r=t;break}r==-1?n.valid&&(i.selecteditems.push(n),n.selected=!0):(!i.isRequired||i.selecteditems.length>1)&&(i.selecteditems.splice(r,1),n.selected=!1)};i.selectAll=function(){angular.isArray(i.selecteditems)||(i.selecteditems=[]);angular.forEach(i.itemlist,function(n){n.valid&&!i.isSelected(n)&&i.selecteditems.push(n)})};i.deselectAll=function(){i.selecteditems=[]};i.isSelected=function(n){return angular.isDefined(_.find(i.selecteditems,{value:n.value}))};i.isValidOrSelected=function(n){return n.valid||i.isSelected(n)};u()}],controllerAs:"QualifierOptionList",bindToController:!0}}angular.module("CommonModule").directive("exlQualifierOptionList",n)}(),function(){"use strict";function n(){function n(n){angular.isUndefined(n.QualCtrl.showEditButton)&&(n.QualCtrl.showEditButton=!0)}function t(n,t,i,r,u,f){function o(){e.loading=!0;var n=[];n.push(c());t.all(n).then(function(){e.loading=!1})}function c(){return angular.isDefined(e.marketingCode)&&e.marketingCode!=""?r.getCode(e.marketingCode).then(function(n){s(n.marketingCodeQualifiers)},function(){}):angular.isDefined(e.discountId)&&e.discountId>0?f.getDiscount(e.discountId).then(function(n){s(n.discountQualifiers)},function(){}):t.when()}function s(n){e.qualifiers=_.where(n,{isActive:!0});e.qualifierTypes=_.uniq(_.pluck(e.qualifiers,"qualType"));h();e.qualifiers&&(e.qualifiersByType=_.groupBy(e.qualifiers,"qualType"))}function h(){if(e.showQualifierTypes){var n=e.showQualifierTypes.toUpperCase().split(",");_.remove(e.qualifierTypes,function(t){return n.indexOf(t.toUpperCase())===-1})}}var e=this;e.showDiscountQualifierErrors=!0;e.qualifierTypes=[];e.qualifiersByType={};e.qualifiers=[];e.loading=!1;n.$watch("QualCtrl.showQualifierTypes",function(){h()});n.$on("marketingCodeQualifiersChanged",function(n,t){angular.isDefined(t.code)&&e.marketingCode==t.code&&(console.log('reload qualifiers for "'+e.marketingCode+'"'),o())});n.$on("marketingCodeDiscountQualifiersChanged",function(n,t){angular.isDefined(t.discountId)&&e.discountId==t.discountId&&(console.log('reload qualifiers for discount "'+e.discountId+'"'),o())});o()}return{link:n,restrict:"EA",scope:{marketingCode:"=",discountId:"=",showEditButton:"@",label:"@",showQualifierTypes:"@"},templateUrl:"App/MarketingCode/Views/QualifierDirective.html",controller:["$scope","$q","$state","MarketingCodeFactory","QualifierFactory","DiscountFactory",t],controllerAs:"QualCtrl",bindToController:!0}}angular.module("MarketingCodeModule").directive("exlQualifiers",n);n.$inject=[]}(),function(){"use strict";function n(){function n(n,t,i,r,u){function e(){f.loading=!0;var n=[];n.push(o());t.all(n).then(function(){f.loading=!1})}function o(){return angular.isDefined(f.discountId)&&f.discountId>0?u.getDiscount(f.discountId).then(function(n){s(n.discountQualifiers)},function(){}):t.when()}function s(n){f.qualifiers=_.where(n,{isActive:!0,qualType:"Registration"});f.qualifierTypes=_.uniq(_.pluck(f.qualifiers,"qualType"));f.qualifiers&&f.qualifiers.length>0&&(f.qualifiersByType=_.groupBy(f.qualifiers,"qualType"))}var f=this;f.label="RegType Qualifiers";f.showDiscountQualifierErrors=!1;f.qualifierTypes=[];f.qualifiersByType={};f.qualifiers=[];f.loading=!1;n.$on("marketingCodeDiscountQualifiersChanged",function(n,t){angular.isDefined(t.discountId)&&f.discountId==t.discountId&&(console.log('reload qualifiers for discount "'+f.discountId+'"'),e())});e()}return{restrict:"E",scope:{discountId:"="},templateUrl:"App/MarketingCode/Views/RegTypeQualifierDirective.html",controller:["$scope","$q","$state","QualifierFactory","DiscountFactory",n],controllerAs:"QualCtrl",bindToController:!0}}angular.module("MarketingCodeModule").directive("exlRegTypeQualifiers",n);n.$inject=[]}(),function(){function n(){return function(n){var t=[];return angular.forEach(n,function(n){(n.isActive||n.hasChanged)&&t.push(n)}),t}}angular.module("MarketingCodeModule").filter("discount",n)}(),function(){"use strict";function n(n){function i(){var t=this;n.getSearchResultLayout().then(function(n){t.layout=n.data})}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={link:r,restrict:"EA",scope:{recordCount:"=",searchResults:"=",pageCount:"=",currentPage:"=",loadMore:"&",select:"&"},templateUrl:"App/Member/Views/MemberSearchResultsDirective.html",bindToController:!0,controller:i,controllerAs:"searchResultsCtrl"};return t}angular.module("MemberModule").directive("exlMemberSearchResults",n);n.$inject=["MemberService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function h(){function u(){angular.isDefined(n.callback)&&n.callback()(ExlConstants.eventHandlerCodes.addHousing,n.data)}function s(n){var t={id:n.reservationId};e.goToTaskByName(ExlConstants.wizardTaskInternalName.RoomOccupant,t,!1,!0)}function h(t){r.cancelReservation(t).then(function(){angular.isDefined(n.callback)&&n.callback()(ExlConstants.eventHandlerCodes.update,n.data)})}function c(){var t={noHotelTypeCode:n.data.noHotelTypeCode,noHotelOth:n.data.noHotelOth};i.modalNoHotel(t).then(function(){f.putNoHotelReason(n.data.registrantId,t).then(function(){o.displaySuccess("No Hotel Reason updated successfully.");angular.isDefined(n.callback)&&n.callback()(ExlConstants.eventHandlerCodes.update,n.data)},function(){o.displayError("No Hotel Reason update failed.")})})}var n=this;n.isHousingOpen=t.isHousingOpen();n.addReservation=u;n.editReservation=s;n.cancelReservation=h;n.editNoHotel=c}function c(n){var t=s.controllerAs?n[s.controllerAs]:n}var s={link:c,restrict:"E",scope:{dropdownId:"@",data:"=",viewOnly:"=",addNewDisabled:"=",callback:"&"},templateUrl:"App/Personnel/Views/HousingSummary.html",controller:h,controllerAs:"housingSummaryCtrl",bindToController:!0};return s}angular.module("PersonnelModule").directive("exlHousingSummary",n);n.$inject=["$filter","WIZARD","RoomSearchService","ReservationService","PersonnelFactory","ProfileFactory","WizardNavService","NotificationFactory"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function c(){function d(n,t){if(!h.disableInput)switch(n){case ExlConstants.eventHandlerCodes.edit:l(t,!0);break;case ExlConstants.eventHandlerCodes.update:l(t,!1);t.needsRegistration=!1;h.refresh()(ExlConstants.eventHandlerCodes.update);break;case ExlConstants.eventHandlerCodes.cancel:l(t,!1);t.needsRegistration=!1;break;case h.eventHandlerCodes.addRegistration:l(t,!0);t.needsRegistration=!0;break;case h.eventHandlerCodes.removeRegistration:t.isGuest?i.showModal({bodyTemplate:"Are you sure you want to remove this guest?",footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes<\/button>',controller:"ModalController",inputs:{title:"Remove Guest"}}).then(function(n){n.status&&s.delete(t.guestId,t.registrantId).success(function(n){n.success&&h.refresh()(ExlConstants.eventHandlerCodes.update)})}):i.showModal({bodyTemplate:'<exl-static-text id-code="WEB_PERSONNEL_REMOVE_REG_TEXT">Are you sure you wish to remove registration for this registrant?<\/exl-static-text>',footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes<\/button>',controller:"ModalController",inputs:{title:"Remove Registration"}}).then(function(n){n.status&&r.removeRegistration(t.registrantId).then(function(){h.refresh()(ExlConstants.eventHandlerCodes.update)},function(){})});break;case h.eventHandlerCodes.addHousing:r.addRoomRegistrant(t.registrantId);break;case h.eventHandlerCodes.pay:f.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment,null,null,!0);break;case h.eventHandlerCodes.selectAll:h.selectAll=!h.selectAll;v(h.filteredPersonnel,h.selectAll);break;case h.eventHandlerCodes.sendInvite:r.sendGroupIndividualInvites(k(h.filteredPersonnel)).then(function(){h.invitesSent.status=!0;r.setInvitesSent(h.invitesSent);o.displaySuccess("Your invites have been sent");for(var n=0;n<=h.filteredPersonnel.length-1;n++)h.filteredPersonnel[n].isSelected&&(h.filteredPersonnel[n].isSelected=!1,h.filteredPersonnel[n].hasInviteSent="Yes")},function(n){n||o.displayError("No invites sent")});break;case h.eventHandlerCodes.sendConfirmation:w()||(h.isContactConfSelected=!1);u.sendConfirmations(h.isContactConfSelected,k(h.filteredPersonnel)).then(function(){h.confirmationsSent.status=!0;u.setConfirmationsSent(h.confirmationsSent);o.displaySuccess("Your confirmations have been sent");h.isContactConfSelected&&(h.isContactConfSelected=!1,h.confirmationsSent.hasContactConfirmationSent="Yes",h.confirmationsSent.latestContactConfirmationDate=null);for(var n=0;n<=h.filteredPersonnel.length-1;n++)h.filteredPersonnel[n].isSelected&&(h.filteredPersonnel[n].isSelected=!1,h.filteredPersonnel[n].hasConfirmationSent="Yes",h.filteredPersonnel[n].latestConfirmationDate=null)},function(n){n||o.displayError("No confirmations sent")});break;default:h.disableInput=!1}}function l(n,t){h.isEditing=t;n.isEditing=t}function v(n,t,i){if(n)for(var r=0;r<=n.length-1;r++)n[r].isSelected=i?n[r].needsConfirmation?!0:!1:!t||h.editPersonData.regOptionData.viewAll?t:n[r].confSettings&&n[r].confSettings.isIndividualConfEnabled}function k(n){var t=[];return angular.forEach(n,function(n){n.isSelected&&this.push(n.registrantId)},t),t}function g(n){var t=100,i=document.getElementById(n);return i&&(t=i.cells.length),t}function nt(){h.data&&h.data.personnel&&(h.filteredPersonnel==null&&(h.selectAll=!1,v(h.data.personnel,h.selectAll,!0)),h.filteredPersonnel=e("filter")(h.data.personnel,tt),p(),y())}function y(){if(h.sortedPersonnel){var n=(h.currentPage-1)*h.itemsPerPage,t=n+h.itemsPerPage;h.pagedPersonnel=h.sortedPersonnel.slice(n,t);h.hasPages=!0;Math.ceil(h.sortedPersonnel.length/h.itemsPerPage)<2&&(h.hasPages=!1)}}function p(){h.filteredPersonnel&&(h.sortedPersonnel=h.sortExpression==h.sortHeaders.defaultSort?h.filteredPersonnel:e("orderBy")(h.filteredPersonnel,h.sortExpression,h.sortDesc))}function tt(n){var i,t;if(h.filter){if(!exlBaseFunctions.stringEqualsIgnoreCase(n.bookingRegStatus,"COM"))return c(n);if(h.filter.viewCompleted){if(!(n.hasCompletedRegistration||n.hasCompletedReservation))return c(n);if(h.filter.completedType)switch(h.filter.completedType){case ExlConstants.filterCompletedTypes.RegOnly:if(!(n.hasCompletedRegistration&&!n.hasCompletedReservation))return c(n);break;case ExlConstants.filterCompletedTypes.ResOnly:if(!(!n.hasCompletedRegistration&&n.hasCompletedReservation))return c(n);break;case ExlConstants.filterCompletedTypes.RegAndRes:if(!(n.hasCompletedRegistration&&n.hasCompletedReservation))return c(n)}}if(h.filter.registrantId&&h.filter.registrantId.value&&n.registrantId.toString().toLowerCase()!=h.filter.registrantId.value.toLowerCase()||h.filter.firstName&&h.filter.firstName.value&&n.firstName.toLowerCase().indexOf(h.filter.firstName.value.toLowerCase())!=0||h.filter.lastName&&h.filter.lastName.value&&n.lastName.toLowerCase().indexOf(h.filter.lastName.value.toLowerCase())!=0||h.filter.email&&h.filter.email.value&&n.email.toLowerCase().indexOf(h.filter.email.value.toLowerCase())<0||h.filter.company&&h.filter.company.value&&n.company.toLowerCase().indexOf(h.filter.company.value.toLowerCase())<0||h.filter.regType&&h.filter.regType.value&&(!n.hasRegistration||!exlBaseFunctions.stringEqualsIgnoreCase(n.regTypeCode,h.filter.regType.value))||h.filter.noReg&&h.filter.noReg.value&&n.hasRegistration)return c(n);if(h.filter.hotel&&h.filter.hotel.value)if(n.hasReservation){for(i=!1,t=0;t<n.reservations.length;t++)if(n.reservations[t].hotelHIId==h.filter.hotel.value){i=!0;break}if(!i)return c(n)}else return c(n);if(h.filter.noRes&&h.filter.noRes.value&&n.hasReservation||h.filter.waitlist&&h.filter.waitlist.value&&!n.hasWaitlistedReservation)return c(n)}return!0}function c(n){return n.isSelected=!1,!1}function it(n){angular.isUndefined(h.sortExpression)?h.sortDesc=!1:h.sortExpression===n&&(h.sortDesc=!h.sortDesc);h.sortExpression=n;p();y()}function rt(){var n=!1;return h.editPersonData.regOptionData&&(n=h.editPersonData.regOptionData.viewAll&&h.editPersonData.regOptionData.isInviteIndividualEnabled),n}function ut(){return w()||a()}function w(){var n=!1;return h.editPersonData.regOptionData&&h.data&&(n=h.editPersonData.regOptionData.viewCompleted&&b.enableConfirmation&&h.data.contactConfsEnabled),n}function a(n){var t=!1;return h.editPersonData.regOptionData&&h.data&&(t=h.editPersonData.regOptionData.viewCompleted&&b.enableConfirmation&&h.data.individualConfsEnabled,t&&n&&(!n.confSettings||n.isContact)&&(t=!1)),t}function ft(n){var t=!1;return a()&&(t=!(n.confSettings?n.confSettings.isIndividualConfEnabled:!1)),t}function et(n){return n.isContact||a(n)}var h=this,b=n.current.data.config;h.disableInput=!1;h.isEditing=null;h.personnelHeaderRowId="personnelHeaderRow";h.isRegistrationOpen=t.isRegistrationOpen();h.isHousingOpen=t.isHousingOpen();h.eventHandlerCodes={edit:ExlConstants.eventHandlerCodes.edit,cancel:ExlConstants.eventHandlerCodes.cancel,addRegistration:ExlConstants.eventHandlerCodes.addRegistration,removeRegistration:ExlConstants.eventHandlerCodes.removeRegistration,addHousing:ExlConstants.eventHandlerCodes.addHousing,pay:ExlConstants.eventHandlerCodes.pay,selectAll:ExlConstants.eventHandlerCodes.selectAll,sendInvite:r.eventHandlerCodes.sendInvite,sendConfirmation:u.eventHandlerCodes.sendConfirmation};h.personnelEventHandler=d;h.selectAll=!1;h.isSendInviteVisible=rt;h.isSendConfVisible=ut;h.isContactConfVisible=w;h.isIndividualConfVisible=a;h.isIndividualConfDisabled=ft;h.isNoConfirmationReasonVisible=et;h.adjustColSpan=g;h.applyFilter=nt;h.applyPaging=y;h.applySort=p;h.sortSelect=it;h.sortHeaders={defaultSort:["displayOrder"],registrantId:"registrantId",firstName:"firstName",lastName:"lastName",company:"company",registration:"hasRegistration",reservation:"hasReservation"};h.sortSelect(h.sortHeaders.defaultSort);h.currentPage=1;h.itemsPerPageStep=25;h.itemsPerPage=50;h.maxPagerSize=5;h.hasPages=!0;h.invitesSent=r.getInvitesSent();h.confirmationsSent=u.getConfirmationsSent();h.isContactConfSelected=!0}function l(n){var t=h.controllerAs?n[h.controllerAs]:n;t.data!=null&&t.data.personnel!=null&&t.applyFilter();n.$watchCollection(function(){return t.data!=null?t.data.personnel:null},function(n,i){n!=i&&t.applyFilter()},!0);n.$watch(function(){return t.filter},function(n,i){n!=i&&(t.currentPage!=1&&(t.currentPage=1,t.pageReset=!0),t.applyFilter(),t.refresh()(r.eventHandlerCodes.setSelectedFilterFields))},!0);n.$watch(function(){return t.currentPage},function(n,i){n!=i&&(t.pageReset||t.applyPaging(),t.pageReset=!1)});n.$watch(function(){return t.itemsPerPage},function(n,i){n!=i&&t.applyPaging()})}var h={restrict:"E",link:l,scope:{data:"=",editPersonData:"=",filter:"=",refresh:"&"},templateUrl:"App/Personnel/Views/Personnel.html",controller:c,bindToController:!0,controllerAs:"personnelCtrl"};return h}angular.module("PersonnelModule").directive("exlPersonnel",n);n.$inject=["$state","WIZARD","ModalFactory","PersonnelFactory","CompletedPersonnelFactory","WizardNavService","$filter","NotificationFactory","GuestService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function a(){function w(){u.flow.isPreview||a();l.isHousingOpen&&f.getNoHotelTypes().success(function(n){n.success&&(l.noHotelTypes=n)});u.flow.housingType!=ExlConstants.flowHousingTypes.none&&(l.dateArriveMin=moment(e.inv.beginDate).toDate(),l.dateArriveMax=function(){var n=moment(l.roomSearchCriteria.departureDate);return moment(n.isValid()?n.subtract(n.utcOffset(),"m").subtract(1,"d"):e.inv.endDate).toDate()},l.dateDepartMin=function(){var n=moment(l.roomSearchCriteria.arrivalDate);return moment(n.isValid()?n.subtract(n.utcOffset(),"m"):e.inv.beginDate).add(1,"d").toDate()},l.dateDepartMax=moment(e.inv.endDate).add(1,"d").toDate())}function a(){y();var t=n.defer();return r.getProfile().then(function(n){l.profile=n;l.overrides={};t.resolve()},function(){t.reject()}),t.promise}function b(){var n=!0;return l.data.needsInviteIndividual&&(n=!1),n}function k(){if(i.checkFormIsValid(l.formProfile)){l.formProfile.regType&&(l.formProfile.regType.$touched=!1,l.profile.profileRegType=l.data.registrationData.selectedRegType?l.data.registrationData.selectedRegType.value:"");l.formProfile.hotelName&&(l.formProfile.hotelName.$touched=!1);l.profile.needsRegistration=l.data.needsRegistration;l.profile.needsHousing=l.data.needsHousing;l.profile.needsInviteIndividual=l.data.needsInviteIndividual;l.profile.housingArrivalDate=l.roomSearchCriteria.arrivalDate;l.profile.housingDepartureDate=l.roomSearchCriteria.departureDate;l.profile.selectedHotelName=l.roomSearchCriteria.hotelName=l.selectedHotelName?l.selectedHotelName.text:"";l.profile.numberOfRooms=l.roomSearchCriteria.numberOfRooms;l.profile.numberOfGuests=l.roomSearchCriteria.numberOfGuests;var n=l.profile.needsHousing&&!v(),t=l.profile.needsInviteIndividual;r.postProfile(l.profile).then(function(e){var s,a;i.resetForm(l.formProfile);l.profile=e.newProfile;l.overrides={};l.regType="";r.setRegOptionPreference(l.data.selectedRegOption);l.regOptions=l.data.selectedRegOption?l.data.selectedRegOption.value:l.data.regOptions;n?(s=angular.extend(f.getRoomSearchCriteria(),angular.copy(l.roomSearchCriteria)),f.setRoomSearchCriteria(s),f.hasSearched(!0),u.flow.flowCode!="TEAM"?r.addRoomRegistrant(e.addedRegistrant.registrantId):f.getData(s).success(function(n){var t=0;n.success&&(angular.forEach(n.data,function(n){angular.lowercase(n.hotelName).indexOf(angular.lowercase(s.hotelName))!==-1&&t++}),(t=1)&&(r.addRoomRegistrantNoNavigation(e.addedRegistrant.registrantId),f.getData(n.data[0].facilityId).success(function(n){var t,i;!n.success||n.data.length!=1||n.data[0].isSoldOut||n.data[0].isMinOut?(i={id:n.data[0].facilityId},h.createHousingOnlyQueue(),h.addReturnTaskToQueue().then(function(){h.goToTaskByName(ExlConstants.wizardTaskInternalName.RoomChoice,i)})):(t=[],t.push({roomSearchCriteria:angular.extend({facilityId:n.data[0].facilityId},s),hotelItemId:n.data[0].hotelItemId,regTypeGroupId:n.data[0].regTypeGroupId,units:n.data[0].units,categoryName:n.data[0].categoryName,maxOccupancy:n.data[0].maxOccupancy}),c.create(t).success(function(n){n.success&&h.goToTaskByName(ExlConstants.wizardTaskInternalName.RoomOccupant,{id:n.data.reservationIds},null,!0)}))})));t!=1&&r.addRoomRegistrant(e.addedRegistrant.registrantId)})):(a=e.addedRegistrant.firstName+" "+e.addedRegistrant.lastName+" successfully added",t&&(a+=" and invite sent"),o.displaySuccess(a),angular.isDefined(l.callback)&&l.callback()(ExlConstants.eventHandlerCodes.add));y();o.displayMessages(e.nonFatalErrors);i.setFormPristine(l.formProfile)},function(){})}}function d(){a().then(function(){l.formProfile.regType&&(l.formProfile.regType.$touched=!1);l.regType="";l.formProfile.hotelName&&(l.formProfile.hotelName.$touched=!1);l.formProfile.regOptions&&(l.formProfile.regOptions.$touched=!1);angular.isDefined(l.callback)&&l.callback()(ExlConstants.eventHandlerCodes.cancel);i.setFormPristine(l.formProfile)})}function g(n){var t=n.selected?n.item:null;r.setPersonNeeds(t,l.data)}function nt(){f.modalNoHotel(l.profile).then(function(){})}function tt(){l.profile.noHotelTypeCode="";l.profile.noHotelTypeOth=""}function it(){var n=l.profile.noHotelTypeCode,t=exlBaseFunctions.findFirstByKey(l.noHotelTypes.data.types,"customCode",l.profile.noHotelTypeCode);return t!=null&&(n=t.description),n}function v(){return l.profile?r.hasNoHotelTypeSet(l.profile):!1}function y(){l.roomSearchCriteria=angular.extend({includeSoldOut:l.isGradualEngagement},f.getRoomSearchDefaults());l.hotelName="";l.selectedHotelName=""}function rt(){s.showAllotmentModal()}var l=this,p=t.current.data.config;l.isRegTypeRequired=b;l.add=k;l.cancel=d;l.setPersonNeeds=g;l.modalNoHotel=nt;l.removeNoHotelTypeCode=tt;l.noHotelTypeDesc=it;l.hasNoHotelTypeSet=v;l.isRegistrationOpen=u.isRegistrationOpen();l.isHousingOpen=u.isHousingOpen();l.maxNumOfRooms=p.maxNumberOfRooms||9;l.isExhibitorRegEnabled=exlBaseFunctions.stringEqualsIgnoreCase(u.flow.registrationType,ExlConstants.flowRegistrationTypes.exhibitor);l.showExhibitorAllotmentModal=rt;l.allowAddNewWhenClosed=r.getAllowAddNewWhenClosed();w()}function v(n){var t=l.controllerAs?n[l.controllerAs]:n;n.$watch("personnelProfileAddCtrl.data.assignedHotels",function(n,i){(n||i)&&t.data.assignedHotels&&t.data.assignedHotels.length==1&&(t.hotelName=t.data.assignedHotels[0].text,t.selectedHotelName=t.data.assignedHotels[0])})}var l={restrict:"E",link:v,scope:{data:"=",callback:"&"},templateUrl:"App/Personnel/Views/PersonnelProfileAdd.html",controller:a,bindToController:!0,controllerAs:"personnelProfileAddCtrl"};return l}angular.module("PersonnelModule").directive("exlPersonnelProfileAdd",n);n.$inject=["$q","$state","DocumentService","PersonnelFactory","WIZARD","RoomSearchService","SCHEDULES","NotificationFactory","ExhibitorService","WizardNavService","ReservationService"]}(),function(){"use strict";function n(n,t,i,r,u,f){function o(){function o(){if(e.disableInput=!0,!n.checkFormIsValid(e.formProfile)){e.disableInput=!1;return}e.formProfile.regType&&(e.profile.profileRegType=e.regType,e.profile.needsRegistration=e.person.needsRegistration);t.postProfile(e.profile).then(function(t){e.profile=t.updatedRegistrant;e.overrides={};e.disableInput=!1;r.displaySuccess(e.profile.firstName+" "+e.profile.lastName+" successfully updated");r.displayMessages(t.nonFatalErrors);angular.isDefined(e.callback)&&e.callback()(ExlConstants.eventHandlerCodes.update,e.person);n.setFormPristine(e.formProfile)},function(){}).finally(function(){e.disableInput=!1})}function s(){angular.isDefined(e.callback)&&e.callback()(ExlConstants.eventHandlerCodes.cancel,e.person);n.setFormPristine(e.formProfile)}function h(){u.showAllotmentModal()}function c(){f.modalNoHotel(e.profile).then(function(){})}function l(){e.profile.noHotelTypeCode="";e.profile.noHotelTypeOth=""}function a(){var n=e.profile.noHotelTypeCode,t=exlBaseFunctions.findFirstByKey(e.noHotelTypes.data.types,"customCode",e.profile.noHotelTypeCode);return t!=null&&(n=t.description),n}var e=this;e.disableInput=!1;e.update=o;e.cancel=s;e.isRegistrationOpen=i.isRegistrationOpen();e.isHousingOpen=i.isHousingOpen();e.isExhibitorRegEnabled=exlBaseFunctions.stringEqualsIgnoreCase(i.flow.registrationType,ExlConstants.flowRegistrationTypes.exhibitor);e.showExhibitorAllotmentModal=h;e.modalNoHotel=c;e.removeNoHotelTypeCode=l;e.noHotelTypeDesc=a;t.getProfile(e.person.registrantId).then(function(n){e.profile=n;e.overrides={};e.profile.profileRegType?e.regType=e.profile.profileRegType:e.person.needsRegistration&&(e.regType=e.data.registrationData.defaultRegType)},function(){});e.isHousingOpen&&f.getNoHotelTypes().success(function(n){n.success&&(e.noHotelTypes=n)})}function s(n){var t=e.controllerAs?n[e.controllerAs]:n}var e={restrict:"E",link:s,scope:{person:"=",data:"=",callback:"&"},templateUrl:"App/Personnel/Views/PersonnelProfileEdit.html",controller:o,bindToController:!0,controllerAs:"personnelProfileEditCtrl"};return e}angular.module("PersonnelModule").directive("exlPersonnelProfileEdit",n);n.$inject=["DocumentService","PersonnelFactory","WIZARD","NotificationFactory","ExhibitorService","RoomSearchService"]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function h(){function p(n,t){if(!i.disableInput)switch(n){case ExlConstants.eventHandlerCodes.edit:h(t,!0);break;case ExlConstants.eventHandlerCodes.update:h(t,!1);t.needsRegistration=!1;i.refresh()(ExlConstants.eventHandlerCodes.update);case ExlConstants.eventHandlerCodes.cancel:h(t,!1);t.needsRegistration=!1;break;case i.eventHandlerCodes.sendInvite:r.sendGroupIndividualInvites(y(i.filteredPersonnel)).then(function(){i.invitesSent.status=!0;r.setInvitesSent(i.invitesSent);o.displaySuccess("Your invites have been sent");for(var n=0;n<=i.filteredPersonnel.length-1;n++)i.filteredPersonnel[n].isSelected&&(i.filteredPersonnel[n].isSelected=!1,i.filteredPersonnel[n].hasInviteSent="Yes")},function(n){n||o.displayError("No invites sent")});break;case i.eventHandlerCodes.sendConfirmation:a()||(i.isContactConfSelected=!1);u.sendConfirmations(i.isContactConfSelected,y(i.filteredPersonnel)).then(function(){i.confirmationsSent.status=!0;u.setConfirmationsSent(i.confirmationsSent);o.displaySuccess("Your confirmations have been sent");i.isContactConfSelected&&(i.isContactConfSelected=!1,i.confirmationsSent.hasContactConfirmationSent="Yes",i.confirmationsSent.latestContactConfirmationDate=null);for(var n=0;n<=i.filteredPersonnel.length-1;n++)i.filteredPersonnel[n].isSelected&&(i.filteredPersonnel[n].isSelected=!1,i.filteredPersonnel[n].hasConfirmationSent="Yes",i.filteredPersonnel[n].latestConfirmationDate=null)},function(n){n||o.displayError("No confirmations sent")});break;case i.eventHandlerCodes.updateAll:r.editIndividualsQuick(i.pagedPersonnel).then(function(){o.displaySuccess("Update successful")});break;default:i.disableInput=!1}}function h(n,t){i.isEditing=t;n.isEditing=t}function w(n,t,r){if(n)for(var u=0;u<=n.length-1;u++)n[u].isSelected=r?n[u].needsConfirmation?!0:!1:!t||i.editPersonData.regOptionData.viewAll?t:n[u].confSettings&&n[u].confSettings.isIndividualConfEnabled}function y(n){var t=[];return angular.forEach(n,function(n){n.isSelected&&this.push(n.registrantId)},t),t}function b(n){var t=100,i=document.getElementById(n);return i&&(t=i.cells.length),t}function k(){i.data&&i.data.personnel&&(i.filteredPersonnel==null&&(i.selectAll=!1,w(i.data.personnel,i.selectAll,!0)),i.filteredPersonnel=e("filter")(i.data.personnel,d),l(),c())}function c(){if(i.sortedPersonnel){var n=(i.currentPage-1)*i.itemsPerPage,t=n+i.itemsPerPage;i.pagedPersonnel=i.sortedPersonnel.slice(n,t);i.hasPages=!0;Math.ceil(i.sortedPersonnel.length/i.itemsPerPage)<2&&(i.hasPages=!1)}}function l(){i.filteredPersonnel&&(i.sortedPersonnel=i.filteredPersonnel)}function d(n){var r,t;if(i.filter){if(!exlBaseFunctions.stringEqualsIgnoreCase(n.bookingRegStatus,"COM"))return f(n);if(i.filter.viewCompleted){if(!(n.hasCompletedRegistration||n.hasCompletedReservation))return f(n);if(i.filter.completedType)switch(i.filter.completedType){case ExlConstants.filterCompletedTypes.RegOnly:if(!(n.hasCompletedRegistration&&!n.hasCompletedReservation))return f(n);break;case ExlConstants.filterCompletedTypes.ResOnly:if(!(!n.hasCompletedRegistration&&n.hasCompletedReservation))return f(n);break;case ExlConstants.filterCompletedTypes.RegAndRes:if(!(n.hasCompletedRegistration&&n.hasCompletedReservation))return f(n)}}if(i.filter.registrantId&&i.filter.registrantId.value&&n.registrantId.toString().toLowerCase()!=i.filter.registrantId.value.toLowerCase()||i.filter.firstName&&i.filter.firstName.value&&n.firstName.toLowerCase().indexOf(i.filter.firstName.value.toLowerCase())!=0||i.filter.lastName&&i.filter.lastName.value&&n.lastName.toLowerCase().indexOf(i.filter.lastName.value.toLowerCase())!=0||i.filter.email&&i.filter.email.value&&n.email.toLowerCase().indexOf(i.filter.email.value.toLowerCase())<0||i.filter.company&&i.filter.company.value&&n.company.toLowerCase().indexOf(i.filter.company.value.toLowerCase())<0||i.filter.regType&&i.filter.regType.value&&(!n.hasRegistration||!exlBaseFunctions.stringEqualsIgnoreCase(n.regTypeCode,i.filter.regType.value))||i.filter.noReg&&i.filter.noReg.value&&n.hasRegistration)return f(n);if(i.filter.hotel&&i.filter.hotel.value)if(n.hasReservation){for(r=!1,t=0;t<n.reservations.length;t++)if(n.reservations[t].hotelHIId==i.filter.hotel.value){r=!0;break}if(!r)return f(n)}else return f(n);if(i.filter.noRes&&i.filter.noRes.value&&n.hasReservation||i.filter.waitlist&&i.filter.waitlist.value&&!n.hasWaitlistedReservation)return f(n)}return!0}function f(n){return n.isSelected=!1,!1}function g(n){angular.isUndefined(i.sortExpression)?i.sortDesc=!1:i.sortExpression===n&&(i.sortDesc=!i.sortDesc);i.sortExpression=n;l();c()}function nt(){var n=!1;return i.editPersonData.regOptionData&&(n=i.editPersonData.regOptionData.viewAll&&i.editPersonData.regOptionData.isInviteIndividualEnabled),n}function tt(){return a()||s()}function a(){var n=!1;return i.editPersonData.regOptionData&&i.data&&(n=i.editPersonData.regOptionData.viewCompleted&&v.enableConfirmation&&i.data.contactConfsEnabled),n}function s(n){var t=!1;return i.editPersonData.regOptionData&&i.data&&(t=i.editPersonData.regOptionData.viewCompleted&&v.enableConfirmation&&i.data.individualConfsEnabled,t&&n&&(!n.confSettings||n.isContact)&&(t=!1)),t}function it(n){var t=!1;return s()&&(t=!(n.confSettings?n.confSettings.isIndividualConfEnabled:!1)),t}function rt(n){return n.isContact||s(n)}function ut(){if(!i.newPerson||!i.newPerson.firstName||!i.newPerson.lastName||!i.newPerson.email){o.displayError("FirstName, LastName and Email are required.");return}if(!i.newPerson.categoryExhibitor&&!i.newPerson.categoryVolunteer&&!i.newPerson.categorySpecial){o.displayError("You must select at least one category for this registrant.");return}r.addPersonQuick(i.newPerson).then(function(){var n=i.newPerson.firstName+" "+i.newPerson.lastName+" successfully added";o.displaySuccess(n);i.newPerson={categoryExhibitor:!0,NeedsRegistration:!0};i.refresh()(ExlConstants.eventHandlerCodes.update)})}var i=this,v=n.current.data.config;i.disableInput=!1;i.isEditing=null;i.personnelHeaderRowId="personnelHeaderRow";i.isRegistrationOpen=t.isRegistrationOpen();i.isHousingOpen=t.isHousingOpen();i.eventHandlerCodes={edit:ExlConstants.eventHandlerCodes.edit,update:ExlConstants.eventHandlerCodes.update,cancel:ExlConstants.eventHandlerCodes.cancel,sendInvite:r.eventHandlerCodes.sendInvite,sendConfirmation:u.eventHandlerCodes.sendConfirmation,updateAll:"UPDATEALL"};i.personnelEventHandler=p;i.selectAll=!1;i.isSendInviteVisible=nt;i.isSendConfVisible=tt;i.isContactConfVisible=a;i.isIndividualConfVisible=s;i.isIndividualConfDisabled=it;i.isNoConfirmationReasonVisible=rt;i.addPerson=ut;i.adjustColSpan=b;i.applyFilter=k;i.applyPaging=c;i.applySort=l;i.sortSelect=g;i.sortSelect("displayOrder");i.currentPage=1;i.itemsPerPageStep=25;i.itemsPerPage=50;i.maxPagerSize=5;i.hasPages=!0;i.invitesSent=r.getInvitesSent();i.confirmationsSent=u.getConfirmationsSent();i.isContactConfSelected=!0;i.newPerson={categoryExhibitor:!0,NeedsRegistration:!0}}function c(n){var t=s.controllerAs?n[s.controllerAs]:n;t.data!=null&&t.data.personnel!=null&&t.applyFilter();n.$watchCollection(function(){return t.data!=null?t.data.personnel:null},function(n,i){n!=i&&t.applyFilter()},!0);n.$watch(function(){return t.filter},function(n,i){n!=i&&(t.currentPage!=1&&(t.currentPage=1,t.pageReset=!0),t.applyFilter(),t.refresh()(r.eventHandlerCodes.setSelectedFilterFields))},!0);n.$watch(function(){return t.currentPage},function(n,i){n!=i&&(t.pageReset||t.applyPaging(),t.pageReset=!1)});n.$watch(function(){return t.itemsPerPage},function(n,i){n!=i&&t.applyPaging()})}var s={restrict:"E",link:c,scope:{data:"=",editPersonData:"=",filter:"=",refresh:"&"},templateUrl:"App/Personnel/Views/QuickAddGrid.html",controller:h,bindToController:!0,controllerAs:"quickAddCtrl"};return s}angular.module("PersonnelModule").directive("exlQuickAddGrid",n);n.$inject=["$state","WIZARD","ModalFactory","PersonnelFactory","CompletedPersonnelFactory","WizardNavService","$filter","NotificationFactory","GuestService"]}(),function(){"use strict";function n(n){function i(){function i(){angular.isDefined(t.callback)&&t.callback()(ExlConstants.eventHandlerCodes.addRegistration,t.data)}var t=this;t.hideRegFees=n.flow.hideRegFees;t.hideShowItemFees=n.flow.hideShowItemFees;t.addRegistration=i}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={link:r,restrict:"E",scope:{dropdownId:"@",data:"=",addRegDisabled:"=",callback:"&"},templateUrl:"App/Personnel/Views/RegistrationSummary.html",controller:i,controllerAs:"registrationSummaryCtrl",bindToController:!0};return t}angular.module("PersonnelModule").directive("exlRegistrationSummary",n);n.$inject=["WIZARD"]}(),function(){"use strict";function n(n){function i(){var n=this}function r(i){var r=t.controllerAs?i[t.controllerAs]:i;n.getCurrentBlockRequest().then(function(t){t!=null&&(r.statusText=n.getBlockRequestStatusText(t),r.submittedDate=t.submittedDate?moment(t.submittedDate).toDate():null,r.lastUpdated=t.updateDate?moment(t.updateDate).toDate():null)})}var t={restrict:"E",link:r,scope:{},templateUrl:"App/RAB/Views/BlockRequestStatusDirective.html",controller:i,bindToController:!0,controllerAs:"blockRequestStatusCtrl"};return t}angular.module("RABModule").directive("exlBlockRequestStatus",n);n.$inject=["RABFactory"]}(),function(){"use strict";function n(){function t(){var n=this}function i(t,i,r){var u=n.controllerAs?t[n.controllerAs]:t;u.select=function(n){if(angular.isDefined(r.onSelect))u.onSelect({regType:n})};u.regTypeEnabled=function(n){if(angular.isDefined(r.isRegTypeEnabled))return u.isRegTypeEnabled({regType:n})}}var n={link:i,restrict:"E",templateUrl:"App/RegType/Views/RegTypeDirective.html",scope:{dateList:"=",regTypeList:"=",hideRegFees:"=",hideRegTypeCode:"=",onSelect:"&",isRegTypeEnabled:"&",profile:"="},controllerAs:"regTypeCtrl",bindToController:!0,controller:t};return n}angular.module("RegTypeModule").directive("exlRegType",n);n.$inject=["$window"]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",template:"<div><\/div>",scope:{id:"@"}}}angular.module("SelfRegModule").directive("exlSelfRegMeta",n);n.$inject=[]}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function a(){var l=this;l.isRegOpen=h.isRegistrationOpen();l.isEmbedded=h.flow.isEmbedded;l.exitAddShowItem=function(n){n.data||(n.data={});n.data.allowPropagation=!0};l.stopPropagation=function(n,t){n.data&&n.data.allowPropagation||t.stopPropagation()};l.clickAdd=function(n){l.exitAddShowItem(n);l.processShowItem(n)};l.processShowItem=function(n){if(!l.registrant||!l.registrant.regTypeCode){l.showRegister(n);return}if(n.demographics.length&&!t.isDemographicAnswered(n,l.registrant)){s.showModal(n,l.registrant).then(function(t){l.innerProcessShowItem(n,t)});return}l.innerProcessShowItem(n)};l.innerProcessShowItem=function(n,r){var u=n.data?n.data.qty:undefined;(angular.isDefined(u)||(u=n.showItemTypeCode==="PKG"?n.qtyINP||n.qtyCOM?0:1:n.qtyINP==n.maxQtyPerReg||n.qtyCOM==n.maxQtyPerReg?0:1),u!==0||n.qtyINP||n.qtyCOM)&&t.processShowItem(n,u,r).then(function(n){u>0&&o.displaySuccess(l.showItem.showItemCode+" - "+l.showItem.description+" added.");i.setCurrentRegistrant(n)})};l.showRegister=function(t){var i='<exl-static-text id-code="WEB_ATT_SHOWITEM_REGISTER">You must register in order to purchase this item. Get started now.<\/exl-static-text>';l.isEmbedded&&(i='<exl-static-text id-code="WEB_ATT_SHOWITEM_REGISTER_EMBEDDED"><\/exl-static-text>');r.showModal({bodyTemplate:i,footerTemplate:'<button class="button small secondary" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button> <button class="button small dark" ng-click="modalCtrl.close(\'Add\')">Register &amp; Add<\/button>',controller:"ModalController",modalcss:"small",inputs:{title:"Please Register"}}).then(function(i){var r,s,a;i.status==="Add"&&(u.setLocal(ExlConstants.session.geShowItem,t),l.isEmbedded?(r=t.data?t.data.qty:1,s=c.baseHref()+"Flow/"+h.flow.flowCode+"?sicode="+t.showItemCode+"&siqty="+r+"&sipromote=true",n.open(s)):(a=t.description+" will be added when you have selected your registration type.",o.displayInfo(a),l.reg?e.getNextRegTask(l.reg.registrantId).then(function(n){n?f.goToTask(n):f.goToTask(f.getFirstRegTask())}):f.goToTask(f.getFirstRegTask())))})};l.setRegistrantQty=function(){l.registrant&&l.registrant.showItemCart.length&&(l.showItem.qtyINP=0,l.showItem.qtyCOM=0,angular.forEach(l.registrant.showItemCart,function(n){l.showItem.showItemTreeId==n.showItemTreeId&&l.showItem.showItemCode==n.showItemCode&&(n.regTranState==="COM"?l.showItem.qtyCOM+=n.quantity:l.showItem.qtyINP+=n.quantity,n.totalAmount===0&&(l.showItem.isFree=!0))}))};l.setRegistrantQty()}function v(n){var t=l.controllerAs?n[l.controllerAs]:n;n.$on(ExlConstants.events.currentRegistrantChanged,function(n,i){t.registrant=i;t.setRegistrantQty()})}var l={link:v,restrict:"E",scope:{showItem:"=",registrant:"="},templateUrl:"App/ShowItem/Views/ShowItemAddButtonDirective.html",controller:a,controllerAs:"ShowItemAddButton",bindToController:!0};return l}angular.module("ShowItemModule").directive("exlShowItemAddButton",n);n.$inject=["$window","ShowItemService","RegistrantFactory","ModalFactory","WebStorageFactory","WizardNavService","WizardTaskStateService","NotificationFactory","ShowItemDemographicModalService","WIZARD","DocumentService"]}(),function(){"use strict";function n(n,t,i,r){function f(){var u=this;u.setDemographicModal=function(){u.enableDemographicModal=u.showItem.demographics&&u.showItem.demographics.length>0&&u.registrant&&_.find(u.registrant.showItemCart,{showItemId:u.showItem.showItemId})&&n.isDemographicAnswered(u.showItem,u.registrant)};u.showDemographicModal=function(){t.showModal(u.showItem,u.registrant).then(function(n){i.postFollowUpDemographics(n).then(function(n){r.setCurrentRegistrant(n)})});return}}function e(t){var i=u.controllerAs?t[u.controllerAs]:t;i.addListener=function(){i.showItem.demographics&&i.showItem.demographics.length&&t.$on(ExlConstants.events.currentRegistrantChanged,function(n,t){i.registrant=t;i.setDemographicModal()})};i.registrant||r.getCurrentRegistrant().then(function(n){i.registrant=n;i.setDemographicModal()});i.showItem.demographics||n.getDemographics().then(function(n){var t=_.filter(n.data,{showItemId:i.showItem.showItemId});i.showItem.demographics=t?t:[];i.setDemographicModal();i.addListener()});i.setDemographicModal();i.addListener()}var u={link:e,restrict:"EA",templateUrl:"App/ShowItem/Views/ShowItemDemographic.html",scope:{showItem:"=",registrant:"="},controller:f,controllerAs:"ShowItemDemographic",bindToController:!0};return u}angular.module("ShowItemModule").directive("exlShowItemDemographic",n);n.$inject=["ShowItemService","ShowItemDemographicModalService","ProfileFactory","RegistrantFactory"]}(),function(){"use strict";function n(){function n(){var n=this}function t(){}return{link:t,restrict:"EA",scope:{group:"=",dateList:"=",settings:"=",registrant:"=",pricingProfile:"=",enableShowDetail:"="},templateUrl:"App/ShowItem/Views/ShowItemList.html",controller:n,controllerAs:"ShowItemList",bindToController:!0}}angular.module("ShowItemModule").directive("exlShowItemList",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t,i,r,u,f,e){function o(o){var s=this;e.getCurrentRegistrant().then(function(n){n&&n.regTypeCode||(s.pricingProfile=i.getSession("ShowItemPricing")||{});s.pricingProfile&&s.pricingProfile.statusList&&r.$broadcast(ExlConstants.events.geShowItemPricingChanged,s.pricingProfile)});n.getGEStatus().success(function(n){s.geStatus=n;s.fieldDetailList=[];angular.forEach(s.geStatus,function(n){s.fieldDetailList.push(f.createFieldDetailSelectList(n.statusMaster,n.status))})});s.click=function(){s.inline?s.showInline=!s.showInline:s.showModal()};s.showModal=function(){var n={},i;angular.copy(s.pricingProfile,n);i={title:"View Prices",fieldDetailList:s.fieldDetailList,pricingProfile:n};t.showModal({bodyTemplateUrl:"App/ShowItem/Views/ShowItemPricingModal.html",footerTemplate:'<button class="button secondary" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button> <button class="button dark" ng-click="modalCtrl.viewPricing()">View Prices<\/button>',controller:"ShowItemPricingModalController",modalcss:"small",scope:o,inputs:i}).then(function(t){t.status==="OK"&&(s.pricingProfile=angular.extend(s.pricingProfile||{},n),s.savePricingProfile())})};s.savePricingProfile=function(n){(!s.formScope||u.checkFormIsValid(s.formScope.formPricing))&&(s.pricingProfile.statusList=[],angular.forEach(s.fieldDetailList,function(n){s.pricingProfile.statusList.push(_.find(n.fieldPicks,{value:s.pricingProfile[n.fieldName]}))}),i.setSession("ShowItemPricing",s.pricingProfile),r.$broadcast(ExlConstants.events.geShowItemPricingChanged,s.pricingProfile),n&&(s.showInline=!s.showInline))};s.setFormScope=function(n){s.formScope=n}}function s(){}return{link:s,restrict:"EA",scope:{inline:"@"},templateUrl:"App/ShowItem/Views/ShowItemPricingDirective.html",controller:["$scope",o],controllerAs:"ShowItemPricing",bindToController:!0}}function t(n,t,i,r,u){var f=this;angular.extend(f,r);f.dismiss=t.dismiss;f.templates=i;f.close=function(n){var i={status:n};t.close(i)};f.setFormScope=function(n){f.formScope=n};f.viewPricing=function(){if(u.checkFormIsValid(f.formScope.formPricing))t.close({status:"OK"})}}angular.module("ShowItemModule").directive("exlShowItemPricing",n).controller("ShowItemPricingModalController",t);n.$inject=["ShowItemService","ModalFactory","WebStorageFactory","$rootScope","DocumentService","FieldDetailFactory","RegistrantFactory"];t.$inject=["$scope","$modalInstance","templates","inputs","DocumentService"]}(),function(){"use strict";function n(){function n(){var n=this}function t(){}return{link:t,restrict:"EA",scope:{filter:"="},templateUrl:"App/ShowItem/Views/ShowItemQuickSearchDirective.html",controller:n,controllerAs:"ShowItemQuickSearch",bindToController:!0}}angular.module("ShowItemModule").directive("exlShowItemQuickSearch",n);n.$inject=["$state","WIZARD","ShowItemService"]}(),function(){"use strict";function n(n){function i(){var n=this}function r(i){var r=t.controllerAs?i[t.controllerAs]:i;r.showDetail=function(t){function f(n,t){if(!n||!t)return!1;var i=new Date(n),r=new Date(t);return i&&r&&i.toDateString()!==r.toDateString()}var i=r.settings.detailVisible_ShowItemCodeInHeader?t.showItemCode+" - "+t.description:t.description,u={title:i,settings:r.settings,dateList:r.dateList,showItem:t,isMultiDay:f(t.startDate,t.endDate),registrant:r.registrant,pricingProfile:r.pricingProfile};return n.showModal({bodyTemplateUrl:"App/ShowItem/Views/ShowItemDetail.html",footerTemplate:'<button class="button small secondary" ng-click="modalCtrl.close(\'Cancel\')">Cancel<\/button>',controller:"ShowItemDetailModalController",modalcss:"",inputs:u})}}var t={link:r,restrict:"EA",templateUrl:"App/ShowItem/Views/ShowItemRowDirective.html",scope:{showItem:"=",settings:"=",enableShowDetail:"=",registrant:"=",pricingProfile:"=",dateList:"=",hideShowItemFees:"=",enableLikes:"="},controller:i,controllerAs:"ShowItemRow",bindToController:!0};return t}angular.module("ShowItemModule").directive("exlShowItemRow",n);n.$inject=["ModalFactory"]}(),function(){"use strict";function n(n,t,i){function u(u,f,e,o,s){var h=r.controllerAs?u[r.controllerAs]:u,p,w,b,g,y,l,d;if(!h.idCode){p='exlStaticText directive missing "idCode" parameter.';w=f.attr("id-code");w&&(p+=" Binding expression used: "+w);throw p;}if(angular.forEach(["ngBind","ngBindHtml","ngBindTemplate"],function(n){if(angular.isDefined(e[n]))throw'exlStaticText directive can not be used in conjunction with directive "'+n+'".';}),e.isVisible&&u.$watch(function(){return h.isVisible},function(n){f.toggle(angular.isUndefined(n)||n)}),b=angular.lowercase("exlStaticText".replace(/[A-Z]+/g,"-$&")),g=f.parents(b+":first"),g.length)throw"exlStaticText directives can not be nested.";var c=angular.isUndefined(h.allowHtml)||h.allowHtml,v=f.find(".exl-static-text-content"),nt=function(t){return t.replace(/(<[^>]+\s+(href|src|action|data)\s*=\s*['"]?)RefFiles\/(.*)/gim,"$1"+n+"$3")},it=function(t){return t.replace(n,"RefFiles/")},a,k=function(){a&&(a.remove(),a=null)},tt=function(){i.getData().success(function(n){if(n.success){var t=i.filterData(n.data,h.idCode,h.granularity);t!==null?(k(),t&&c&&(t=nt(t)),v.html(t)):a||(a=s(function(n){v.empty().append(n)}))}})};if(tt(),h.granularity==="page"&&u.$on("$stateChangeSuccess",function(n,t,i,r){!n.defaultPrevented&&r.data&&r.data.task&&tt()}),y="click.exlStaticText",l=f.closest(":button"),l.length){if(l.find(b).length>1)throw'"button" elements may not contain more than one exlStaticText directive.';}else l=f;d=function(n){if(h.isEditMode=n,f.toggleClass("exl-static-text-edit",n),l.off(y),n)l.on(y,function(n){var r,e,o,s;n.preventDefault();n.stopImmediatePropagation();r=["autoresize","charmap","noneditable","paste","searchreplace","wordcount"];c&&(Array.prototype.push.apply(r,["advlist","code","fullscreen","hr","image","lists","media","nonbreaking","table","textcolor","visualblocks","visualchars"]),f.closest("a,:button").length||Array.prototype.push.apply(r,["anchor","autolink","link"]));e=[];angular.forEach({"Double Extra Large":"28px","Extra Large":"24px",Large:"20px",Medium:"16px",Small:"14px","Extra Small":"12px","Double Extra Small":"10px"},function(n,t){this.push({title:t,inline:"span",styles:{fontSize:n}})},e);o="api/StaticText/FileList/";s=v.html().trim();t.showModal({bodyTemplateUrl:"App/StaticText/Views/StaticTextEditModal.html",footerTemplateUrl:"App/StaticText/Views/StaticTextEditModalFooter.html",controller:"ModalController",keyboard:!1,inputs:{title:"Edit Text",idCode:i.createQualifiedGranularIDCode(h.granularity,h.idCode),granularity:h.granularity,content:c?it(s):s,tinymceOptions:{document_base_url:angular.element("base:first","head:first").prop("href"),object_resizing:!1,forced_root_block:!1,browser_spellcheck:!0,image_advtab:!0,image_dimensions:!1,image_list:o+"Image",link_list:o+"Link",nonbreaking_force_tab:!0,paste_as_text:!c,style_formats:[{title:"Font Sizes",items:e}],style_formats_merge:!0,valid_elements:c?null:" ",plugins:r.join(","),menubar:c,toolbar:c?"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | forecolor":"undo redo | cut copy pastetext | charmap | searchreplace | spellchecker",auto_focus:!0}}}).then(function(n){var r=n.status,f,t;r&&r.isSave&&(f=r.idCode,t=r.content,i.setData(f,t).success(function(n){n.success&&(i.invalidateCache(),c&&(t=nt(t)),u.$root.$broadcast(ExlConstants.events.staticTextUpdate,f,t))}))})})};d(i.isEditMode());u.$on(ExlConstants.events.staticTextEditModeToggled,function(n,t){n.defaultPrevented||d(t)});u.$on(ExlConstants.events.staticTextUpdate,function(n,t,r){n.defaultPrevented||t!==i.createQualifiedGranularIDCode(h.granularity,h.idCode)||(k(),v.html(r))});u.$on("$destroy",function(n){n.defaultPrevented||(k(),l.off(y))})}var r={link:u,restrict:"E",scope:{idCode:"@",granularity:"@",allowHtml:"=",associatedFieldName:"@",additionalLabelText:"@",isVisible:"="},templateUrl:"App/StaticText/Views/StaticTextDirective.html",transclude:!0,controller:angular.noop,controllerAs:"staticTextCtrl",bindToController:!0};return r}angular.module("StaticTextModule").directive("exlStaticText",n);n.$inject=["REF_FILES_URL","ModalFactory","StaticTextService"]}(),function(){"use strict";function n(n,t,i,r,u){function e(){var n=this}function o(e,o,s){var h=f.controllerAs?e[f.controllerAs]:e;h.isInModal=o.closest(".reveal-modal").length;h.isInModal&&f&&f.scope&&angular.forEach(f.scope,function(r,u){var o=this,c=angular.lowercase(u.replace(/[A-Z]/g,"-$&")),l=angular.element(n).find("exl-static-text-admin["+c+"]:first"),f;if(angular.isUndefined(o[u])&&angular.isUndefined(s[u])&&l.length){u==="isUserAdmin"&&(h.isLoggedIn=i.masterAuthKey()?!0:!1);switch(r){case"@":o[u]=l.attr(c);break;case"=":case"=?":s[u]=l.attr(c);f=t(s[u]);e.$watch(function(){return f(e.$parent)},function(n){f.assign&&f.assign(e.$parent,n);o[u]=n});o[u]=f(e.$parent)}}},h);var c="<p>Are you sure you want to continue?<\/p>",l={footerTemplate:'<button type="button" class="secondary" data-ng-click="modalCtrl.close(false)">No, don\'t do this<\/button><button type="button" data-ng-click="modalCtrl.close(true)">Yes, continue<\/button>',controller:"ModalController"},a=function(n){h.isEditMode=n};a(i.isEditMode());e.$on(ExlConstants.events.staticTextEditModeToggled,function(n,t){n.isDefaultPrevented||a(t)});h.toggleEditMode=function(){(h.isUserAdmin||h.isLoggedIn)&&i.toggleEditMode()};h.pushToProd=function(){(h.isUserAdmin||h.isLoggedIn&&h.canPushRemote)&&h.canPush&&u.showModal(angular.extend({bodyTemplate:"<p>This will push ALL editable text (on EVERY page) to the PROD environment.  This does NOT include any programming changes, nor any newly added text fields since the last time the entire web project was pushed.<\/p>"+c,inputs:{title:"Push to PROD Environment"}},l)).then(function(n){n.status&&i.pushToProd().success(angular.noop)})};h.togglePassword=function(){if(h.isUserAdmin){var n=h.password?"This will delete the existing password and DISABLE StaticText editing from outside of the Experient corporate network.":"Generating a new password will ENABLE remote access to StaticText editing features.  The StaticText login interface will become accessible to ALL USERS across the entire internet and they will be able to edit StaticText if they login successfully with the password.";u.showModal(angular.extend({bodyTemplate:"<p>"+n+"<\/p>"+c,inputs:{title:"StaticText Remote Editing Password"}},l)).then(function(n){if(n.status){var t=h.password?"clear":"create";i[t+"Password"]().success(function(n){n.success&&(h.password=n.data)})}})}};h.login=function(n){h.canLogin&&n.$valid&&i.login(h.txtPassword).success(function(n){n.success?(h.isLoggedIn=!0,i.masterAuthKey(n.data)):n.messages.length||r.displayError("Login failed: incorrect password.")})}}var f={link:o,restrict:"E",scope:{isUserAdmin:"=?",canLogin:"=?",canPush:"=?",canPushRemote:"=?",password:"@"},templateUrl:"App/StaticText/Views/StaticTextAdminDirective.html",controller:e,controllerAs:"staticTextAdminCtrl",bindToController:!0};return f}angular.module("StaticTextModule").directive("exlStaticTextAdmin",n);n.$inject=["$document","$parse","StaticTextService","NotificationFactory","ModalFactory"]}(),function(){"use strict";function n(n){function t(t,i,r){var u=t.$eval(r.exlStaticTextToggle);if(angular.isObject(u)){if(!u.idCode)throw'exlStaticTextToggle directive is missing "idCode" parameter.';}else throw"exlStaticTextToggle directive is missing parameters.";u.granularity||(u.granularity="flow");var f,o=n.isEditMode(),e=function(){i.toggle(o||f?!0:!1)},s=function(){n.getData().success(function(t){t.success&&(f=n.filterData(t.data,u.idCode,u.granularity),e())})};s();u.granularity==="page"&&t.$on("$stateChangeSuccess",function(n,t,i,r){!n.defaultPrevented&&r.data&&r.data.task&&s()});t.$on(ExlConstants.events.staticTextUpdate,function(t,i,r){t.defaultPrevented||i!==n.createQualifiedGranularIDCode(u.granularity,u.idCode)||(f=r,e())});t.$on(ExlConstants.events.staticTextEditModeToggled,function(n,t){n.defaultPrevented||(o=t,e())})}return{link:t,restrict:"A"}}angular.module("StaticTextModule").directive("exlStaticTextToggle",n);n.$inject=["StaticTextService"]}(),function(){"use strict";function n(n){function i(){var n=this}function r(i,r,u){var e=t.controllerAs?i[t.controllerAs]:i,f=i.$eval(u.exlAreaMapModal)||{};r.click(function(){var t={title:f.title||"Hotel Map"};n.showModal({bodyTemplateUrl:"App/Widget/Views/AreaMapModal.html",footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'Cancel\')">Close<\/button>',controller:"WidgetAreaMapModalController",controllerAs:"WidgetAreaMapModalController",modalcss:f.modalcss||"large",inputs:t}).then(function(){})})}var t={link:r,restrict:"A",scope:!1,controller:i,controllerAs:"areaMapCtrl",bindToController:!0};return t}function t(n,t,i,r,u,f,e){function s(n){f.displayHotelProfileModal(n)}var o=this;angular.extend(o,r);o.dismiss=t.dismiss;o.templates=i;o.showHotelProfileModal=s;o.close=function(n){var i={status:n};t.close(i)};u.getMapExclusions().success(function(n){n.success&&u.getAll().success(function(t){var r,f,u,i;if(t.success){for(r=[],f=[],u=0;u<t.data.facility.length;u++)if(i=t.data.facility[u],!(n.data.ids.indexOf(i.facilityID)>-1)&&!(n.data.types.indexOf(i.facilityTypeCode)>-1)){var c=i.isPrimaryFacility?e+"marker-primaryfacility.png":i.isBookingFacility?"https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+(r.length+1)+"|59DE59|000000":i.facilityTypeCode==="AIRPORT"?e+"marker-airport.png":e+"marker-eventfacility.png",s={name:i.name,id:i.facilityID,features:["SHUTTLE"],address1:i.address1,address2:i.address2,address3:i.address3,city:i.city,stateCode:i.stateCode,countryCode:i.countryCode,zipCode:i.zipCode,imgSource:c},h=i.isPrimaryFacility?"unshift":"push";i.isBookingFacility&&r[h](s);i.isEventFacility&&f[h](s)}o.bookingFacilities=r;o.eventFacilities=f}})})}angular.module("WidgetModule").directive("exlAreaMapModal",n).controller("WidgetAreaMapModalController",t);n.$inject=["ModalFactory"];t.$inject=["$scope","$modalInstance","templates","inputs","FacilityService","RoomService","REF_FILES_URL"]}(),function(){"use strict";function n(){function t(){var n=this}function i(t){var i=n.controllerAs?t[n.controllerAs]:t}var n={priority:99,link:i,restrict:"E",scope:{title:"@",modalcss:"@"},templateUrl:"App/Widget/Views/AreaMapDirective.html",bindToController:!0,controller:t,controllerAs:"widgetAreaMapCtrl"};return n}angular.module("WidgetModule").directive("exlWidgetAreaMap",n);n.$inject=[]}(),function(){"use strict";function n(n,t,i,r,u){function e(){function u(t){!n.hideAllFees&&n.hasFinancialSection&&(t||!n.bookingFinancials)&&i.getBookingFinancials().then(function(t){n.hideWidget=!0;t&&(n.hideWidget=!1,n.bookingFinancials=t,n.paymentButtonVisible=n.showPaymentButton(t))},function(){n.hideWidget=!0;n.bookingFinancials=null})}function f(){var n=!1;exlBaseFunctions.stringEqualsIgnoreCase(r.currentTask().taskInternalName,ExlConstants.wizardTaskInternalName.Dashboard)&&(n=!0);r.goToTaskByName(ExlConstants.wizardTaskInternalName.Payment,null,null,n)}function e(n){if(!t.flow.isOpen)return!1;var i=r.currentTask();return!i||exlBaseFunctions.isNullOrWhiteSpace(i.taskInternalName)?!1:n&&(n.totalBalanceDue>0||n.isccgNeeded)&&i.taskInternalName.toUpperCase()!="PAYMENT"&&i.taskInternalName.toUpperCase()!="HOUSINGENTRY"}var n=this;n.goToPayment=f;n.showPaymentButton=e;n.loadBookingFinancials=u}function o(i){function e(n){if(!u.isLoggedIn()){r.hideWidget=!0;return}var i=t.flow;i&&(r.hideRegFees=i.hideRegFees,r.hideShowItemFees=i.hideShowItemFees,r.hideReservationFees=o.hideReservationFees,r.hasRegistration=i.registrationType&&i.registrationType.toUpperCase()!="NONE",r.hasHousing=i.housingType&&i.housingType.toUpperCase()!="NONE",r.hideAllFees=(!r.hasRegistration||r.hideRegFees&&r.hideShowItemFees)&&(!r.hasHousing||r.hideReservationFees));r.hasFinancialSection=!!_.find(t.flow.wizardSections,{sectionName:"Financial"});r.loadBookingFinancials(n)}var r=f.controllerAs?i[f.controllerAs]:i,o=n.current.data.config;e(!1);i.$on("wizardTaskChange",function(n){n.defaultPrevented||e(!0)});i.$on(ExlConstants.events.bookingBalanceUpdate,function(){r.loadBookingFinancials(!0)})}var f={link:o,restrict:"E",scope:{},templateUrl:"App/Widget/Views/BookingFinancialsDirective.html",controller:e,controllerAs:"bfc",bindToController:!0};return f}angular.module("CommonModule").directive("exlWidgetBookingFinancials",n);n.$inject=["$state","WIZARD","BookingFactory","WizardNavService","WidgetFactory"]}(),function(){"use strict";function n(){function n(n,t,i){n.getContentUrl=function(){return"App/Widget/Views/ContainerDirective"+i.val+".html"}}return{link:n,restrict:"E",scope:{},replace:!0,template:'<div ng-include="getContentUrl()"><\/div>'}}angular.module("WidgetModule").directive("exlWidgetContainer",n);n.$inject=[]}(),function(){"use strict";function n(){function t(t){var i=n.controllerAs?t[n.controllerAs]:t}var n={link:t,restrict:"E",scope:{},replace:!0,templateUrl:"App/Widget/Views/CustChatInfoDirective.html",controller:"CustChatController",controllerAs:"csc",bindToController:!0};return n}angular.module("WidgetModule").directive("exlWidgetCustChatInfo",n);n.$inject=["$q"]}(),function(){"use strict";function n(n){function i(){var t=this;t.sfBeginDate=n.sf.beginDate;t.sfEndDate=n.sf.endDate;t.countDownDate=Date.parse(n.sf.beginDate);t.currentDate=Date.now.getMilliseconds}function r(n){var i=t.controllerAs?n[t.controllerAs]:n}var t={link:r,restrict:"E",replace:!0,scope:{},templateUrl:"App/Widget/Views/EventCountDownDirective.html",bindToController:!0,controller:i,controllerAs:"eventCountDownCtrl"};return t}angular.module("WidgetModule").directive("exlWidgetEventCountDown",n);n.$inject=["SCHEDULES"]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"E",scope:{},templateUrl:"App/Widget/Views/HelpfulLinksDirective.html",controller:"HelpfulLinksController",controllerAs:"hlc",bindToController:!0}}angular.module("WidgetModule").directive("exlWidgetHelpfulLinks",n);n.$inject=[]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"E",scope:{},replace:!0,templateUrl:"App/Widget/Views/NeedHelpDirective.html"}}angular.module("WidgetModule").directive("exlWidgetNeedHelp",n);n.$inject=[]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"E",scope:{},replace:!0,templateUrl:"App/Widget/Views/PersonnelQuickSearchDirective.html",controller:["WizardNavService","PersonnelFactory","NotificationFactory",function(n,t,i){var r=this;r.search=function(){if(r.firstName&&r.firstName!==""||r.lastName&&r.lastName!==""){var u=t.resetFilter();u.filterFields.firstName.value=r.firstName||"";u.filterFields.lastName.value=r.lastName||"";r.firstName="";r.lastName="";n.currentTask().taskInternalName===ExlConstants.wizardTaskInternalName.PersonnelSearch?n.reLoadTask():n.goToTaskByName(ExlConstants.wizardTaskInternalName.PersonnelSearch)}else i.displayError("Please specify either first or last name for the search.")}}],controllerAs:"psc",bindToController:!0}}angular.module("WidgetModule").directive("exlWidgetPersonnelQuickSearch",n);n.$inject=[]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",scope:{},templateUrl:"App/Widget/Views/RegistrantSummaryDirective.html",controllerAs:"rsc",bindToController:!0,controller:["$scope","BookingFactory","$state","WIZARD","WizardNavService",function(n,t,i,r,u){function e(n){if(!i.params.regId){f.hideSummary=!0;return}r.flow&&(f.hideRegFees=r.flow.hideRegFees,f.hideShowItemFees=r.flow.hideShowItemFees);(n||!f.registrantCollection)&&t.getWidgetRegSummaryList().then(function(n){if(f.hideSummary=!0,n&&n.length>1)for(var t=0;t<n.length;t++)n[t].regId&&n[t].regId==i.params.regId&&(exlBaseFunctions.isNullOrWhiteSpace(n[t].firstName)||exlBaseFunctions.isNullOrWhiteSpace(n[t].lastName)||(f.currentReg=n[t],f.registrantCollection=n,f.hideSummary=!1))},function(){f.hideSummary=!0})}function o(n){if(r&&r.flow&&r.flow.registrationType&&n&&n.regId)if(r.flow.registrationType.toUpperCase()=="EXHIBITOR")u.goToTaskByName(ExlConstants.wizardTaskInternalName.PersonnelSearch);else if(r.flow.registrationType.toUpperCase()=="ATTENDEE"){var t={regId:n.regId};u.goToTaskByName("Dashboard",t)}}function s(n){r&&r.flow&&r.flow.registrationType&&n&&n.regId&&n.isCompleted&&(r.flow.registrationType.toUpperCase()=="EXHIBITOR"?u.goToTaskByName(ExlConstants.wizardTaskInternalName.PersonnelSearch):r.flow.registrationType.toUpperCase()=="ATTENDEE"&&u.goToTaskByName("Dashboard"))}var f=this;f.goToRegistration=o;f.goToSummary=s;e(!1);n.$on("wizardTaskChange",function(){e(!0)})}]}}angular.module("CommonModule").directive("exlWidgetRegistrantSummary",n);n.$inject=["$q"]}(),function(){"use strict";function n(n){function t(){var t=this;t.isSelfRegLayout=angular.isDefined(n)}function i(){}return{link:i,restrict:"E",scope:{},replace:!0,bindToController:!0,controller:t,controllerAs:"ShowInfo",templateUrl:"App/Widget/Views/ShowInfoDirective.html"}}angular.module("WidgetModule").directive("exlWidgetShowInfo",n);n.$inject=["SELFREGSETTINGS"]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"E",scope:{},replace:!0,templateUrl:"App/Widget/Views/SocialNetworkDirective.html"}}angular.module("WidgetModule").directive("exlWidgetSocialNetwork",n);n.$inject=[]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"E",scope:{},replace:!0,templateUrl:"App/Widget/Views/SponsoredByDirective.html"}}angular.module("WidgetModule").directive("exlWidgetSponsoredBy",n);n.$inject=[]}(),function(){"use strict";function n(){function n(){}return{link:n,restrict:"EA",transclude:!0,scope:{idCode:"@",defaultText:"@",title:"@",modalcss:"@",modalDisabled:"@"},template:'<button type="button" data-ng-transclude data-ng-disabled="{{ WidgetStaticTextModal.modalDisabled }}" ng-click="WidgetStaticTextModal.click()"><\/button>',controllerAs:"WidgetStaticTextModal",bindToController:!0,controller:["$scope","ModalFactory",function(n,t){var i=this;i.modalcss=i.modalcss||"small";i.click=function(){var n={idCode:i.idCode,defaultText:i.defaultText,title:i.title};t.showModal({bodyTemplateUrl:"App/Widget/Views/StaticTextModalDirective.html",footerTemplate:'<button class="button small dark" ng-click="modalCtrl.close(\'OK\')">OK<\/button>',controller:"ModalController",modalcss:i.modalcss,inputs:n}).then(function(){})}}]}}angular.module("CommonModule").directive("exlWidgetStaticTextModal",n);n.$inject=["$window"]}(),function(){"use strict";function n(n,t,i){function u(){var n=this;n.launch=function(){t.launchTranslate()};n.isSelfRegLayout=angular.isDefined(i)}function f(n){var t=r.controllerAs?n[r.controllerAs]:n}var r={link:f,restrict:"E",replace:!0,priority:5e4,scope:{},bindToController:!0,controller:u,controllerAs:"translate",templateUrl:"App/Widget/Views/TranslateDirective.html"};return r}angular.module("WidgetModule").directive("exlWidgetTranslate",n);n.$inject=["$timeout","TranslateService","SELFREGSETTINGS"]}(),function(){"use strict";angular.module("eventXL",["ngAnimate","ngMessages","ngAria","CommonModule","LoginModule","WidgetModule","StaticTextModule","angular-loading-bar"]).config(["$compileProvider","$httpProvider",function(n,t){t.useApplyAsync(!0);t.interceptors.push("AuthenticationFactory");t.interceptors.push("NotificationFactory");t.interceptors.push("WizardHttpHeaderFactory")}]).config(["$provide",function(n){n.decorator("$http",["$delegate","$cacheFactory","$q",function(n,t){var i=n,r=t("exlHttpGet"),u=t("exlHttpPost");return i._get=i.get,i.get=function(n,t){var u=[n],e=JSON.stringify(t&&t.params),f;return angular.isDefined(e)&&u.push(e),r.get(u)||(f=i._get.apply(i,arguments),r.put(u,f),f.finally(function(){r.remove(u)})),r.get(u)},i._post=i.post,i.post=function(n,t){var r=[n],e=JSON.stringify(t),f;return angular.isDefined(e)&&r.push(e),n==="Token"?(u.get(r)||(f=i._post.apply(i,arguments),u.put(r,f),f.finally(function(){u.remove(r)})),u.get(r)):i._post.apply(i,arguments)},i}])}]).config(["cfpLoadingBarProvider",function(n){n.includeSpinner=!1}]).run(["$locale","$rootScope","cfpLoadingBar","WebStorageFactory",function(n,t,i,r){var e,f,u;if(t.$on("$stateChangeStart",function(n){n.defaultPrevented||i.start()}),e=function(n){var t,u;n.defaultPrevented||(i.complete(),t=angular.element("html").data("exlEmbeddedShowitem"),t&&(u=t.showItem,u.data={qty:1},u.data.qty=t.showItemQty,u.promote=t.promote,r.setSession(ExlConstants.session.geShowItem,u),t=""))},t.$on("$stateChangeCancel",e),t.$on("$stateChangeError",e),t.$on("$stateChangeSuccess",e),f=angular.element("html").data("exlLocale"),f){n.id=f.cultureCode;n.NUMBER_FORMATS.CURRENCY_SYM=f.currencyLabel;u=n.NUMBER_FORMATS.PATTERNS[1];switch(f.currencyPositivePattern){case 0:angular.extend(u,{posPre:"¤",posSuf:""});break;case 1:angular.extend(u,{posPre:"",posSuf:"¤"});break;case 2:angular.extend(u,{posPre:"¤ ",posSuf:""});break;case 3:angular.extend(u,{posPre:"",posSuf:" ¤"})}switch(f.currencyNegativePattern){case 0:angular.extend(u,{negPre:"(¤",negSuf:")"});break;case 1:angular.extend(u,{negPre:"-¤",negSuf:""});break;case 2:angular.extend(u,{negPre:"¤-",negSuf:""});break;case 3:angular.extend(u,{negPre:"¤",negSuf:"-"});break;case 4:angular.extend(u,{negPre:"(",negSuf:"¤)"});break;case 5:angular.extend(u,{negPre:"-",negSuf:"¤"});break;case 6:angular.extend(u,{negPre:"",negSuf:"-¤"});break;case 7:angular.extend(u,{negPre:"",negSuf:"¤-"});break;case 8:angular.extend(u,{negPre:"-",negSuf:" ¤"});break;case 9:angular.extend(u,{negPre:"-¤ ",negSuf:""});break;case 10:angular.extend(u,{negPre:"",negSuf:" ¤-"});break;case 11:angular.extend(u,{negPre:"¤ ",negSuf:"-"});break;case 12:angular.extend(u,{negPre:"¤ -",negSuf:""});break;case 13:angular.extend(u,{negPre:"",negSuf:"- ¤"});break;case 14:angular.extend(u,{negPre:"(¤ ",negSuf:")"});break;case 15:angular.extend(u,{negPre:"(",negSuf:" ¤)"})}}}])}();angular.module("eventXL").run(["$templateCache",function(n){n.put("App/CAB/Views/CreateBlockTask.html",'<exl-static-text id-code=WEB_CAB_TASK_TEXT_TOP><p>Review the selected dates and room types. You can adjust the number of rooms for a particular night as needed before accepting the cancellation policy and guaranteeing your block of rooms.<\/p><\/exl-static-text> <exl-facility-rate-message><\/exl-facility-rate-message> <div class="stretch text-left"> <h3> {{::taskCtrl.sourceSubBlock.hotelName}} - {{::taskCtrl.sourceSubBlock.categoryName}} <small>[ Max Guests - {{::taskCtrl.sourceSubBlock.maxOccupancy}} ]<\/small>  <\/h3> <div class=row> <div class="medium-12 columns"> <table class="table transparent stretch"> <tr> <td data-ng-if=::!taskCtrl.hideReservationFees> <div class=fieldlabel>Guarantee<\/div> <h3 data-ng-switch=::taskCtrl.sourceSubBlock.depositTypeCode> <i class="fa fa-credit-card" title="Credit Card Guarantee" data-ng-switch-when="NO DEPOSIT/CC"><span class=exl-screen-reader-text>Credit Card Guarantee<\/span><\/i> <span data-ng-switch-default>{{::taskCtrl.sourceSubBlock.totalDepositAmt | currency}}<\/span> <\/h3> <span><exl-static-text id-code=WEB_FACILITY_PROFILE_CAB_GUARANTEE_TEXT>*Due at time of Booking<\/exl-static-text><\/span> <\/td> <td> <div class=fieldlabel>nightly<\/div> <h3 data-exl-facility-daily-rates="{hotelItemId: taskCtrl.sourceSubBlock.hotelItemId, displayTotal: false}"> {{::taskCtrl.sourceSubBlock.minNightlyRate | currency}} <i class="fa fa-fw fa-caret-down right"><\/i> <\/h3> <\/td> <td> <div class=fieldlabel>total<\/div> <button class=empty data-dropdown-toggle=#ddRoomTotal_{{::taskCtrl.sourceSubBlock.hotelItemId}}> <h3>{{::taskCtrl.sourceSubBlock.totalForStay | currency}} <i class="fa fa-fw fa-caret-down right"><\/i><\/h3> <\/button> <exl-room-fees dropdown-id=ddRoomTotal_{{::taskCtrl.sourceSubBlock.hotelItemId}} sub-block=taskCtrl.sourceSubBlock><\/exl-room-fees> <\/td> <\/tr> <\/table> <\/div> <\/div> <\/div> <hr> <table class="table exl-bot-margin" data-ng-if=taskCtrl.roomNights> <thead> <tr> <th><exl-static-text id-code=WEB_CAB_ROOM_NIGHT_DATE allow-html=false>Date<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_CAB_ROOM_NIGHT_QTY allow-html=false># Rooms<\/exl-static-text><\/th> <th data-ng-if="taskCtrl.currentEventState == taskCtrl.events.edit"><exl-static-text id-code=WEB_CAB_ROOM_NIGHT_EDITED_QTY allow-html=false>Edited Quantity<\/exl-static-text><\/th> <\/tr> <\/thead> <tfoot> <tr data-ng-if=taskCtrl.configPolicy.allowDistributionEdit> <td><\/td> <td> <button type=button data-ng-click=taskCtrl.roomNightEventHandler(taskCtrl.events.edit) data-ng-if="taskCtrl.currentEventState != taskCtrl.events.edit" data-ng-disabled=taskCtrl.disableInput> <exl-static-text id-code=WEB_CAB_ROOM_NIGHT_BUTTON_EDIT allow-html=false>Edit<\/exl-static-text> <\/button> <button type=button class=secondary data-ng-click=taskCtrl.roomNightEventHandler(taskCtrl.events.cancel) data-ng-if="taskCtrl.currentEventState == taskCtrl.events.edit" data-ng-disabled=taskCtrl.disableInput> <exl-static-text id-code=WEB_CAB_ROOM_NIGHT_BUTTON_CANCEL allow-html=false>Reset<\/exl-static-text> <\/button> <\/td> <td data-ng-if="taskCtrl.currentEventState == taskCtrl.events.edit"> <button type=button data-ng-click=taskCtrl.roomNightEventHandler(taskCtrl.events.save) data-ng-disabled=taskCtrl.disableInput> <exl-static-text id-code=WEB_CAB_ROOM_NIGHT_BUTTON_SAVE allow-html=false>Save & Update<\/exl-static-text> <\/button> <\/td> <\/tr> <\/tfoot> <tbody> <tr data-ng-repeat="roomNight in taskCtrl.roomNights"> <td>{{roomNight.dayDate | date : \'EEE, MMM d yyyy\'}}<\/td> <td>{{roomNight.quantity}}<\/td> <td data-ng-if="taskCtrl.currentEventState == taskCtrl.events.edit"> <exl-spinner model=roomNight.editedQuantity required=true min=0 max=roomNight.max is-disabled="!taskCtrl.configPolicy.allowDistributionEdit || taskCtrl.disableInput"> <\/exl-spinner> <\/td> <\/tr> <\/tbody> <\/table> <div data-ng-if=taskCtrl.acceptanceRequired()> <hr> <exl-static-text id-code=WEB_CAB_POLICY_AGREEMENT_HEADER> <h2>Cancellation Policy<\/h2> <\/exl-static-text> <p>{{taskCtrl.configPolicy.cancellationAgreement}}<\/p> <p> <label class=inline> <input name=chkAgreement type=checkbox data-ng-model=taskCtrl.agreement> <i class="fa fa-asterisk text-alert-color"><\/i> <exl-static-text id-code=WEB_CAB_POLICY_AGREEMENT_CHECKBOX> <strong>I agree to the cancellation policy<\/strong> <\/exl-static-text> <\/label> <\/p> <\/div> <exl-wizard-nav label-button-next=taskCtrl.labelButtonNext() hide-button-next="taskCtrl.currentEventState == taskCtrl.events.edit" click-button-next=taskCtrl.next() hide-button-dashboard=true always-enable-button-next=true><\/exl-wizard-nav> ');n.put("App/CAB/Views/MinRoomNightsModal.html","<p> <exl-static-text id-code=WEB_MIN_ROOMS_REQUIRED_TEXT_PART1>You have not yet held the minimum number of rooms for the selected main event nights of your stay. The minimum number of rooms is<\/exl-static-text> &nbsp;<strong>{{::modalCtrl.minRooms}}<\/strong>. <\/p> <exl-static-text id-code=WEB_MIN_ROOMS_REQUIRED_TEXT_PART2> <p>You will not be able to make reservations until you have held at least the minimum number of rooms for the main event nights of your stay.<\/p> <p>To hold additional rooms immediately before proceeding click <strong>'Add More'<\/strong>. If you wish to proceed with holding your current room selections and add more later click <strong>'Continue'<\/strong>.<\/p> <\/exl-static-text>");n.put("App/Confirmation/Views/ConfirmationModal.html",'<div class="exl-padding-small exl-bot-margin-small hide-for-print" data-ng-if="modalCtrl.areConfirmationsEnabled && modalCtrl.registrant.confirmationSendTypeCode"> <button type=button class="small dark" data-ng-click=modalCtrl.print($event)> <i class="fa fa-print"><\/i> Print <\/button> <button type=button class="small dark" data-ng-if="modalCtrl.registrant.confirmationSendTypeCode !== \'Print\'" data-ng-click=modalCtrl.sendConfirmation(modalCtrl.registrant)> <i class="fa fa-send"><\/i> Send via {{modalCtrl.registrant.confirmationSendTypeCode}} <\/button> <span data-ng-if=modalCtrl.enableForwardConfirmation> <exl-field-detail item=modalCtrl.forwardEmailFieldDetail profile=modalCtrl.profile><\/exl-field-detail> <button type=button class="small dark" data-ng-click=modalCtrl.forwardConfirmation()> <i class="fa fa-send"><\/i> Forward to Another Email <\/button> <\/span> <\/div> <div class data-ng-bind-html=modalCtrl.content><\/div>');n.put("App/Confirmation/Views/ConfirmationModalFooter.html",'<button class="small secondary" data-ng-click=modalCtrl.close()> Close <\/button>');n.put("App/Confirmation/Views/ConfirmationTask.html",'<exl-static-text id-code=WEB_CONFIRMATION_P1><\/exl-static-text> <div class=panel ng-repeat="person in taskCtrl.persons"> <div class="row collapse"> <div class="medium-8 columns"> <h2 class=exl-no-margin>{{person.firstName}} {{person.lastName}} <small>ID: {{person.registrantId}}<\/small><\/h2> <em>{{person.regTypeDescription}}<\/em> <\/div> <div class="medium-4 columns actionitems"> <div data-ng-show=!taskCtrl.isSelfReg> <ul data-ng-class="{\'small-block-grid-4\': person.passkeyUrl && person.isEngageLive , \'small-block-grid-3\': person.passkeyUrl || person.isEngageLive , \'small-block-grid-2\': !person.passkeyUrl && !person.isEngageLive}"> <li data-ng-if=person.passkeyUrl> <a class=button target=_blank data-ng-href={{person.passkeyUrl}}> <i class="fa fa-external-link"><\/i> <div> <exl-static-text allow-html=false id-code=WEB_CONFIRMATION_BTN_HOTEL_RES> Make Hotel Reservation <\/exl-static-text> <\/div> <\/a> <\/li> <li data-ng-if=person.isEngageLive> <button type=button data-ng-if=!person.isGuest data-exl-confirmation-preview="{registrantId: person.registrantId, scrollToEngageDownload: true}"> <i class="fa fa-mobile"><\/i> <div> <exl-static-text allow-html=false id-code=WEB_CONFIRMATION_BTN_EVENT_APP> Download Event App <\/exl-static-text> <\/div> <\/button> <\/li> <li> <button type=button data-ng-if=!person.isGuest data-exl-confirmation-preview="{registrantId: person.registrantId}"> <i class="fa fa-envelope"><\/i> <div> <exl-static-text allow-html=false id-code=WEB_CONFIRMATION_BTN_VIEW_CONF>View Confirmation<\/exl-static-text> <\/div> <\/button> <\/li> <li> <a class=button target=_blank data-ng-href="{{taskCtrl.registerURL}}&FirstName={{person.firstName}}&LastName={{person.lastName}}&Email={{person.email}}"> <i class="fa fa-external-link"><\/i> <div> <exl-static-text allow-html=false id-code=WEB_CONFIRMATION_BTN_OTHER_CITY_REG> Register for Houston <\/exl-static-text> <\/div> <\/a> <\/li> <\/ul> <\/div> <\/div> <\/div> <\/div> <exl-static-text id-code=WEB_CONFIRMATION_P2><\/exl-static-text> <div class="row exl-top-margin exl-bot-margin"> <div class="medium-12 columns text-center"> <button type=button class=secondary data-ng-click=taskCtrl.signOut()> <exl-static-text allow-html=false id-code=WEB_BUTTON_LOGOFF>Sign Out<\/exl-static-text> <\/button> <button type=button class=transparent data-ng-click=taskCtrl.dashboard()> <exl-static-text allow-html=false id-code=WEB_BUTTON_DASHBOARD><i class="fa fa-home"><\/i> Dashboard<\/exl-static-text> <\/button> <\/div> <\/div> ');n.put("App/Common/Views/AdaDirective.html",'<exl-static-text id-code=WEB_ATT_ADA_P1> <p> <i class="fa fa-2x fa-fw left fa-wheelchair"><\/i>Pursuant to the Americans with Disabilities Act, I require special accommodations at the event location and/or hotel. <em>Please indicate type of accommodations below<\/em>: <\/p> <\/exl-static-text> <label> <input type=checkbox ng-model=ADA.profile.isadaAuditory> Auditory <\/label> <label> <input type=checkbox ng-model=ADA.profile.isadaVisual> Visual <\/label> <label> <input type=checkbox ng-model=ADA.profile.isadaMobile> Mobility <\/label> <p><\/p> <label ng-show=ADA.reg> Event Location Accommodations : <textarea ng-model=ADA.profile.specialAssistNote maxlength=255 exl-char-counter><\/textarea> <\/label> <p><\/p> <label ng-show=ADA.housing> Hotel Accomodations <textarea ng-model=ADA.profile.adaComment maxlength=255 exl-char-counter><\/textarea> <\/label> ');n.put("App/Common/Views/BrowserReqDirective.html","<exl-static-text id-code=WEB_ATT_BROWSER_REQ_P1> <p> You seem to be using a browser we don’t support. For a good experience, please use: <\/p> <ul> <li> IE11 and up <\/li> <li> Safari (latest version) <\/li> <li> Chrome (latest version) <\/li> <li> Firefox (latest version) <\/li> <\/ul> <\/exl-static-text> ");n.put("App/Common/Views/DateDemographicDirective.html","<div> <input type={{DataDemographic.inputType}} class=twochar name=month maxlength=2 placeholder=MM> <span class=text-secondary-color>/<\/span> <input type={{DataDemographic.inputType}} class=twochar name=day maxlength=2 placeholder=DD> <span class=text-secondary-color>/<\/span> <input type={{DataDemographic.inputType}} class=fourchar name=year maxlength=4 placeholder=YYYY> <\/div> ");n.put("App/Common/Views/DatePickerDirective.html",'<div class="row collapse"> <div class="small-10 columns"> <div style="position: relative;">  <input type=date data-ng-model=datePicker.model data-ng-model-options="{timezone: \'UTC\'}" data-ng-required=datePicker.isRequired() name={{datePicker.name}}> <\/div> <\/div> <div class="small-2 columns"> <div class=postfix> <i class="fa fa-calendar"><\/i> <\/div> <\/div> <\/div>');n.put("App/Common/Views/DigiCertSealDirective.html","<div data-ng-if=DigiCert.hasKey> <div id=DigiCertClickID data-language=en_US> <a href=//www.digicert.com/ssl-certificate.htm target=_blank>SSL Certificate<\/a> <\/div> <div class data-ng-bind-html=DigiCert.digiCertScript><\/div> <\/div>");n.put("App/Common/Views/ErrorSummaryDirective.html",'<div ng-if="errors && errors.length" class=input-validation-error> <ul> <li ng-repeat="error in errors" ng-bind=error.text><\/li> <\/ul> <\/div> ');n.put("App/Common/Views/FieldDetailDemographicDirective.html",' <exl-demographic-heading><\/exl-demographic-heading> <exl-static-text id-code="{{::(fieldDetail.item.labelIdCode + \'_PRE\')}}"><\/exl-static-text> <div ng-switch=::fieldDetail.item.fieldTypeCode> <div ng-switch-when=FREE> <exl-date-demographic ng-if="fieldDetail.item.displayTypeCode === \'DATE\'" ng-model=fieldDetail.profile[fieldDetail.item.fieldName] name={{::fieldDetail.item.fieldName}} id={{::fieldDetail.item.fieldName}} ng-required=fieldDetail.item.isRequired data-ng-disabled=fieldDetail.item.isDisabled ng-readonly={{::fieldDetail.item.isReadOnly}}> <\/exl-date-demographic> <input ng-if="fieldDetail.item.displayTypeCode !== \'DATE\'" ng-model=fieldDetail.profile[fieldDetail.item.fieldName] ng-model-options=::fieldDetail.modelOptions name={{::fieldDetail.item.fieldName}} id={{::fieldDetail.item.fieldName}} type={{fieldDetail.item.html5Type}} exl-model-type-converter maxlength={{::fieldDetail.item.maxLength}} ng-minlength=::fieldDetail.item.minLength ng-required=fieldDetail.item.isRequired ng-pattern=::fieldDetail.regEx data-ng-disabled=fieldDetail.item.isDisabled data-exl-placeholder={{::fieldDetail.item.placeHolder}} exl-async-validator=fieldDetail.validationSetupFunctions autocomplete="{{::fieldDetail.item.autoComplete ? \'on\' : \'off\'}}" exl-ignore-type ng-readonly={{::fieldDetail.item.isReadOnly}}> <\/div> <div ng-switch-when=SINGLE> <exl-select-list ng-model=fieldDetail.profile[fieldDetail.item.fieldName] name={{::fieldDetail.item.fieldName}} ng-required=fieldDetail.item.isRequired itemlist=fieldDetail.itemlist selecteditem=fieldDetail.selecteditem title="Select a {{::fieldDetail.item.description}}" modalcss=small gridcolumns={{::fieldDetail.item.displayColumnCount}} hide-filter=true static-text-id="{{::(\'DEMO_\' + fieldDetail.item.fieldName)}}" click-item=fieldDetail.clickItem data-ng-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly" is-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly"> <\/exl-select-list> <\/div> <div ng-switch-when=MULTI> <exl-select-list ng-model=fieldDetail.profile[fieldDetail.item.fieldName] name={{::fieldDetail.item.fieldName}} ng-required=fieldDetail.item.isRequired itemlist=fieldDetail.itemlist selecteditems=fieldDetail.selecteditems title="Select a {{::fieldDetail.item.description}}" modalcss=small gridcolumns={{::fieldDetail.item.displayColumnCount}} hide-filter=true static-text-id="{{::(\'DEMO_\' + fieldDetail.item.fieldName)}}" click-item=fieldDetail.clickItem data-ng-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly" is-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly"> <\/exl-select-list> <\/div> <\/div>   <exl-demographic-other><\/exl-demographic-other> <div ng-if=fieldDetail.formCtrl[fieldDetail.item.fieldName].$touched ng-messages=fieldDetail.formCtrl[fieldDetail.item.fieldName].$error> <div ng-message=required class="alert label small" ng-cloak> {{::fieldDetail.item.description}} is required <\/div> <div ng-message=pattern class="alert label small" ng-cloak> {{::fieldDetail.item.description}} is invalid <\/div> <div ng-message=minlength class="alert label small" ng-cloak> {{::fieldDetail.item.description}} must be at least {{::fieldDetail.item.minLength}} characters <\/div> <\/div> <exl-static-text id-code="{{::(fieldDetail.item.labelIdCode + \'_POST\')}}" additional-label-text="Post Input" associated-field-name={{::fieldDetail.item.fieldName}}><\/exl-static-text> ');n.put("App/Common/Views/FieldDetailDemographicHeading.html",'<i class="fa fa-fw fa-asterisk text-alert-color" ng-show="fieldDetail.item.isRequired && !fieldDetail.profile[fieldDetail.item.fieldName]"><\/i> <i class="fa fa-fw fa-check text-success-color" ng-show=fieldDetail.profile[fieldDetail.item.fieldName]><\/i> <exl-static-text allow-html=false id-code={{::fieldDetail.item.labelIdCode}} additional-label-text="Field Label" associated-field-name={{::fieldDetail.item.fieldName}}> <span ng-bind=::fieldDetail.item.description><\/span> <\/exl-static-text> <span class=answer ng-if="::(fieldDetail.item.displayTypeCode === \'OPEN\' || fieldDetail.item.displayTypeCode === \'CLOSED\')"> <span> <span ng-show=fieldDetail.profile[fieldDetail.item.fieldName]> <small><em><exl-selected-demographics-list field-detail=fieldDetail.item profile=fieldDetail.profile><\/exl-selected-demographics-list><\/em><\/small> <\/span> <\/span> <\/span>');n.put("App/Common/Views/FieldDetailDirective.html",'<div ng-class="{ \'input-validation-error\' : fieldDetail.formCtrl[fieldDetail.item.fieldName].$invalid && fieldDetail.formCtrl[fieldDetail.item.fieldName].$touched }"> <label for={{::fieldDetail.item.fieldName}}> <i class="fa fa-fw fa-asterisk text-alert-color" ng-show=fieldDetail.item.isRequired><\/i> <exl-static-text allow-html=false id-code={{::fieldDetail.item.labelIdCode}} additional-label-text="Field Label" associated-field-name={{::fieldDetail.item.fieldName}} granularity=page> <span data-ng-bind=::fieldDetail.item.description><\/span> <\/exl-static-text> <\/label> <div ng-switch=::fieldDetail.item.fieldTypeCode> <div ng-switch-when=FREE> <exl-date-demographic ng-if="fieldDetail.item.displayTypeCode === \'DATE\'" ng-model=fieldDetail.profile[fieldDetail.item.fieldName] name={{::fieldDetail.item.fieldName}} id={{::fieldDetail.item.fieldName}} ng-required=fieldDetail.item.isRequired data-ng-disabled=fieldDetail.item.isDisabled ng-readonly={{::fieldDetail.item.isReadOnly}}> <\/exl-date-demographic> <input ng-if="fieldDetail.item.displayTypeCode !== \'DATE\'" ng-model=fieldDetail.profile[fieldDetail.item.fieldName] ng-model-options=::fieldDetail.modelOptions name={{::fieldDetail.item.fieldName}} id={{::fieldDetail.item.fieldName}} type={{fieldDetail.item.html5Type}} exl-model-type-converter maxlength={{::fieldDetail.item.maxLength}} ng-minlength=::fieldDetail.item.minLength ng-required=fieldDetail.item.isRequired ng-pattern=::fieldDetail.regEx data-ng-disabled=fieldDetail.item.isDisabled data-exl-placeholder={{::fieldDetail.item.placeHolder}} exl-async-validator=fieldDetail.validationSetupFunctions autocomplete="{{::fieldDetail.item.autoComplete ? \'on\' : \'off\'}}" exl-ignore-type ng-readonly={{::fieldDetail.item.isReadOnly}}> <\/div> <div ng-switch-when=SINGLE> <exl-select-list-modal ng-model=fieldDetail.profile[fieldDetail.item.fieldName] name={{::fieldDetail.item.fieldName}} ng-required=fieldDetail.item.isRequired itemlist=fieldDetail.itemlist selecteditem=fieldDetail.selecteditem title="Select a {{::fieldDetail.item.description}}" modalcss=medium gridcolumns=3 tabindex=-1 data-ng-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly" is-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly" exl-async-validator=fieldDetail.validationSetupFunctions> <\/exl-select-list-modal> <\/div> <div ng-switch-when=MULTI> <exl-select-list-modal ng-model=fieldDetail.profile[fieldDetail.item.fieldName] name={{::fieldDetail.item.fieldName}} ng-required=fieldDetail.item.isRequired itemlist=fieldDetail.itemlist selecteditems=fieldDetail.selecteditems title="Select a {{::fieldDetail.item.description}}" modalcss=medium gridcolumns=3 tabindex=-1 data-ng-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly" is-disabled="fieldDetail.item.isDisabled || fieldDetail.item.isReadOnly" exl-async-validator=fieldDetail.validationSetupFunctions> <\/exl-select-list-modal> <\/div> <\/div> <div ng-if=fieldDetail.formCtrl[fieldDetail.item.fieldName].$touched ng-messages=fieldDetail.formCtrl[fieldDetail.item.fieldName].$error> <div class="alert label small" ng-message=required> <span ng-bind="::fieldDetail.item.description + \' is required\'"><\/span> <\/div> <div class="alert label small" ng-message=pattern> <span ng-bind="::fieldDetail.item.description + \' is invalid\'"><\/span> <\/div> <div class="alert label small" ng-message=minlength> <span ng-bind="::fieldDetail.item.description + \' must be at least \' + fieldDetail.item.minLength + \' characters\'"><\/span> <\/div> <div class="alert label small" ng-message=maxlength> <span ng-bind="::fieldDetail.item.description + \' can be no more than \' + fieldDetail.item.maxLength + \' characters\'"><\/span> <\/div> <div class="alert label small" ng-repeat="async in fieldDetail.asyncValidationMessages" ng-message={{async.key}}> <span ng-bind=async.message><\/span> <\/div>  <div class="alert label small" ng-message=validDate> <span ng-bind="::fieldDetail.item.description + \' must be in MM/DD/YYYY format\'"><\/span> <\/div> <\/div> <exl-static-text id-code="{{::(fieldDetail.item.labelIdCode + \'_POST\')}}" additional-label-text="Post Input" associated-field-name={{::fieldDetail.item.fieldName}}><\/exl-static-text> <\/div>');n.put("App/Common/Views/FilterDirective.html",' <div class=row> <div class="medium-10 small-8 columns"> <span class=exl-criteria> <span data-ng-repeat="searchTerm in filterCtrl.searchTerms" data-ng-class=searchTerm.class data-ng-click=filterCtrl.searchTermsClick()> {{::searchTerm.text}}: {{searchTerm.value}} <\/span> <\/span> <ng-transclude>  <\/ng-transclude> <\/div> <div class="medium-2 small-4 columns text-right" data-ng-if=::!filterCtrl.hideFilterButton> <button type=button class="empty small tight" data-ng-click=filterCtrl.open() data-ng-disabled=filterCtrl.isDisabled> <i class="fa fa-lg fa-filter"><\/i><span class=hide-for-small> Filter<\/span> <\/button> <\/div> <\/div> ');n.put("App/Common/Views/FilterModal.html",'<div> <div data-ng-repeat="option in modalCtrl.options"> <label>{{option.title}}<\/label> <div data-ng-switch=option.type> <div data-ng-switch-when=text> <input data-ng-model=option.tempModel maxlength={{option.params().maxLength}}> <\/div> <div data-ng-switch-when=number> <exl-spinner model=option.tempModel min=option.params().min max=option.params().max step=option.params().step required=option.params().required><\/exl-spinner> <\/div> <div data-ng-switch-when=bool> <label> <input type=checkbox data-ng-model=option.tempModel> {{::option.params().label}} <\/label> <\/div> <div data-ng-switch-when=facilityFeature> <span data-ng-repeat="opt in option.options" class=exl-right-margin> <exl-facility-feature-icon code=opt.params().code desc=opt.params().desc item-list=opt.params().itemList><\/exl-facility-feature-icon> <input type=checkbox data-ng-model=opt.tempModel> <\/span> <\/div> <\/div> <hr> <\/div> <\/div> ');n.put("App/Common/Views/FilterModalFooter.html",'<button type=button class=secondary data-ng-click="modalCtrl.filterOptionFunc(\'clear\')"> <i class="fa fa-eraser"><\/i> Clear <\/button> <button type=button class data-ng-click="modalCtrl.close(\'apply\')"> <i class="fa fa-filter"><\/i> Apply <\/button>');n.put("App/Common/Views/FilterOptionDirective.html","<span class=exl-tags>  <button type=button class=exl-tag data-ng-click=filterOptionCtrl.reset() data-ng-if=filterOptionCtrl.isDirty()> {{::filterOptionCtrl.title}}: {{filterOptionCtrl.model}} <\/button> <\/span>");n.put("App/Common/Views/HeaderInterchangeMedium.html",'<exl-static-text id-code=WEB_HEADER> <img src=RefFiles/Header61.png alt="Banner Image"> <\/exl-static-text>');n.put("App/Common/Views/HeaderInterchangeSmall.html",'<exl-static-text id-code=WEB_HEADER_SMALL> <img src=RefFiles/Header61-small.png alt="Banner Image"> <\/exl-static-text>');n.put("App/Common/Views/ItemsPerPageDirective.html",'<div> <button class="small empty" dropdown-toggle=#page-size> {{::itemsPerPageCtrl.title}}{{itemsPerPageCtrl.itemsPerPage}} <i class="fa fa-caret-down"><\/i> <\/button> <ul id=page-size class=f-dropdown> <li data-ng-repeat="step in ::itemsPerPageCtrl.stepList"> <a href target=_blank data-ng-click="itemsPerPageCtrl.itemsPerPage = step.itemsPerPage">{{step.itemsPerPage}}<\/a> <\/li> <\/ul> <\/div> ');n.put("App/Common/Views/LoadingIndicatorDirective.html",'<h2 class=text-center>  <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Loading, please wait... <\/h2>');n.put("App/Common/Views/MarketingCodeDirective.html",'<div class=row> <div class="columns large-6 medium-6 small-12"> <div ng-class="{ \'input-validation-error\' : MarketingCode.formCtrl.marketingCode.$invalid && MarketingCode.formCtrl.marketingCode.$touched }"> <exl-static-text id-code=WEB_ATT_MKTCODE_P1><\/exl-static-text>  <exl-field-detail item=MarketingCode.detail profile=MarketingCode.profile async-validation=MarketingCode.marketingCodeValidators model-options={debounce:1000}><\/exl-field-detail> <span ng-if="MarketingCode.profile.currentMarketingCodes && MarketingCode.profile.currentMarketingCodes.length > 0">Applied Codes: <span>{{::MarketingCode.profile.currentMarketingCodes.join(\', \')}}<\/span><\/span> <\/div> <\/div> <\/div>');n.put("App/Common/Views/ModalTemplate.html",'<ng-form name=frmModal role=dialog> <exl-static-text-admin><\/exl-static-text-admin> <header> <h2> <i data-ng-if=::modalCtrl.iconClass data-ng-class=::modalCtrl.iconClass><\/i> {{modalCtrl.title}} <small data-ng-if=::modalCtrl.smallTitle data-ng-bind=::modalCtrl.smallTitle><\/small> <\/h2> <button class="close-reveal-modal empty" aria-label=close data-ng-click=modalCtrl.dismiss()> <i class="fa fa-times"><\/i> <\/button> <\/header> <main data-ng-if=modalCtrl.templates.body class=exl-gutter-wrap-lr> <exl-template content={{modalCtrl.templates.body}}><\/exl-template> <\/main> <footer class="footer text-right" data-ng-if=modalCtrl.templates.footer> <exl-template content={{modalCtrl.templates.footer}}><\/exl-template> <\/footer> <\/ng-form>');n.put("App/Common/Views/PasswordDirective.html",'<div class=row> <div class="small-7 columns"> <exl-field-detail item=Password.detail profile=Password.profile><\/exl-field-detail> <\/div> <div class="small-5 columns"> <label class=exl-top-padding> <input type=checkbox ng-model=Password.modelShowPwd ng-change=Password.changeType()> <small>Show Password<\/small><\/label> <\/div> <\/div> ');n.put("App/Common/Views/PasswordModal.html",'<form name=formPassword novalidate ng-init=PasswordModal.setFormScope(this)> <exl-password profile=PasswordModal.profile field-name=password label="Current Password" auto-complete=false><\/exl-password> <exl-password profile=PasswordModal.profile field-name=newPassword label="New Password" auto-complete=false><\/exl-password> <p><\/p> <span class="alert-box warning ng-hide" ng-show=modalCtrl.showWait>Please wait while we change your password...<\/span> <\/form> ');n.put("App/Common/Views/PaymentDirective.html",' <div data-ng-show="Payment.paymentMethodList.length > 1"> <i class="fa fa-asterisk text-alert-color"><\/i> <exl-static-text id-code=WEB_PAY_PAYMENT_METHOD> How do you want to pay? <\/exl-static-text> <exl-select-list data-ng-model=Payment.paymentMethod name=selectPaymentMethod data-ng-required="Payment.paymentMethodList.length > 1" itemlist=Payment.paymentMethodList selecteditem=Payment.paymentMethodSelectListItem title="Select a Payment Method" modalcss=small gridcolumns=1 hide-filter=true static-text-id=WEB_ATT_PAYMENT_PAYMENTMETHOD click-item=Payment.paymentMethodChanged data-ng-disabled=false> <\/exl-select-list> <\/div> <div data-ng-show="Payment.paymentMethod === \'CK\'"> <exl-static-text id-code=WEB_PAY_CASH_CUSTOM_HEADER> <h2>Payment by Check<\/h2> <\/exl-static-text> <exl-static-text id-code=WEB_PAY_CASH_CUSTOM> <p>Add Static Text Here WEB_PAY_CASH_CUSTOM<\/p> <\/exl-static-text> <\/div> <div data-ng-show=Payment.isSurplusMethod()> <exl-static-text id-code=WEB_PAY_SURPLUS_CUSTOM> <p>Add Static Text Here WEB_PAY_SURPLUS_CUSTOM<\/p> <\/exl-static-text> <label>Payment Type<\/label> {{Payment.surplus.paymentTypeDesc}} <br> <label>Account Number<\/label> {{Payment.surplus.accountNumber}} <br> <label>Available Funds<\/label> {{Payment.surplus.availableFunds}} <br> <label>Payment Amount<\/label> {{Payment.selectedAmount | currency }} <br> <\/div> <div data-ng-show="Payment.paymentMethod === \'CC\'"> <ul class="medium-block-grid-8 small-block-grid-6"> <li ng-repeat="payType in Payment.payTypes"><img ng-src={{payType.src}}><\/li> <\/ul> <div data-ng-if=!Payment.isBlockGuarantee> <exl-static-text id-code=WEB_ATT_PAYMENT_P1> <p> Selecting "Pay Now" below will redirect you to our SecuRemit Payment site where you may enter your credit card information. Completing the payment process will return you to this website. <\/p> <\/exl-static-text> <\/div> <div data-ng-if=Payment.isBlockGuarantee> <exl-static-text id-code=WEB_BLOCK_PAYMENT_P1> <p> Selecting "Guarantee My Block" below will redirect you to our SecuRemit Payment site where you may enter your credit card information. Completing the payment process will return you to this website. <\/p> <\/exl-static-text> <\/div> <div class=exl-top-margin> <label> <input type=checkbox ng-model=Payment.allow ng-change=Payment.changed()> <i class="fa fa-asterisk text-alert-color"><\/i> <exl-static-text id-code=WEB_ATT_PAYMENT_P2> <strong>I authorize [Company] to charge my credit card for the total amount above.<strong><\/strong><\/strong><\/exl-static-text> <\/label> <\/div> <exl-digi-cert-seal data-ng-if=!Payment.isSelfReg><\/exl-digi-cert-seal> <\/div> ');n.put("App/Common/Views/RegistrantLikeDirective.html",'<button class=empty data-ng-click=registrantLikeCtrl.toggle($event) data-ng-if=::registrantLikeCtrl.isVisible data-ng-disabled=registrantLikeCtrl.isDisabled> <small data-ng-if=::registrantLikeCtrl.buttonLabel data-ng-bind=::registrantLikeCtrl.buttonLabel><\/small> <i class="exl-favorite exl-lg" data-ng-class="{\'has-likes\': registrantLikeCtrl.isLiked}"><\/i> <\/button>');n.put("App/Common/Views/RegistrantLikeTotalsDirective.html","<button class=radius data-ng-if=!RegistrantLikeTotals.dashboard data-ng-class=\"{'has-likes' : RegistrantLikeTotals.likeTotal, 'no-likes' : !RegistrantLikeTotals.likeTotal, 'active' : RegistrantLikeTotals.likeActive }\" data-ng-click=RegistrantLikeTotals.click($event)> <i class=exl-favorite><\/i> <div class>Favorites<\/div>  <\/button> <span data-ng-if=\"RegistrantLikeTotals.dashboard && RegistrantLikeTotals.likeTotal\" data-ng-click=RegistrantLikeTotals.click($event) data-tooltip={{RegistrantLikeTotals.likeTotal}}> Favorites <i class=exl-favorite><\/i> <\/span>");n.put("App/Common/Views/SelectListDirective.html",' <div class=row ng-class="{\'notranslate\': !SelectList.hideFilter && SelectList.itemlist.length > SelectList.hideLimit}"> <div class="columns end"> <label ng-if=SelectList.label ng-bind=SelectList.label><\/label> <div class="exl-search-box medium-6 small-12" data-ng-hide="SelectList.hideFilter || SelectList.itemlist.length <= SelectList.hideLimit"> <div class=fa-wrapper><i class="fa fa-search"><\/i><\/div> <div class=row> <div class="small-12 columns"> <input type=search ng-model=SelectList.listfilter placeholder="Type to search" name=selectListInputFilter> <span data-tooltip=Clear class=clear-search> <button type=button class="empty tight round" data-ng-disabled=!SelectList.listfilter data-ng-click="SelectList.listfilter = \'\'"> <i class="fa fa-remove"><\/i> <\/button> <\/span> <\/div> <\/div> <\/div> <ul class="select-list small-block-grid-1" ng-class="::(\'medium-block-grid-\' + SelectList.gridcolumns)"> <li ng-repeat="item in SelectList.itemlist | filter:SelectList.listfilter as filterresults track by item.value" tabindex=-1 exlvalue={{::item.value}}> <exl-static-text ng-if=::SelectList.staticTextId id-code="{{::(SelectList.staticTextId + \'_PRE_\' + item.value)}}"><\/exl-static-text> <button type=button class=empty ng-click="SelectList.clickitem(item, $event)" data-ng-disabled=SelectList.isDisabled> <i class=fa ng-class="::(SelectList.isMulti ? \'fa-square-o\' : \'fa-circle-thin\')"><\/i> <div>{{::item.text}}<\/div> <\/button> <exl-static-text ng-if=::SelectList.staticTextId id-code="{{::(SelectList.staticTextId + \'_POST_\' + item.value)}}"><\/exl-static-text> <\/li> <\/ul> <\/div> <\/div> ');n.put("App/Common/Views/ShoppingCartDirective.html",'<div class=inner-content> <exl-static-text id-code=WEB_ATT_SHOPPING_CART_HEADER><h2><\/h2><\/exl-static-text> <exl-static-text id-code=WEB_ATT_SHOPPING_CART_P1><\/exl-static-text> <p class="alert-box warning ng-hide" ng-show=ShoppingCart.geShowItem>{{ShoppingCart.geShowItem.description}} will be added to your cart once you have selected your registration type<\/p> <table class="table financial stretch exl-bot-margin"> <thead> <tr> <td> <h3>{{ShoppingCart.registrant.firstName + \' \' + ShoppingCart.registrant.lastName + (ShoppingCart.registrant.lastName.slice(-1).toLowerCase() === \'s\' ? "\'" : "\'s")}} Cart<\/h3> <\/td>  <td colspan=2 class=text-right> <button type=button class=empty ng-click=ShoppingCart.navShowItems() data-ng-if="!ShoppingCart.housingOnly && ShoppingCart.hasShowItemTask && ShoppingCart.registrant.regTypeCode" data-ng-disabled=!ShoppingCart.isRegOpen> <i class="fa fa-lg fa-plus-circle text-primary-color"><\/i> Add Items <\/button> <\/td> <\/tr> <\/thead> <tbody class=cart-items ng-repeat="item in ShoppingCart.showItemsSorted"> <tr ng-if="item.showItemTypeCode === \'REG\'"> <td> <strong> <a ng-click=ShoppingCart.nav(item)>{{item.showItemDescription}} <small>({{ ShoppingCart.hideCodeInRegTypeControl ? item.regTypeDescription : item.regTypeCode + \' - \' + item.regTypeDescription}})<\/small> <i class="fa fa-pencil"><\/i><\/a> <\/strong> <\/td> <td class="highlight text-right" ng-show=!ShoppingCart.hideRegFees>{{item.totalAmount | currency}}<\/td> <td class=text-right><\/td> <\/tr> <tr ng-if="item.showItemTypeCode === \'GUE\'"> <td> <div class="row collapse"> <div class="medium-6 columns"> <strong> <button type=button class=empty ng-click=ShoppingCart.nav(item) data-ng-disabled=!ShoppingCart.isRegOpen> {{::ShoppingCart.guestTerm}} <i class="fa fa-pencil"><\/i> <\/button> <\/strong> <\/div> <div class="medium-6 columns"> <div class="row collapse" ng-show=!ShoppingCart.hideShowItemFees> <div class="small-6 text-right columns">{{item.unitQuantity}}<\/div> <div class="small-6 columns">@ {{item.unitAmount | currency}}<\/div> <\/div> <\/div> <\/div> <\/td> <td class="highlight text-right"><span ng-show=!ShoppingCart.hideShowItemFees>{{item.totalAmount | currency}}<\/span><\/td> <td class=text-right><\/td> <\/tr> <tr ng-if="item.showItemTypeCode && item.showItemTypeCode !== \'REG\' && item.showItemTypeCode !== \'GUE\'" ng-class="{ \'package\': item.parentLinkId || item.showItemTypeCode === \'PKG\', \'package-child\': item.parentLinkId }"> <td> <div class="row collapse"> <div class="medium-6 columns exl-bot-padding-small"> <strong>{{item.showItemDescription}}<\/strong> <exl-show-item-demographic show-item=item registrant=registrant><\/exl-show-item-demographic> <\/div> <div class="medium-6 columns"> <div class="row collapse"> <div class="small-6 text-right columns"> <button type=button class=empty ng-show="item.maxQtyPerReg != 1 && item.showItemTypeCode !== \'PKG\' && item.includeTypeCode !== \'PKG\'" ng-click="ShoppingCart.processShowItem(item, item.unitQuantity-1)" ng-disabled="ShoppingCart.isProcessing || item.unitQuantity === 1"> <i class="fa fa-lg fa-minus-circle text-primary-color"> <span class=exl-screen-reader-text>Remove Item<\/span> <\/i> <\/button> {{item.unitQuantity}} <button type=button class=empty ng-show="item.maxQtyPerReg != 1 && item.showItemTypeCode !== \'PKG\' && item.includeTypeCode !== \'PKG\'" ng-click="ShoppingCart.processShowItem(item, item.unitQuantity+1)" ng-disabled="ShoppingCart.isProcessing || (item.unitQuantity >= item.maxQtyPerReg && item.maxQtyPerReg > 0)"> <i class="fa fa-lg fa-plus-circle text-primary-color"> <span class=exl-screen-reader-text>Add Item<\/span> <\/i> <\/button> <\/div> <div class="small-6 columns" ng-show=!ShoppingCart.hideShowItemFees>&nbsp;@ {{item.unitAmount | currency}}<\/div> <\/div> <\/div> <\/div> <\/td> <td class="highlight text-right"><span ng-show=!ShoppingCart.hideShowItemFees>{{item.totalAmount | currency}}<\/span><\/td> <td class=text-right> <button class=empty ng-click="ShoppingCart.processShowItem(item, 0, true)" ng-disabled="ShoppingCart.isProcessing || item.includeTypeCode === \'PKG\'"> <i class="fa fa-trash fa-lg"><\/i> <\/button> <\/td> <\/tr> <\/tbody> <tbody ng-show="(ShoppingCart.reservations | filter: {isCancelled: \'!true\'}).length"> <tr> <td> <h3><exl-static-text id-code=WEB_ATT_SHOPPING_CART_INP_RESERVATIONS allow-html=false><\/exl-static-text><\/h3> <\/td> <td class=highlight><\/td> <td><\/td> <\/tr> <\/tbody> <tbody class=cart-items ng-repeat="item in ShoppingCart.reservations | filter: {isCancelled: \'!true\'} | orderBy: \'hotelItemName\'"> <tr> <td> <strong><a ng-click=ShoppingCart.navRoom(item)>{{item.hotelItemName}} <i class="fa fa-pencil"><\/i><\/a><\/strong> <div> <em> {{item.occName}} <br> <exl-room-nights-display reservation=item><\/exl-room-nights-display> <br> {{item.categoryName}} <\/em> <\/div> <\/td> <td class="highlight text-right"> <span data-ng-if=!ShoppingCart.hideReservationFees> <span data-ng-if=!item.isccg> {{item.depositAmt | currency}} <\/span> <a data-ng-if=item.isccg data-tooltip="The provided credit card will be used to guarantee your hotel reservation(s)" tooltip-placement=bottom data-tooltip-trigger=click> <i class="fa fa-credit-card"><\/i> CCG Required <\/a> <\/span> <\/td> <td class=text-right>  <a data-exl-room-cancel=item><i class="fa fa-trash fa-lg"><\/i><\/a> <\/td> <\/tr> <\/tbody> <tfoot ng-show="(ShoppingCart.balance.regBalance > 0 || ShoppingCart.balance.housingBalance > 0 || ShoppingCart.balance.isccg) && !(ShoppingCart.hideBalance)"> <tr class="xl-no-borders xl-thick-top-border"> <td> <h2 class=text-right ng-show="ShoppingCart.balance.regBalance > 0 && ShoppingCart.balance.isccg">Balance Due &amp; Confirm Room(s)<\/h2> <h2 class=text-right ng-show="ShoppingCart.balance.regBalance === 0 && ShoppingCart.balance.isccg">Confirm Room(s)<\/h2> <h2 class=text-right ng-show=!ShoppingCart.balance.isccg>Balance Due<\/h2> <\/td> <td class=background-secondary-color-light> <h1 class="text-alert-color text-right"> <span data-ng-if="ShoppingCart.balance.totalBalanceDue > 0 || !ShoppingCart.balance.isccg"> {{ShoppingCart.balance.totalBalanceDue | currency}} <\/span> <span data-ng-if="ShoppingCart.balance.totalBalanceDue > 0 && ShoppingCart.balance.isccg"> + <\/span> <span data-ng-if=ShoppingCart.balance.isccg data-tooltip="Credit Card Guarantee" tooltip-placement=bottom> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/h1> <\/td> <td><\/td> <\/tr> <\/tfoot> <\/table> <\/div> <accordion ng-if=ShoppingCart.showItemInfo.showItems.length> <accordion-group class=exl-top-margin heading="My Favorites" is-open="ShoppingCart.showItemInfo.showItems.length <= 10"> <exl-static-text id-code=SHOPPING_CART_SHOWITEM_LIKES_NO_REG ng-hide="ShoppingCart.registrant && ShoppingCart.registrant.regTypeCode">Please register to purchase<\/exl-static-text> <exl-static-text id-code=SHOPPING_CART_SHOWITEM_LIKES_P1><\/exl-static-text> <table class="table itemtable stretch"> <tr ng-repeat="showItem in ShoppingCart.showItemInfo.showItems track by showItem.showItemTreeId + showItem.showItemCode" exl-show-item-row show-item=showItem settings=ShoppingCart.showItemInfo.settings enableshowdetail=false registrant=ShoppingCart.registrant pricing-profile=ShoppingCart.pricingProfile date-list=ShoppingCart.showItemInfo.dateList hide-show-item-fees=ShoppingCart.showItemInfo.settings.hideShowItemFees enable-likes=ShoppingCart.showItemInfo.settings.enableLikes><\/tr> <\/table> <\/accordion-group> <\/accordion> ');n.put("App/Common/Views/ShoppingCartIconDirective.html",'<button class=empty ng-click=ShoppingCartIcon.click() ng-show="(ShoppingCartIcon.reg || ShoppingCartIcon.isGroupFlow) && ShoppingCartIcon.isCartTask"> <i class="fa fa-lg fa-shopping-cart"><\/i><span class=show-for-medium-up> Cart<\/span> <sup class=badge ng-if=ShoppingCartIcon.itemINPCount> {{ShoppingCartIcon.itemINPCount}} <\/sup> <i class="fa fa-money text-alert-color" data-tooltip={{ShoppingCartIcon.balanceDueText}} data-tooltip-placement=bottom data-ng-if=ShoppingCartIcon.groupBookingBalanceDue> <span class=exl-screen-reader-text>Balance Due<\/span> <\/i> <\/button>');n.put("App/Common/Views/ShoppingCartModal.html",'<div data-ng-if=!modalCtrl.isGroupCart> <span ng-if="!modalCtrl.itemINPCount && !modalCtrl.hasLikes">There are no items in your cart.<\/span> <exl-shopping-cart ng-if="modalCtrl.itemINPCount || modalCtrl.hasLikes"><\/exl-shopping-cart> <\/div> <div data-ng-if=modalCtrl.isGroupCart> <span data-ng-if=!modalCtrl.cart>There are no items in your cart.<\/span> <table data-ng-if=modalCtrl.cart class="table financial stretch"> <thead> <tr> <th colspan=2 class=background-secondary-color> <h3><exl-static-text id-code=WEB_GROUP_SHOPPING_CART_HEADER allow-html=false>Payments Due<\/exl-static-text><\/h3> <\/th> <\/tr> <\/thead> <tbody class=cart-items>  <tr data-ng-if="modalCtrl.cart.balance.regBalance > 0"> <td> <h3> <exl-static-text id-code=WEB_GROUP_SHOPPING_CART_REGISTRATION_DUE_HEADER allow-html=false>Registration Payment Due<\/exl-static-text> <\/h3> <\/td> <td class=highlight><h3 class=text-right>{{ modalCtrl.cart.balance.regBalance | currency }}<\/h3><\/td> <\/tr>  <tr data-ng-if="modalCtrl.cart.balance.housingBalance > 0 || modalCtrl.cart.balance.isccg"> <td> <h3> <exl-static-text id-code=WEB_GROUP_SHOPPING_CART_RESERVATION_DUE_HEADER allow-html=false>Room(s) Payment Due<\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class=text-right> <span data-ng-if="modalCtrl.cart.balance.housingBalance > 0 || !modalCtrl.cart.balance.isccg"> {{modalCtrl.cart.balance.housingBalance | currency}} <\/span> <span data-ng-if="modalCtrl.cart.balance.housingBalance > 0 && modalCtrl.cart.balance.isccg"> + <\/span> <span data-ng-if=modalCtrl.cart.balance.isccg data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/h3> <\/td> <\/tr> <\/tbody> <tfoot>  <tr class="xl-no-borders xl-thick-top-border"> <td> <h2 class=text-right data-ng-if=!modalCtrl.cart.balance.isccg> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BALANCE_DUE_NO_CCG_HEADER allow-html=false>Balance Due<\/exl-static-text> <\/h2> <h2 class=text-right data-ng-if="modalCtrl.cart.balance.totalBalanceDue > 0 && modalCtrl.cart.balance.isccg"> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BALANCE_DUE_WITH_CCG_HEADER allow-html=false>Balance Due &amp; Confirm Room(s)<\/exl-static-text> <\/h2> <h2 class=text-right data-ng-if="modalCtrl.cart.balance.totalBalanceDue === 0 && modalCtrl.cart.balance.isccg"> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BALANCE_ONLY_CCG_HEADER allow-html=false>Confirm Room(s)<\/exl-static-text> <\/h2> <\/td> <td class=background-secondary-color-light> <h1 class="text-right text-alert-color"> <span data-ng-if="modalCtrl.cart.balance.totalBalanceDue > 0 || !modalCtrl.cart.balance.isccg"> {{modalCtrl.cart.balance.totalBalanceDue | currency}} <\/span> <span data-ng-if="modalCtrl.cart.balance.totalBalanceDue > 0 && modalCtrl.cart.balance.isccg"> + <\/span> <span data-ng-if=modalCtrl.cart.balance.isccg data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/h1> <\/td> <\/tr> <\/tfoot> <\/table> <\/div> ');n.put("App/Common/Views/SocialNetworkSignInDirective.html",'<button type=button data-ng-click=socialNetworkSignIn.signInFacebook() ng-disabled=socialNetworkSignIn.signedIn> <i class="fa fa-facebook-official"><\/i> <exl-static-text id-code=BUTTON_SIGNIN_FACEBOOK allow-html=false ng-if=!socialNetworkSignIn.signedIn>Sign in with Facebook<\/exl-static-text> <exl-static-text id-code=BUTTON_SIGNEDIN_FACEBOOK allow-html=false ng-if=socialNetworkSignIn.signedIn>You are signed in with Facebook<\/exl-static-text> <\/button> ');n.put("App/Common/Views/SpinnerDirective.html",'<div class=exl-spinner> <button type=button class=hide>  <\/button> <button type=button class="transparent fa fa-lg fa-minus-circle text-primary-color" data-ng-click=spinnerCtrl.decrement() data-ng-disabled=spinnerCtrl.isDisableDecrement() data-ng-mousedown=spinnerCtrl.holdDecrement() data-ng-mouseup=spinnerCtrl.releaseDecrement()><span class=exl-screen-reader-text>Remove Item<\/span><\/button> <input type=number data-ng-model=spinnerCtrl.model data-ng-required=spinnerCtrl.required data-ng-blur=spinnerCtrl.change() data-ng-disabled=spinnerCtrl.isDisabled() name={{spinnerCtrl.name}}> <button type=button class="transparent fa fa-lg fa-plus-circle text-primary-color" data-ng-click=spinnerCtrl.increment() data-ng-disabled=spinnerCtrl.isDisableIncrement() data-ng-mousedown=spinnerCtrl.holdIncrement() data-ng-mouseup=spinnerCtrl.releaseIncrement()><span class=exl-screen-reader-text>Add Item<\/span><\/button> <\/div>');n.put("App/Common/Views/SubmitButtonDirective.html",'<button type=button data-ng-class="submitButton.class || \'dark exl-bot-margin-small\'" data-ng-click=submitButton.clickButtonFn() data-ng-disabled="submitButton.disableButtonFn() || submitButton.showSpinner" data-ng-hide=submitButton.hideButtonFn()> <ng-transclude><\/ng-transclude> <i data-ng-show=submitButton.showSpinner class="fa fa-spinner fa-spin ng-hide"><\/i> <\/button>');n.put("App/Common/Views/TimePickerDirective.html",'<div class="row collapse"> <div class="small-10 columns"> <div style="position: relative;">  <input type=text data-ng-model=timePicker.model data-ng-model-options="{timezone: \'UTC\'}" data-ng-required=timePicker.isRequired() name={{timePicker.name}}> <\/div> <\/div> <div class="small-2 columns"> <div class=postfix> <i class="fa fa-clock-o"><\/i> <\/div> <\/div> <\/div>');n.put("App/Common/Views/UnsavedChangesWarning.html","<div> You have unsaved changes which will be lost if you continue. <\/div> <div> Do you wish to continue? <\/div> ");n.put("App/Common/Views/WizardNavDirective.html",' <div data-ng-if=!wizardNav.isSelfRegLayout> <div class="exl-top-margin exl-bot-margin"> <div class=row> <div class="columns text-center"> <exl-submit-button class="dark exl-top-margin exl-bot-margin-tiny large-6 medium-8 small-10" click-button=wizardNav.promote() disable-button=wizardNav.disablePromote() hide-button=wizardNav.hideButtonNext()> {{wizardNav.labelButtonNext() || wizardNav.defaultButtonNextText}} <\/exl-submit-button> <\/div> <\/div> <div class=row> <div class="columns text-center"> <button type=button class="small large-3 medium-4 small-5" data-ng-click=wizardNav.demote() data-ng-disabled=wizardNav.disableDemote() data-ng-hide=wizardNav.hideButtonBack()> <i class="fa fa-fw fa-arrow-left"><\/i> <span data-ng-bind="wizardNav.labelButtonBack() || \'Back\'"><\/span> <\/button> <a class="button large-3 medium-4 small-5 transparent" data-ng-click=wizardNav.goToDashboard() data-ng-hide="!wizardNav.taskDashboard || wizardNav.hideButtonDashboard()"> <i class="fa fa-fw fa-home"><\/i> <span data-ng-bind=::wizardNav.taskDashboard.taskDisplayName><\/span> <\/a> <\/div> <\/div> <\/div> <\/div>  <div data-ng-if=wizardNav.isSelfRegLayout> <div class=fixedNext> <exl-submit-button class=transparent click-button=wizardNav.promote() disable-button=wizardNav.disablePromote() hide-button=wizardNav.hideButtonNext()> <i class="fa fa-chevron-right"><\/i> <\/exl-submit-button> <\/div> <div class=fixedBack> <button type=button class=transparent data-ng-click=wizardNav.demote() data-ng-disabled=wizardNav.disableDemote() data-ng-hide=wizardNav.hideButtonBack()> <i class="fa fa-chevron-left"><\/i> <\/button> <\/div> <\/div> ');n.put("App/Common/Views/WizardSubNavDirective.html",'<div class=row> <div class="small-12 columns"> <dl class=sub-nav> <dd data-ng-repeat="task in wizardSubNavCtrl.taskList" data-ng-class="{ \'active\' : wizardSubNavCtrl.isCurrentTask(task) }"> <a> <exl-static-text allow-html=false id-code="WEB_WIZARD_SUB_NAV_{{task.taskInternalName | uppercase}}">{{task.taskDisplayName}}<\/exl-static-text> <\/a> <\/dd> <\/dl> <\/div> <\/div>');n.put("App/Common/Views/WizardTaskLayoutDirective.html",'<h2 class=text-center ng-hide=::WizardTaskLayout.isLoaded> <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Loading, please wait... <\/h2>  <div class=row ng-repeat="row in WizardTaskLayout.data" ng-show=::WizardTaskLayout.isLoaded> <div ng-show=WizardTaskLayout.checkRowVisibility(row)> <div ng-class="::\'medium-\' + col.colSize + \' columns\'" ng-repeat="col in ::row"> <div ng-if=::WizardTaskLayout.summary> <div ng-switch=::col.tableName> <div ng-switch-when=Registrant> <label ng-bind=::col.description><\/label> <div class=formvalue ng-bind-html="WizardTaskLayout.profile[col.fieldName] ? WizardTaskLayout.profile[col.fieldName] : \'<em>Not Answered<em>\'"><\/div> <\/div> <div ng-switch-when=RegExt> <div ng-if=::col.isPick> <label ng-bind=::col.description><\/label> <exl-selected-demographics-list class=formvalue field-detail=::col profile=WizardTaskLayout.profile.demographics><\/exl-selected-demographics-list> <\/div> <div ng-if=::!col.isPick> <label ng-bind=::col.description><\/label> <div class=formvalue ng-bind-html="WizardTaskLayout.profile.demographics[col.fieldName] ? WizardTaskLayout.profile.demographics[col.fieldName] : \'<em>Not Answered<em>\'"><\/div> <\/div> <\/div> <\/div> <\/div> <div ng-if=!WizardTaskLayout.summary> <div ng-switch=col.displayTypeCode> <div ng-switch-when=STATIC_TEXT> <div ng-if="::col.idCode.indexOf(\'LAYOUT_GROUP_HEADER\') > -1"> <h2 class=groupheader data-exl-static-text-toggle="{idCode: col.idCode, granularity: \'page\'}"> <exl-static-text id-code={{::col.idCode}} granularity=page allow-html=false additional-label-text={{::col.labelText}}> <span data-ng-bind=::col.defaultText><\/span> <\/exl-static-text> <\/h2> <\/div> <exl-static-text id-code={{::col.idCode}} granularity=page allow-html=false additional-label-text={{::col.labelText}} ng-if="::col.idCode.indexOf(\'LAYOUT_GROUP_HEADER\') === -1"> <span data-ng-bind=::col.defaultText><\/span> <\/exl-static-text> <\/div> <div ng-switch-default> <exl-field-detail ng-if="::col.tableName === \'Registrant\'" item=col profile=WizardTaskLayout.profile><\/exl-field-detail> <exl-field-detail ng-if="::col.tableName === \'RegExt\'" item=col profile=WizardTaskLayout.profile.demographics is-demographic=::col.isPick><\/exl-field-detail> <\/div> <\/div> <\/div> <\/div> <\/div> <\/div>');n.put("App/Dashboard/Views/AddReservationModal.html","<exl-static-text id-code=ADD_RESERVATION_MODAL>Would you like to add a hotel reservation now? <\/exl-static-text> <exl-select-list ng-model=modalCtrl.choice ng-required=true itemlist=modalCtrl.itemlist selecteditem=modalCtrl.selecteditem title hide-filter=true> <\/exl-select-list> <exl-no-hotel profile=modalCtrl.profile selection=modalCtrl.selection ng-show=\"modalCtrl.choice === 'Later'\"> <\/exl-no-hotel>");n.put("App/Dashboard/Views/AddReservationModalFooter.html","<button type=button data-ng-click=modalCtrl.validateClose()> Continue <\/button>");n.put("App/Dashboard/Views/AgendaModal.html",'<div class="exl-padding-small exl-bot-margin-small hide-for-print"> <div data-ng-show="::((modalCtrl.itemsYesDate && modalCtrl.itemsYesDate.length) || (modalCtrl.itemsNoDate && modalCtrl.itemsNoDate.length))"> <div class="footer text-right"> <ul class="button-group stack-for-small"> <li> <button class="dark stretch" data-ng-click=modalCtrl.sendAgenda()> <i class="fa fa-envelope"><\/i> Email Agenda <\/button> <\/li> <li> <a class="button dark has-tip" data-ng-href={{modalCtrl.calendarUrl}} data-tooltip="Alternatively, you may copy & paste this link into your calendar application to create a subscription that will automatically keep you up-to-date with changes to your agenda." data-tooltip-placement=bottom> <i class="fa fa-download"><\/i> Add to Calendar <\/a> <\/li> <\/ul> <\/div> <table class="table utility"> <tr> <th> Item Code <\/th> <th> Description <\/th> <th> Date/Time <\/th> <th> Qty <\/th> <\/tr> <tr data-ng-repeat="item in ::modalCtrl.itemsYesDate"> <td> {{::item.showItem.showItemCode}} <\/td> <td> {{::item.showItem.description}} <\/td> <td> <time datetime="{{::item.showItem.startDate | date: \'yyyy-MM-ddTHH:mm\'}}"> {{::item.showItem.startDate | date:\'MMMM d, yyyy h:mma\'}} <\/time> <\/td> <td> {{::item.adjustedQuantity | number}} <\/td> <\/tr> <tr data-ng-repeat="item in ::modalCtrl.itemsNoDate"> <td> {{::item.showItem.showItemCode}} <\/td> <td> {{::item.showItem.description}} <\/td> <td><\/td> <td> {{::item.adjustedQuantity | number}} <\/td> <\/tr> <\/table> <\/div> <h3 data-ng-show="::!((modalCtrl.itemsYesDate && modalCtrl.itemsYesDate.length) || (modalCtrl.itemsNoDate && modalCtrl.itemsNoDate.length))"> You don\'t have any items yet. <\/h3> <\/div>');n.put("App/Dashboard/Views/AgendaModalFooter.html",'<button class=secondary data-ng-click=modalCtrl.close()> Close <\/button> <button data-ng-show=modalCtrl.hasShowItemTask class=dark data-ng-click=modalCtrl.goToShowItems()> <i class="fa fa-plus-circle"><\/i> Add Items <\/button>');n.put("App/Dashboard/Views/DashboardSectionsDirective.html",'<div data-ng-repeat="section in dashboardSectionsCtrl.sections | orderBy:[\'displayPriority\',\'dashboardDisplayOrder\'] | filter:{allowInDashboard:true} track by section.sectionName" data-ng-switch=section.sectionName> <div data-ng-switch-when=Housing class=exl-dashboard> <button class="exl-dash dark" data-ng-click=dashboardSectionsCtrl.goToTask(section) data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section)> <div data-tooltip="{{dashboardSectionsCtrl.isBookingUnderReservationLimit === false ? \'You have reached the maximum number of reservations allowed.\' : dashboardSectionsCtrl.isSectionEnabled(section) ? null : \'Housing is closed.\'}}"> {{section.sectionDisplayName}} <span class=action> <span data-ng-if=dashboardSectionsCtrl.isSectionEnabled(section)> Add Room <i class="fa fa-fw fa-plus"><\/i> <\/span> <span data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> <\/span> <\/div> <\/button> <exl-housing-section actions=section.wizardSectionActions><\/exl-housing-section> <\/div> <div data-ng-switch-when=GEHousing class=exl-dashboard> <button class="exl-dash dark" data-ng-click=dashboardSectionsCtrl.goToTask(section) data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section)> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <span class=action> <exl-registrant-like-totals like-type-code=FACILITY like-active=false dashboard=true> <\/exl-registrant-like-totals> <\/span> <\/button> <exl-explore-housing-section actions=section.wizardSectionActions data-ng-if=dashboardSectionsCtrl.isSectionEnabled(section)><\/exl-explore-housing-section> <\/div> <div data-ng-switch-when=Registration class=exl-dashboard> <div data-ng-if=!dashboardSectionsCtrl.registrant.isCancelled> <button class="exl-dash dark" data-ng-click=dashboardSectionsCtrl.goToTask(section) data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section)> <span class=action ng-if=!dashboardSectionsCtrl.noRegAllowed>  <span data-ng-if=dashboardSectionsCtrl.isRegistrationSectionFinished()> <i class="fa fa-fw fa-check" tooltip="Registrant is completed"><\/i> <\/span>  <span data-ng-if="dashboardSectionsCtrl.isLoggedIn && !dashboardSectionsCtrl.isRegistrationSectionFinished() && dashboardSectionsCtrl.registrationProgressPercent"> Finish <i class="fa fa-fw fa-warning text-warning-color" tooltip="Registrant is not completed"><\/i> <\/span>  <span data-ng-if="(!dashboardSectionsCtrl.isLoggedIn || !dashboardSectionsCtrl.registrationProgressPercent) && dashboardSectionsCtrl.isSectionEnabled(section)"> <exl-static-text id-code=WEB_DASH_START_REG_P1>Get Started<\/exl-static-text> <i class="fa fa-fw fa-chevron-right"><\/i> <\/span> <span data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> <\/span> {{section.sectionDisplayName}} <div data-ng-if=dashboardSectionsCtrl.isLoggedIn> <small><em>{{dashboardSectionsCtrl.regTypeDesc}}<\/em><\/small> <\/div> <\/button>  <div data-ng-if="!dashboardSectionsCtrl.isRegistrationCompleted && dashboardSectionsCtrl.isLoggedIn"> <div class="progress small"> <span class=meter data-ng-style="{\'width\': dashboardSectionsCtrl.registrationProgress()}"><\/span> <\/div> <\/div> <exl-registration-section actions=section.wizardSectionActions task-state=dashboardSectionsCtrl.taskState><\/exl-registration-section> <\/div> <div data-ng-if=dashboardSectionsCtrl.registrant.isCancelled> <div class="button exl-dash dark disabled"> {{section.sectionDisplayName}} <span class=action> <i class="fa fa-fw fa-times" tooltip="Registration is cancelled"><\/i> <\/span> <\/div> <div class=exl-padding-small> <exl-static-text id-code=WEB_DASH_CANCELLED_REG_P1> <h3> Registration Cancelled <\/h3> <p> Please contact customer service with any questions at xxx.xxx.xxxx or xxx@experient-inc.com. <\/p> <\/exl-static-text> <\/div> <\/div> <div class=exl-padding-small ng-if=dashboardSectionsCtrl.noRegAllowed> <exl-static-text id-code=WEB_DASH_REG_NOT_ALLOWED_P1> <h3> Registration Not Allowed <\/h3> <p> Please contact customer service with any questions at xxx.xxx.xxxx or xxx@experient-inc.com. <\/p> <\/exl-static-text> <\/div> <\/div> <div data-ng-switch-when=AddAnother class=exl-dashboard> <button class="exl-dash dark" data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section) data-exl-add-another> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <\/button> <\/div> <div data-ng-switch-when=Financial class="exl-dashboard show-for-small-only" data-ng-hide=dashboardSectionsCtrl.hideAllFees> <button class="exl-dash dark" data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section)> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <\/button> <exl-financial-section section=section><\/exl-financial-section> <\/div> <div data-ng-switch-when=GESessions class=exl-dashboard> <button class="exl-dash dark" data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section) data-ng-click=dashboardSectionsCtrl.goToTask(section)> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <\/button> <exl-show-item-section section=section data-ng-if=dashboardSectionsCtrl.isSectionEnabled(section)><\/exl-show-item-section> <\/div> <div data-ng-switch-when=Confirmation class=exl-dashboard data-tooltip={{dashboardSectionsCtrl.confirmationToolTip(section)}} data-ng-hide=dashboardSectionsCtrl.isSelfReg> <button class="exl-dash dark" data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section) data-ng-click="dashboardSectionsCtrl.showModal(section) ? noop() : dashboardSectionsCtrl.goToTask(section)" data-exl-confirmation-preview="{registrantId: dashboardSectionsCtrl.showModal(section) ? dashboardSectionsCtrl.registrant.registrantId : null}"> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <\/button> <\/div> <div data-ng-switch-when=TrafficBoost class=exl-dashboard> <button class="exl-dash dark" data-ng-click=dashboardSectionsCtrl.goToTask(section) data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section)> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <\/button> <\/div> <div data-ng-switch-default class=exl-dashboard> <button class="exl-dash dark" data-ng-click=dashboardSectionsCtrl.goToTask(section) data-ng-disabled=!dashboardSectionsCtrl.isSectionEnabled(section)> <span class=action data-ng-if=!dashboardSectionsCtrl.isSectionEnabled(section)> {{section.closedText}} <\/span> {{section.sectionDisplayName}} <\/button> <\/div> <\/div>');n.put("App/Dashboard/Views/DashboardTask.html",' <div class=row> <div class="large-12 columns"> <div data-ng-if=!taskCtrl.isOpen> <exl-static-text id-code=WEB_DASH_CLOSED> <p> The Show is currently closed! <\/p> <\/exl-static-text> <\/div> <div data-ng-if=taskCtrl.isOpen> <exl-static-text id-code=WEB_DASH_P1> <p> This is a static text space for the show organizer to add info to the top of the dashboard page. <\/p> <\/exl-static-text> <\/div> <\/div> <\/div> <div class=row> <div class="medium-8 large-7 columns"> <exl-dashboard-sections><\/exl-dashboard-sections> <\/div> <div class="medium-4 large-5 columns"> <div class="show-for-medium-up exl-clickable exl-bot-margin"> <exl-financial-summary><\/exl-financial-summary> <\/div> <exl-widget-booking-financials data-ng-if="::!taskCtrl.isGroupIndividual && taskCtrl.bookingHasMultipleRegistrants"><\/exl-widget-booking-financials> <exl-static-text id-code=WEB_DASH_P2> <p> This is more static text space for adding text to the dashboard page. <\/p> <\/exl-static-text> <\/div> <\/div> <div class=row><exl-official-provider><\/exl-official-provider><\/div> ');n.put("App/Dashboard/Views/ExploreHousingSectionDirective.html",'<div class="exl-padding-small actionitems"> <ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-3"> <li data-ng-repeat="action in exploreHousingSectionCtrl.actions track by action.internalName" data-ng-switch=action.internalName> <exl-section-action data-ng-switch-when=Map action-type={{action.actionType}} action-command={{action.actionCommand}} display-name={{action.displayName}} icon={{action.icon}} data-exl-area-map-modal><\/exl-section-action> <exl-section-action data-ng-switch-default action-type={{action.actionType}} action-command={{action.actionCommand}} display-name={{action.displayName}} icon={{action.icon}}><\/exl-section-action> <\/li> <\/ul> <\/div>');n.put("App/Dashboard/Views/FinancialItemsDirective.html",'<tr ng-if="FinancialItems.item.showItemTypeCode === \'REG\'"> <td> {{FinancialItems.item.showItemDescription}} <i>({{FinancialItems.hideCodeInRegTypeControl ? FinancialItems.item.regTypeDescription : FinancialItems.item.regTypeCode + \' - \' + FinancialItems.item.regTypeDescription}})<\/i> <\/td> <td class="highlight text-right"> <span ng-show=!FinancialItems.hideRegFees>{{FinancialItems.item.totalAmount | currency}}<\/span> <\/td> <\/tr> <tr ng-if="FinancialItems.item.showItemTypeCode === \'GUE\'"> <td> <div class="row collapse"> <div class="medium-6 columns"> Spouse/Guest <\/div> <div class="medium-6 columns"> <div class="row collapse" ng-show=!FinancialItems.hideRegFees> <div class="small-6 text-right columns">{{FinancialItems.item.unitQuantity}}<\/div> <div class="small-6 columns">@ {{FinancialItems.item.unitAmount | currency}}<\/div> <\/div> <\/div> <\/div> <\/td> <td class="highlight text-right"> <span ng-show=!FinancialItems.hideRegFees>{{FinancialItems.item.totalAmount | currency}}<\/span> <\/td> <\/tr> <tr ng-if="FinancialItems.item.showItemTypeCode && FinancialItems.item.showItemTypeCode !== \'REG\' && FinancialItems.item.showItemTypeCode !== \'GUE\'"> <td> <div class="row collapse"> <div class="medium-6 columns"> {{FinancialItems.item.showItemDescription}} <\/div> <div class="medium-6 columns"> <div class="row collapse"> <div class="small-6 text-right columns"> {{FinancialItems.item.unitQuantity}} <\/div> <div class="small-6 columns" ng-show=!FinancialItems.hideShowItemFees> @ {{FinancialItems.item.unitAmount | currency}} <\/div> <\/div> <\/div> <\/div> <\/td> <td class="highlight text-right"> <span ng-show=!FinancialItems.hideShowItemFees>{{FinancialItems.item.totalAmount | currency}}<\/span> <\/td> <\/tr> <tr ng-if="FinancialItems.item.reservationId && !FinancialItems.item.payTypeCode"> <td> {{FinancialItems.item.hotelItemName}} <exl-room-nights-display reservation=FinancialItems.item><\/exl-room-nights-display> <div ng-show="!FinancialItems.hideReservationFees && FinancialItems.item.isccg"> Room Requires<br> <a data-tooltip="The provided credit card will be used to guarantee your hotel reservation(s)" data-tooltip-trigger=click>Credit Card Guarantee<\/a> (CCG) <\/div> <div ng-show="!FinancialItems.hideReservationFees && FinancialItems.item.depositAmt > 0"> Room Deposit <\/div> <\/td> <td class="highlight text-right"> <span ng-show="!FinancialItems.hideReservationFees && !FinancialItems.item.isccg">{{FinancialItems.item.depositAmt | currency}}<\/span> <span ng-show=FinancialItems.item.isccg data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."><i class="fa fa-credit-card"><\/i>CCG<\/span> <\/td> <\/tr> <tr ng-if=FinancialItems.item.payTypeCode> <td> <div class=row> <div class="small-2 column"> {{FinancialItems.item.payTypeCode}} <\/div> <div class="small-6 column"> {{FinancialItems.item.maskedAccountNumber}} <\/div> <div class="small-4 column"> {{FinancialItems.item.insertDate | date: \'MMM dd\'}} <\/div> <\/div> <div class=row> <div class="columns end"> <span ng-show="FinancialItems.item.totalAmount < 0">Applied To: <\/span> <span ng-show="FinancialItems.item.totalAmount > 0">Returned From: <\/span> <span ng-show=FinancialItems.item.registrantId> Registration<\/span> <span ng-show=FinancialItems.item.reservationId> Housing<\/span> <\/div> <\/div> <\/td> <td class="highlight text-right"> <span ng-show="FinancialItems.item.totalAmount != 0">{{FinancialItems.item.totalAmount | currency}}<\/span> <\/td> <\/tr> ');n.put("App/Dashboard/Views/FinancialSectionDirective.html",'<div class=exl-padding-small data-ng-show="FinancialSection.hasINP || FinancialSection.hasCOM || FinancialSection.canPay"> <ul class="small-block-grid-3 medium-block-grid-4 actionitems"> <li> <div ng-show=FinancialSection.cart.balance.totalBalanceDue><strong>{{FinancialSection.cart.balance.totalBalanceDue | currency}} Due<\/strong><\/div> <div ng-show=FinancialSection.cart.balance.isccg><strong>Confirm Room(s)<\/strong><\/div> <\/li> <li data-ng-repeat="action in ::FinancialSection.section.wizardSectionActions" data-ng-switch=::action.internalName> <exl-section-action ng-switch-when=FinancialSummary ng-if="FinancialSection.hasINP || FinancialSection.hasCOM" action-type={{::action.actionType}} action-command={{::action.actionCommand}} display-name={{::action.displayName}} on-click=FinancialSection.click(action) icon={{::action.icon}}><\/exl-section-action> <exl-section-action ng-switch-when=ShowSummary ng-if=FinancialSection.canPay action-type={{::action.actionType}} action-command={{::action.actionCommand}} display-name={{::action.displayName}} icon={{::action.icon}}><\/exl-section-action> <\/li> <\/ul> <\/div>');n.put("App/Dashboard/Views/FinancialSummaryDirective.html",'<div ng-hide="FinancialSummary.hideAllFees || !FinancialSummary.section" ng-click=FinancialSummary.click()> <table class="table financial stretch">  <thead ng-hide=FinancialSummary.hideTitle> <tr> <th colspan=2> <h3>{{(FinancialSummary.registrant ? FinancialSummary.registrant.firstName + "\'s " : "") + FinancialSummary.section.sectionDisplayName }} <i class="fa fa-fw fa-expand"><\/i><\/h3> <\/th> <\/tr> <\/thead>  <tbody ng-if="!FinancialSummary.cart.itemsCOM.length && !FinancialSummary.cart.itemsINP.length"> <tr> <td colspan=2> <exl-static-text id-code=FINANCIAL_SUMMARY_NO_TRANS><em>You don\'t have any financial transactions yet.<\/em><\/exl-static-text> <\/td> <\/tr> <\/tbody>  <tbody class=summary-total ng-show=FinancialSummary.cart.itemsCOM.length> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <th> <h3><i class="fa fa-fw fa-check"><\/i> Completed Items<\/h3> <\/th> <th class=highlight> <h3 class="text-right text-alert-color" ng-hide=FinancialSummary.expand>{{FinancialSummary.itemsCOMTotal | currency}}<\/h3> <\/th> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <th> <h3><i class="fa fa-fw fa-check"><\/i> Completed Room(s)<\/h3> <\/th> <th class=highlight> <h3 class="text-right text-alert-color" ng-hide=FinancialSummary.expand>{{FinancialSummary.itemsCOMTotal}}<\/h3> <\/th> <\/tr> <\/tbody> <tbody class=com-items ng-repeat="item in FinancialSummary.cart.itemsCOM" ng-if=FinancialSummary.expand exl-financial-items=item><\/tbody>  <tbody class=subtotal ng-if=FinancialSummary.expand> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <td><h3 class=text-right>Completed Subtotal<\/h3><\/td> <td class=highlight><h3 class="text-right text-alert-color">{{FinancialSummary.itemsCOMTotal | currency}}<\/h3><\/td> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <td><h3 class=text-right><\/h3>Completed Subtotal<\/td> <td class=highlight><h3 class="text-right text-alert-color">{{FinancialSummary.itemsCOMTotal}}<\/h3><\/td> <\/tr> <\/tbody>  <tbody class=summary-total ng-show=FinancialSummary.cart.itemsINP.length> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <th> <h3><i class="fa fa-fw fa-shopping-cart"><\/i> Items in Cart<\/h3> <\/th> <th class=highlight> <h3 class="text-right text-alert-color" ng-hide=FinancialSummary.expand>{{FinancialSummary.itemsINPTotal | currency}}<\/h3> <\/th> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <th> <h3><i class="fa fa-fw fa-shopping-cart"><\/i> Room(s) in Cart<\/h3> <\/th> <th class=highlight> <h3 class=text-right ng-hide=FinancialSummary.expand>{{FinancialSummary.itemsINPTotal}}<\/h3> <\/th> <\/tr> <\/tbody> <tbody class=cart-items ng-repeat="item in FinancialSummary.cart.itemsINP" ng-if=FinancialSummary.expand exl-financial-items=item><\/tbody>  <tbody class=subtotal ng-show="FinancialSummary.cart.itemsINP.length && FinancialSummary.expand"> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <td><h3 class=text-right>Cart Subtotal<\/h3><\/td> <td class=highlight><h3 class="text-right text-alert-color">{{FinancialSummary.itemsINPTotal | currency}}<\/h3><\/td> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <td><h3 class=text-right><\/h3>Cart Subtotal<\/td> <td class=highlight><h3 class="text-right text-alert-color">{{FinancialSummary.itemsINPTotal}}<\/h3><\/td> <\/tr> <\/tbody>  <tbody class=total ng-show="FinancialSummary.cart.itemsCOM.length || FinancialSummary.cart.itemsINP.length"> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <th> <h3 ng-class="{\'text-right\': FinancialSummary.expand}">Total Charges<\/h3> <\/th> <th class=highlight> <h3 class=text-right>{{FinancialSummary.chargesTotal | currency}}<\/h3> <\/th> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <th> <h3>Total Room(s)<\/h3> <\/th> <th class=highlight> <h3 class=text-right>{{FinancialSummary.chargesTotal}}<\/h3> <\/th> <\/tr> <\/tbody>  <tbody ng-show="FinancialSummary.cart.items.regPayments.length || FinancialSummary.cart.items.resPayments.length"> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <th> <h3>Payments<\/h3> <\/th> <th class=highlight> <h3 ng-hide=FinancialSummary.expand class="text-right text-success-color">{{FinancialSummary.paymentsTotal | currency}}<\/h3> <\/th> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <th> <h3>Credit Card(s)<\/h3> <\/th> <th class=highlight> <h3 class="text-success-color text-right">{{FinancialSummary.paymentsTotal}}<\/h3> <\/th> <\/tr> <\/tbody> <tbody class=payment-items ng-repeat="payment in FinancialSummary.cart.payments" ng-if=FinancialSummary.expand exl-financial-items=payment><\/tbody>  <tbody ng-show="(FinancialSummary.cart.items.regPayments.length || FinancialSummary.cart.items.resPayments.length) && FinancialSummary.expand"> <tr ng-if=!FinancialSummary.isHousingOnlyNoDeposit> <th> <h3 class=text-right>Total Payments<\/h3> <\/th> <th class=highlight> <h3 class="text-right text-success-color">{{FinancialSummary.paymentsTotal | currency}}<\/h3> <\/th> <\/tr> <tr ng-if=FinancialSummary.isHousingOnlyNoDeposit> <th> <h3>Credit Card(s)<\/h3> <\/th> <th class=highlight> <h3 class="text-right text-success-color">{{FinancialSummary.paymentsTotal}}<\/h3> <\/th> <\/tr> <\/tbody>  <tfoot ng-show="FinancialSummary.cart.balance.regBalance > 0 || FinancialSummary.cart.balance.housingBalance > 0 || FinancialSummary.cart.balance.isccg"> <tr class="xl-no-borders xl-thick-top-border"> <td> <h2 class=text-right ng-show="FinancialSummary.cart.balance.regBalance > 0 && FinancialSummary.cart.balance.isccg">Balance Due &amp; Confirm Room(s)<\/h2> <h2 class=text-right ng-show="FinancialSummary.cart.balance.regBalance === 0 && FinancialSummary.cart.balance.isccg">Confirm Room(s)<\/h2> <h2 class=text-right ng-show=!FinancialSummary.cart.balance.isccg>Balance Due<\/h2> <\/td> <td class="background-secondary-color-lighter text-right">  <span data-ng-if="FinancialSummary.cart.balance.totalBalanceDue > 0 || !FinancialSummary.cart.balance.isccg"> {{FinancialSummary.cart.balance.totalBalanceDue | currency}} <\/span> <span data-ng-if="FinancialSummary.cart.balance.totalBalanceDue > 0 && FinancialSummary.cart.balance.isccg"> + <\/span> <span class=text-alert-color data-ng-if=FinancialSummary.cart.balance.isccg data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/td> <\/tr> <\/tfoot> <\/table> <button type=button class="success expand" exl-pay-now="{shoppingCart: FinancialSummary.cart}" ng-hide="FinancialSummary.hideButton || (!FinancialSummary.cart.itemsCOM.length && !FinancialSummary.cart.itemsINP.length)"><\/button> <\/div> ');n.put("App/Dashboard/Views/GroupDashboardSectionsDirective.html",'<h2 class=text-center data-ng-hide=::groupDashboardSectionsCtrl.isLoaded> <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Loading, please wait... <\/h2> <div data-ng-repeat="section in ::groupDashboardSectionsCtrl.sections | filter:{allowInDashboard:true}:true track by section.sectionName" data-ng-switch=::section.sectionName data-ng-if=::section.isVisible> <div data-ng-switch-when=CAB class=exl-dashboard> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled data-ng-if="::!groupDashboardSectionsCtrl.isCABOpen || !groupDashboardSectionsCtrl.addBlockEnabled"> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CAB_BUTTON_CLOSED><i>Hold Rooms is now closed<\/i><\/exl-static-text> <\/span> <\/button> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled data-ng-if="::groupDashboardSectionsCtrl.isCABOpen && groupDashboardSectionsCtrl.addBlockEnabled"> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CAB_BUTTON_ADD_EDIT>Add/Edit Request<\/exl-static-text> <i class="fa fa-fw fa-arrow-right"><\/i> <\/span> <\/button> <div class=exl-padding-small data-ng-if=::!groupDashboardSectionsCtrl.isHotelItemAssigned> <ul class="small-block-grid-1 medium-block-grid-1 actionitems"> <li> <button class="small radius expand" type=button data-dropdown-toggle=#cabIncomplete> <i class="fa fa-warning text-warning-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CAB_INCOMPLETE_ALERT>Hold Rooms process incomplete<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=cabIncomplete class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CAB_INCOMPLETE>You must complete the hold rooms process before you can make reservations.<\/exl-static-text> <\/div> <\/li> <\/ul> <\/div> <\/div> <div data-ng-switch-when=RAB class=exl-dashboard> <div data-ng-if=::!section.isEnabled> <button class="exl-dash dark" data-ng-disabled=true> {{::section.sectionDisplayName}} <span class=action data-ng-if=::groupDashboardSectionsCtrl.isBookingContactVerified> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_BUTTON_CLOSED><em>Block Request is now closed<\/em><\/exl-static-text> <\/span> <\/button> <\/div> <div data-ng-if=::section.isEnabled> <button class="exl-dash dark" data-ng-if="::groupDashboardSectionsCtrl.blockRequestStatus.isNew || groupDashboardSectionsCtrl.blockRequestStatus.isCancelled" data-ng-click=groupDashboardSectionsCtrl.goToTask(section)> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_BUTTON_NEW>Begin<\/exl-static-text> <i class="fa fa-fw fa-arrow-right"><\/i> <\/span> <\/button> <button class="exl-dash dark" data-ng-if=::groupDashboardSectionsCtrl.blockRequestStatus.isInProgress data-ng-click=groupDashboardSectionsCtrl.goToTask(section)> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_BUTTON_INP>Continue<\/exl-static-text> <i class="fa fa-fw fa-arrow-right"><\/i> <\/span> <\/button> <button class="exl-dash dark" data-ng-if=::groupDashboardSectionsCtrl.blockRequestStatus.isFulfilled data-ng-click=groupDashboardSectionsCtrl.goToTask(section)> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_BUTTON_FULFILLED>Guarantee Block<\/exl-static-text> <i class="fa fa-fw fa-arrow-right"><\/i> <\/span> <\/button> <button class="exl-dash dark" data-ng-if="::groupDashboardSectionsCtrl.blockRequestStatus.isSubmitted || groupDashboardSectionsCtrl.blockRequestStatus.isGuaranteed" data-ng-click=groupDashboardSectionsCtrl.goToTask(section)> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_BUTTON_SUBMITTED>View Block Request<\/exl-static-text> <i class="fa fa-fw fa-arrow-right"><\/i> <\/span> <\/button> <\/div> <div class=exl-padding-small> <div class=actionitems data-ng-if=::groupDashboardSectionsCtrl.currentBlockRequest> <exl-block-request-status><\/exl-block-request-status> <\/div> <ul class="small-block-grid-1 medium-block-grid-1 actionitems"> <li data-ng-if="::!groupDashboardSectionsCtrl.blockRequestStatus.isFulfilled && !groupDashboardSectionsCtrl.blockRequestStatus.isGuaranteed && !groupDashboardSectionsCtrl.blockRequestStatus.isCancelled"> <button class="small radius expand" type=button data-dropdown-toggle=#rabIncomplete> <i class="fa fa-warning text-warning-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_INCOMPLETE_ALERT>Hotel block request process incomplete<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=rabIncomplete class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_INCOMPLETE>You must complete the hotel block request process before you can make reservations.<\/exl-static-text> <\/div> <\/li> <li data-ng-if=::groupDashboardSectionsCtrl.blockRequestStatus.isFulfilled> <span data-ng-if=::groupDashboardSectionsCtrl.rabConfigPolicy.requireCCG> <button class="small radius expand" type=button data-dropdown-toggle=#rabCCGRequired> <i class="fa fa-warning text-warning-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_CCG_ALERT>Block Request Credit Card Guarantee Required<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=rabCCGRequired class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_CCG>You must provide a Credit Card Guarantee for your requested rooms before you can make reservations.<\/exl-static-text> <\/div> <\/span> <span data-ng-if=::!groupDashboardSectionsCtrl.rabConfigPolicy.requireCCG> <button class="small radius expand" type=button data-dropdown-toggle=#rabAcceptanceRequired> <i class="fa fa-warning text-warning-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_ACCEPTANCE_ALERT>Block Request Acceptance Required<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=rabAcceptanceRequired class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_ACCEPTANCE>In order to guarantee your hotel block, you must indicate your acceptance before you can make reservations.<\/exl-static-text> <\/div> <\/span> <\/li> <li data-ng-if=::groupDashboardSectionsCtrl.blockRequestStatus.isCancelled> <button class="small radius expand" type=button data-dropdown-toggle=#rabCancelled> <i class="fa fa-warning text-alert-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_CANCELLED_ALERT>Request has been cancelled<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=rabCancelled class="f-dropdown f-dropdown-bump-down small content"> <span data-ng-if=::section.isEnabled> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_CANCELLED>Your previous block request has been cancelled. You may begin a new request.<\/exl-static-text> <\/span> <span data-ng-if=::!section.isEnabled> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_RAB_CANCELLED_CLOSED>Your previous block request has been cancelled.<\/exl-static-text> <\/span> <\/div> <\/li> <\/ul> <\/div> <\/div> <div data-ng-switch-when=ManageRooms class=exl-dashboard> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> {{::groupDashboardSectionsCtrl.manageRoomsSectionDisplayName}} <\/button> <div class=exl-padding-small data-ng-if="::groupDashboardSectionsCtrl.isCabCCGRequired || !groupDashboardSectionsCtrl.isCabMinRoomNightsValid"> <ul class="small-block-grid-1 medium-block-grid-1 actionitems"> <li data-ng-if=::groupDashboardSectionsCtrl.isCabCCGRequired> <button class="small radius expand" type=button data-dropdown-toggle=#cabCCGRequired> <i class="fa fa-warning text-warning-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_MANAGE_ROOMS_CCG_ALERT>Hold Rooms Credit Card Guarantee Required<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=cabCCGRequired class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_MANAGE_ROOMS_CCG>You must provide a Credit Card Guarantee for your held rooms before you can make reservations. Please select \'Manage Rooms\' to secure your rooms.<\/exl-static-text> <\/div> <\/li> <li data-ng-if=::!groupDashboardSectionsCtrl.isCabMinRoomNightsValid> <button class="small radius expand" type=button data-dropdown-toggle=#cabMinRoomNights> <i class="fa fa-warning text-warning-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_MANAGE_ROOMS_MIN_ROOMS_ALERT>Minimum required held rooms not met<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=cabMinRoomNights class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_MANAGE_ROOMS_MIN_ROOMS>You have not yet held the minimum number of rooms required. The minimum number of rooms is<\/exl-static-text>&nbsp;<strong>{{::groupDashboardSectionsCtrl.minRooms}}<\/strong>. <\/div> <\/li> <\/ul> <\/div> <\/div> <div data-ng-switch-when=ManageGroup class=exl-dashboard> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> {{::section.sectionDisplayName}} <span class=action data-ng-if=::groupDashboardSectionsCtrl.isBookingContactVerified> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_MANAGE_GROUP_BUTTON_ADD_EDIT>Add/Edit Personnel<\/exl-static-text> <i class="fa fa-arrow-right"><\/i> <\/span> <\/button> <exl-group-registration-section data=::groupDashboardSectionsCtrl.registrationData actions=::section.wizardSectionActions data-ng-if=::groupDashboardSectionsCtrl.isBookingContactVerified><\/exl-group-registration-section> <\/div> <div data-ng-switch-when=Housing class=exl-dashboard> <button class="exl-dash dark" data-ng-if=::section.isEnabled data-ng-click=groupDashboardSectionsCtrl.goToTask(section)> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_BUTTON_ADD_ROOM>Add Room<\/exl-static-text> <i class="fa fa-plus"><\/i> <\/span> <\/button> <button class="exl-dash dark" data-ng-if=::!section.isEnabled data-ng-disabled=true> {{::section.sectionDisplayName}} <span class=action> <span data-ng-if=::!groupDashboardSectionsCtrl.isHousingOpen> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_BUTTON_CLOSED><i>Hotel Reservations are now closed<\/i><\/exl-static-text> <\/span> <\/span> <\/button> <exl-group-housing-section data=::groupDashboardSectionsCtrl.registrationData actions=::section.wizardSectionActions data-ng-if=::groupDashboardSectionsCtrl.blockHousingRequirementsSatisfied><\/exl-group-housing-section> <\/div> <div data-ng-switch-when=ContactProfile class=exl-dashboard> <button class="exl-dash dark" data-ng-if="::groupDashboardSectionsCtrl.contactProfileAction == \'ADD\'" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CONTACT_ADD_NEW>Add New Contact<\/exl-static-text> <i class="fa fa-plus"><\/i> <\/span> {{::section.sectionDisplayName}} <div> <small> <em>{{::groupDashboardSectionsCtrl.registrationData.bookingSummary.contact.firstName + \' \' + groupDashboardSectionsCtrl.registrationData.bookingSummary.contact.lastName}}<\/em> <\/small> <\/div> <\/button> <button class="exl-dash dark" data-ng-if="::groupDashboardSectionsCtrl.contactProfileAction == \'VERIFY\'" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CONTACT_VERIFY>Verify<\/exl-static-text> <i class="fa fa-arrow-right"><\/i> <\/span> {{::section.sectionDisplayName}} <div> <small> <em>{{::groupDashboardSectionsCtrl.registrationData.bookingSummary.contact.firstName + \' \' + groupDashboardSectionsCtrl.registrationData.bookingSummary.contact.lastName}}<\/em> <\/small> <\/div> <\/button> <button class="exl-dash dark" data-ng-if="::groupDashboardSectionsCtrl.contactProfileAction == \'EDIT\'" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CONTACT_EDIT>Edit<\/exl-static-text> <i class="fa fa-arrow-right"><\/i> <\/span> {{::section.sectionDisplayName}} <div> <small> <em>{{::groupDashboardSectionsCtrl.registrationData.bookingSummary.contact.firstName + \' \' + groupDashboardSectionsCtrl.registrationData.bookingSummary.contact.lastName}}<\/em> <\/small> <\/div> <\/button> <div class=exl-padding-small data-ng-if=::!groupDashboardSectionsCtrl.isBookingContactVerified> <ul class="small-block-grid-1 medium-block-grid-1 actionitems"> <li> <button class="small radius expand" type=button data-dropdown-toggle=#verifiedContactRequired> <i class="fa fa-warning text-alert-color"><\/i> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CONTACT_VERIFY_ALERT>A verified contact is required<\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/button> <div id=verifiedContactRequired class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_CONTACT_VERIFY_INFO>You must have a verified contact for this booking before proceeding with other actions. Please select \'Contact Profile\' to complete this requirement.<\/exl-static-text> <\/div> <\/li> <\/ul> <\/div> <\/div> <div data-ng-switch-when=Financial class="exl-dashboard show-for-small-only" data-ng-hide=::groupDashboardSectionsCtrl.hideAllFees> <button class="exl-dash dark" data-ng-disabled=::!section.isEnabled data-ng-click=groupDashboardSectionsCtrl.goToTask(section)> {{::section.sectionDisplayName}} <\/button> <exl-financial-section section=section><\/exl-financial-section> <\/div> <div data-ng-switch-when=ViewCompleted class=exl-dashboard> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> {{::section.sectionDisplayName}} <span class=action data-ng-if=::section.isEnabled> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_VIEW_COMPLETED_BUTTON><\/exl-static-text> <i class="fa fa-arrow-right"><\/i> <\/span> <\/button> <div class=exl-padding-small data-exl-static-text-toggle="{idCode: groupDashboardSectionsCtrl.viewCompletedAdditionalTextIdCode}"> <exl-static-text id-code={{::groupDashboardSectionsCtrl.viewCompletedAdditionalTextIdCode}}><\/exl-static-text> <\/div> <\/div> <div data-ng-switch-when=TrafficBoost class=exl-dashboard> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> {{::section.sectionDisplayName}} <span class=action> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_VIEW_COMPLETED_BUTTON>More Info<\/exl-static-text> <i class="fa fa-info-circle"><\/i> <\/span> <\/button> <\/div> <div data-ng-switch-default class=exl-dashboard> <button class="exl-dash dark" data-ng-click=groupDashboardSectionsCtrl.goToTask(section) data-ng-disabled=::!section.isEnabled> {{::section.sectionDisplayName}} <\/button> <\/div> <\/div>');n.put("App/Dashboard/Views/GroupDashboardTask.html",'<div class=row> <div class="large-12 medium-12 columns"> <div data-ng-if=::taskCtrl.isClosed> <exl-static-text id-code=WEB_DASH_CLOSED> <p> The Show is currently closed! <\/p> <\/exl-static-text> <\/div> <div data-ng-if=::taskCtrl.isOpen> <exl-static-text id-code=WEB_GROUP_DASH_TEXT_TOP><\/exl-static-text> <\/div> <\/div> <\/div> <div class=row> <div class="large-5 medium-7 columns"> <exl-group-dashboard-sections><\/exl-group-dashboard-sections> <div class=exl-dashboard> <a class="exl-dash button dark" data-ng-if=::taskCtrl.enableSSOLink data-ng-click=taskCtrl.goToURL()> <span class=action> <exl-static-text allow-html=false id-code=WEB_GROUP_DASH_SECTION_EXH_PORTAL_BUTTON_NAVIGATE>Go! <\/exl-static-text> <i class="fa fa-chevron-right"><\/i> <\/span> {{::taskCtrl.ssoCustomName}} <div> <small> <em> <exl-static-text allow-html=false id-code=WEB_GROUP_DASH_SECTION_EXH_PORTAL_TEXT>Launches in new browser window<\/exl-static-text> <\/em> <\/small> <\/div> <\/a> <\/div> <\/div> <div class="large-4 medium-5 columns groupdashboardinfo"> <div class=show-for-medium-up> <exl-widget-booking-financials><\/exl-widget-booking-financials> <\/div> <accordion close-others=false data-exl-static-text-toggle="{idCode: taskCtrl.importantInfoContentIdCode}"> <accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_GROUP_DASH_ACCORDION_IMPORTANT_INFO_HEADER>Important Info<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code={{::taskCtrl.importantInfoContentIdCode}}><\/exl-static-text> <\/div> <\/accordion-group> <\/accordion> <\/div> <div class="large-3 hide-for-medium-down columns"> <exl-widget-container val=1><\/exl-widget-container> <exl-widget-container val=2><\/exl-widget-container> <\/div> <\/div> <div class=row> <div class="medium-12 columns exl-top-margin show-for-medium-down"> <exl-widget-container val=2><\/exl-widget-container> <\/div> <\/div>');n.put("App/Dashboard/Views/GroupHousingSectionDirective.html",'<div class=exl-padding-small data-ng-if=::groupHousingSectionCtrl.isSectionVisible> <div class=actionitems data-ng-if=::groupHousingSectionCtrl.data.bookingSummary.bookingId> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_ACTIVITY_HEADER><h3>Reservation Activity<\/h3><\/exl-static-text> <table class="table utility stretch exl-bot-margin"> <thead> <tr> <th><exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_ACTIVITY_COM_HEADER>Completed<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_ACTIVITY_INP_HEADER>Incomplete<\/exl-static-text><\/th>  <th data-ng-if="::groupHousingSectionCtrl.data.bookingFinancials.totalHousingBalance > 0 || groupHousingSectionCtrl.data.bookingFinancials.isccgNeeded"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_ACTIVITY_BALANCE_HEADER>Due<\/exl-static-text> <\/th> <\/tr> <\/thead> <tbody> <tr> <td>{{::groupHousingSectionCtrl.data.bookingSummary.completedRes}}<\/td> <td>{{::groupHousingSectionCtrl.data.bookingSummary.inProgressRes}}<\/td>  <td data-ng-if="::groupHousingSectionCtrl.data.bookingFinancials.totalHousingBalance > 0 || groupHousingSectionCtrl.data.bookingFinancials.isccgNeeded"> <strong class=text-alert-color> <span data-ng-if="::groupHousingSectionCtrl.data.bookingFinancials.totalHousingBalance > 0 || !groupHousingSectionCtrl.data.bookingFinancials.isccgNeeded"> {{::groupHousingSectionCtrl.data.bookingFinancials.totalHousingBalance | currency}} <\/span> <span data-ng-if="::groupHousingSectionCtrl.data.bookingFinancials.totalHousingBalance > 0 && groupHousingSectionCtrl.data.bookingFinancials.isccgNeeded"> + <\/span> <span data-ng-if=::groupHousingSectionCtrl.data.bookingFinancials.isccgNeeded data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/strong> <\/td> <\/tr> <\/tbody> <\/table> <\/div> <div data-ng-if=::groupHousingSectionCtrl.reservationUploadVisible data-ng-repeat="action in ::groupHousingSectionCtrl.actions | filter:{internalName:\'ReservationUpload\'} track by action.internalName" data-ng-switch=::action.internalName> <button data-ng-switch-when=ReservationUpload type=button class=radius data-ng-click="groupHousingSectionCtrl.clickActionSection(action.actionType, action.actionCommand, null, true)" data-ng-disabled=::!groupHousingSectionCtrl.reservationUploadEnabled> <i data-ng-class=::action.icon><\/i> <sup class=badge data-ng-if=groupHousingSectionCtrl.reservationUploadListCount> {{groupHousingSectionCtrl.reservationUploadListCount >= 0 ? \'\' : \'\'}}{{groupHousingSectionCtrl.reservationUploadListCount | number: 0}} <\/sup> {{::action.displayName}} <\/button> <button class=empty type=button data-dropdown-toggle=#reservationUploadInfo><i class="fa fa-fw fa-info-circle icon-button"><\/i><\/button> <div id=reservationUploadInfo class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_HOUSING_RES_UPLOAD_INFO>Use Reservation List Drop Off to submit a list of your personnel and your desired reservations and we will do the work for you.<\/exl-static-text> <\/div> <div data-ng-if=::!groupHousingSectionCtrl.reservationUploadEnabled> <p class=text-alert-color>Reservation Imports are disabled in the staging environment.<\/p> <\/div> <\/div> <ul class="small-block-grid-3 medium-block-grid-4 actionitems"> <li data-ng-repeat="action in ::groupHousingSectionCtrl.actions | filter:{internalName:\'!ReservationUpload\'} track by action.internalName" data-ng-switch=::action.internalName> <exl-section-action data-ng-switch-default action-type={{::action.actionType}} action-command={{::action.actionCommand}} display-name={{::action.displayName}} icon={{::action.icon}}> <\/exl-section-action> <\/li> <\/ul> <\/div>');n.put("App/Dashboard/Views/GroupRegistrationSectionDirective.html",'<div class=exl-padding-small data-ng-if=::groupRegistrationSectionCtrl.isSectionVisible> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_REG_ACTIVITY_HEADER><h3>Registration Activity<\/h3><\/exl-static-text> <table class="table utility stretch exl-bot-margin"> <thead> <tr> <th><exl-static-text id-code=WEB_GROUP_DASH_SECTION_REG_ACTIVITY_COM_HEADER>Completed<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_GROUP_DASH_SECTION_REG_ACTIVITY_INP_HEADER>Incomplete<\/exl-static-text><\/th> <th data-ng-if="::groupRegistrationSectionCtrl.data.bookingFinancials.totalRegBalance > 0"> <exl-static-text id-code=WEB_GROUP_DASH_SECTION_REG_ACTIVITY_BALANCE_HEADER>Due<\/exl-static-text> <\/th> <\/tr> <\/thead> <tbody> <tr> <td>{{::groupRegistrationSectionCtrl.data.bookingSummary.completedReg}}<\/td> <td>{{::groupRegistrationSectionCtrl.data.bookingSummary.inProgressReg}}<\/td> <td data-ng-if="::groupRegistrationSectionCtrl.data.bookingFinancials.totalRegBalance > 0"> <strong class=text-alert-color> {{groupRegistrationSectionCtrl.data.bookingFinancials.totalRegBalance | currency}} <\/strong> <\/td> <\/tr> <\/tbody> <\/table> <div data-ng-if=::groupRegistrationSectionCtrl.isExhibitorRegEnabled> <exl-exhibitor-allotment> <\/exl-exhibitor-allotment><\/div> <ul class="small-block-grid-3 medium-block-grid-4 actionitems"> <li data-ng-repeat="action in ::groupRegistrationSectionCtrl.actions track by action.internalName" data-ng-switch=::action.internalName> <\/li><\/ul><\/div>');n.put("App/Dashboard/Views/HousingSectionDirective.html",'<div class=exl-padding-small data-ng-if="(housingSectionCtrl.reservations| filter: {isCancelled: false}).length"> <div class=row> <div class="columns end"> <small> <em> <ng-pluralize count="(housingSectionCtrl.reservations | filter: {isCancelled: false}).length" when="{\'1\': \'Estimated Room Total:\', \'other\': \'Estimated Total for all Rooms:\'}"><\/ng-pluralize> <\/em> <strong>{{housingSectionCtrl.reservationFeesTotal | currency}}<\/strong> <\/small> <\/div> <\/div> <\/div> <div class="exl-padding-small actionitems" data-ng-repeat="reservation in housingSectionCtrl.reservations track by reservation.reservationID" data-ng-if=!reservation.isCancelled> <h3> {{housingSectionCtrl.facilityData.facility[reservation.facilityId][0].name}} <small> {{reservation.categoryName}}, <ng-pluralize count=housingSectionCtrl.roomNights(reservation) when="{1: \'1 night\', \'other\': \'{} nights\'}"><\/ng-pluralize> <\/small> <span class="text-success-color right" data-ng-if=reservation.isCompleted> <i class="fa fa-check" tooltip="Room is confirmed"><\/i> <\/span>  <\/h3> <ul class="small-block-grid-3 medium-block-grid-4"> <li data-ng-repeat="action in housingSectionCtrl.actions track by action.internalName" data-ng-switch=action.internalName> <exl-section-action data-ng-switch-when=Occupants action-type={{action.actionType}} action-command={{action.actionCommand}} action-should-return=true display-name="{{reservation.occupants.length ? reservation.occupants[0].bookingRegistrantName : action.displayName }}" icon={{action.icon}} params="{ id: reservation.reservationID }" count="reservation.occupants.length - 1" show-count-sign=true is-disabled=housingSectionCtrl.housingClosed><\/exl-section-action> <exl-section-action data-ng-switch-when=Dates action-type={{action.actionType}} action-command={{action.actionCommand}} display-name="{{(reservation.checkInDate | date: \'shortDate\') + \' &ndash; \' + (reservation.checkOutDate | date: \'shortDate\')}}" icon={{action.icon}} data-exl-room-change-dates=reservation is-disabled=housingSectionCtrl.housingClosed><\/exl-section-action> <button type=button data-ng-switch-when=Fees data-dropdown-toggle=#ddRoomFees_{{reservation.reservationID}}> <i data-ng-class=action.icon><\/i> <div> {{action.displayName}} <\/div> <\/button> <exl-room-fees dropdown-id=ddRoomFees_{{reservation.reservationID}} sub-block=housingSectionCtrl.reservationFees[reservation.reservationID] data-ng-switch-when=Fees><\/exl-room-fees> <button type=button data-ng-switch-when=CancelPolicy data-dropdown-toggle=#ddCancelPolicy_{{reservation.reservationID}}> <i data-ng-class=action.icon><\/i> <div> {{action.displayName}} <\/div> <\/button> <div id=ddCancelPolicy_{{reservation.reservationID}} class="small f-dropdown f-dropdown-bump-down content" data-ng-switch-when=CancelPolicy> <exl-facility-cancel-policy facility-id=reservation.facilityId reg-type-group-code=reservation.leadOccAttendeeType res-check-in-date=reservation.checkInDate><\/exl-facility-cancel-policy> <\/div> <exl-section-action data-ng-switch-when=CancelRoom action-type={{action.actionType}} action-command={{action.actionCommand}} display-name={{action.displayName}} icon={{action.icon}} data-exl-room-cancel=reservation is-disabled=housingSectionCtrl.housingClosed><\/exl-section-action> <exl-section-action data-ng-switch-when=WaitlistDates data-ng-show=reservation.isWaitListed action-type={{action.actionType}} action-command={{action.actionCommand}} display-name={{action.displayName}} icon={{action.icon}} data-dropdown-toggle=#ddWaitlistDates_reservation_{{reservation.reservationID}} is-disabled=housingSectionCtrl.housingClosed><\/exl-section-action> <div data-ng-switch-when=WaitlistDates id=ddWaitlistDates_reservation_{{reservation.reservationID}} class="f-dropdown medium content"> <exl-facility-waitlist-dates reservation-id=reservation.reservationID check-in-date=reservation.checkInDate check-out-date=reservation.checkOutDate><\/exl-facility-waitlist-dates> <\/div> <exl-section-action data-ng-switch-default action-type={{action.actionType}} action-command={{action.actionCommand}} action-should-return=true display-name={{action.displayName}} icon={{action.icon}} is-disabled=housingSectionCtrl.housingClosed><\/exl-section-action> <\/li>  <li data-ng-if=reservation.isInProgress> <exl-section-action action-type=TASK action-command=ShowSummary display-name="Confirm Room(s)" icon="fa fa-warning" button-class=text-warning-color-dark is-disabled=housingSectionCtrl.housingClosed><\/exl-section-action> <\/li> <\/ul> <\/div> ');n.put("App/Dashboard/Views/RegistrationSectionDirective.html",'<div data-ng-show=registrationSectionCtrl.showSectionActions> <div class="exl-padding-small actionitems" data-ng-show=registrationSectionCtrl.registrant> <ul class="small-block-grid-3 medium-block-grid-4"> <li data-ng-repeat="action in registrationSectionCtrl.actions" data-ng-switch=action.internalName data-ng-if=registrationSectionCtrl.actionVisible(action.internalName)> <exl-section-action data-ng-switch-when=Guest action-type={{action.actionType}} action-command={{action.actionCommand}} action-should-return=registrationSectionCtrl.registrant.isCompleted display-name={{action.displayName}} icon={{action.icon}} count="registrationSectionCtrl.registrant.guestArray.length || null" show-count-sign=true><\/exl-section-action> <button type=button data-ng-switch-when=Badge data-ng-click=registrationSectionCtrl.showBadge(registrationSectionCtrl.registrant.registrantId)> <i data-ng-class=action.icon><\/i> <div> {{action.displayName}} <\/div> <\/button> <button type=button data-ng-switch-when=Agenda data-ng-click=registrationSectionCtrl.showAgenda(registrationSectionCtrl.registrant)> <i data-ng-class=action.icon><\/i> <div> {{action.displayName}} <\/div> <\/button> <exl-section-action data-ng-switch-when=ShowItem action-type={{action.actionType}} action-command={{action.actionCommand}} action-should-return=registrationSectionCtrl.registrant.isCompleted display-name={{action.displayName}} icon={{action.icon}}><\/exl-section-action> <exl-section-action data-ng-switch-default action-type={{action.actionType}} action-command={{action.actionCommand}} action-should-return=registrationSectionCtrl.registrant.isCompleted display-name={{action.displayName}} icon={{action.icon}}><\/exl-section-action> <\/li> <\/ul> <\/div> <\/div>');n.put("App/Dashboard/Views/SectionActionDirective.html","<button type=button data-ng-class=sectionActionCtrl.buttonClass data-ng-click=sectionActionCtrl.click() data-ng-disabled=sectionActionCtrl.isDisabled> <i data-ng-class=sectionActionCtrl.icon><\/i> <sup class=badge data-ng-if=sectionActionCtrl.hasCount()> {{sectionActionCtrl.showCountSign && (sectionActionCtrl.count >= 0) ? '+' : ''}}{{sectionActionCtrl.count | number: 0}} <\/sup> <div> {{sectionActionCtrl.displayName}} <\/div> <\/button>");n.put("App/Dashboard/Views/ShowItemSectionDirective.html",'<div class="exl-padding-small actionitems ng-hide" ng-show=ShowItemSection.isVisible> <ul class="small-block-grid-3 medium-block-grid-4"> <li ng-if=ShowItemSection.config.enableLikes> <exl-registrant-like-totals like-type-code=SHOWITEM like-click="ShowItemSection.likeToggle(active, cache)" like-total=ShowItemSection.likeTotal ng-if=ShowItemSection.config.enableLikes> <\/exl-registrant-like-totals> <\/li> <li ng-repeat="qf in ShowItemSection.quickFilters" ng-if=ShowItemSection.config.enableQuickSearch> <exl-show-item-quick-search filter=qf ng-click=ShowItemSection.quickSearch(qf)> <\/exl-show-item-quick-search> <\/li> <\/ul> <\/div> ');n.put("App/Demographic/Views/DemographicTask.html","<exl-static-text id-code=WEB_ATT_DEMOGRAPHIC_P1><p>Please complete the following fields.<\/p><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <form class=demographics name=taskCtrl.formDemographic novalidate method=post action=javascript:void(0)> <exl-wizard-task-layout profile=taskCtrl.profile><\/exl-wizard-task-layout> <\/form> <hr> <exl-wizard-nav click-button-next=taskCtrl.next()><\/exl-wizard-nav>");n.put("App/Diagnostics/Views/Diagnostics.html",'<div class="row exl-bot-margin"> <div class="medium-4 columns"> <label>Show Code<\/label> <h3>{{ diaCtrl.results.showCode }}<\/h3> <\/div> <div class="medium-4 columns"> <label>Web Server<\/label> <h3>{{ diaCtrl.results.machineName }}<\/h3> <\/div> <div class="medium-4 columns"> <label>Database Server<\/label> <h3>{{ diaCtrl.results.sqlServer}}<\/h3> <\/div> <\/div> <h2>On-Demand Tests<\/h2> <table class="table utility exl-bot-margin"> <tr> <th>Test<\/th> <th>Result<\/th> <\/tr> <tr ng-repeat="result in diaCtrl.results.onDemandResults"> <td> {{ result.displayText }} <ul> <li ng-repeat="error in result.executionMessageList">{{ error.text }}<\/li> <\/ul> <\/td> <td> <span class="label radius success" ng-show=result.isValid>Success<\/span> <span class="label radius alert" ng-show=!result.isValid>Fail<\/span> <\/td> <\/tr> <\/table> <h2>Cached Tests<\/h2> <table class="table utility exl-bot-margin"> <tr> <th>Test<\/th> <th>Result<\/th> <\/tr> <tr ng-repeat="result in diaCtrl.results.cachedResults"> <td> {{ result.displayText }} <ul> <li ng-repeat="error in result.executionMessageList">{{ error.text }}<\/li> <\/ul> <\/td> <td> <span class="label radius success" ng-show=result.isValid>Success<\/span> <span class="label radius alert" ng-show=!result.isValid>Fail<\/span> <\/td> <\/tr> <\/table> <p> <strong> Last Execution: {{ diaCtrl.results.lastCachedTestRun }} <br> Earliest Next Execution: {{ diaCtrl.results.nextCachedTestRun }} <br> <a class="button small alert" ng-click=diaCtrl.forcedExecute()>Force Execution<\/a> <\/strong> <\/p> ');n.put("App/Exhibitor/Views/ExhibitingCompanyInfoTask.html",'<exl-static-text id-code=WEB_EXH_CO_INFO_P1> <p>Please review your company information and click Next.<\/p> <\/exl-static-text> <exl-static-text id-code=WEB_EXH_CO_INFO_P2><\/exl-static-text> <div class=exh_company_info> <exl-static-text id-code=WEB_EXH_CO_INFO_L1> <span class=company_header>Exhibiting Company Information<\/span> <\/exl-static-text> <div data-ng-show=taskCtrl.exCompany> <h2> {{taskCtrl.exCompany.company}} <\/h2> <address> {{taskCtrl.exCompany.city}}<span data-ng-if="taskCtrl.exCompany.city && (taskCtrl.exCompany.stateCode || taskCtrl.exCompany.countryCode)">, <\/span> {{taskCtrl.exCompany.stateCode}}<span data-ng-if="taskCtrl.exCompany.stateCode && taskCtrl.exCompany.countryCode">, <\/span> {{taskCtrl.exCompany.countryCode}} {{taskCtrl.exCompany.zipCode}} <\/address> <\/div> <\/div> <div> <exl-wizard-nav hide-button-back=true><\/exl-wizard-nav> <\/div>');n.put("App/Exhibitor/Views/ExhibitingCompanySearchTask.html",'<exl-static-text id-code=WEB_EXH_CO_SEARCH_P1> <p>Enter the first several letters of your company name and click Next.<\/p> <\/exl-static-text> <div class="row exl-top-margin collapse"> <div class="medium-6 medium-centered columns"> <form name=frmCompanySearch data-ng-submit=taskCtrl.next()> <label>Company Name<\/label> <input type=text data-ng-model=taskCtrl.companyName data-ng-required=true> <button type=submit class="dark exl-top-margin-small" data-ng-disabled=frmCompanySearch.$invalid data-ng-cloak> <i class="fa fa-search"><\/i> {{taskCtrl.isSearched ? \'Refresh Results\' : \'Search\'}} <\/button> <\/form> <\/div> <\/div> <exl-static-text id-code=WEB_EXH_CO_SEARCH_P2> <\/exl-static-text> <exl-static-text id-code=WEB_EXH_CO_SEARCH_P3> <\/exl-static-text> <div class="row collapse exl-top-margin" data-ng-show="taskCtrl.companyList && taskCtrl.companyList.length"> <div class="medium-6 columns medium-centered"> <button data-ng-repeat="company in taskCtrl.companyList" data-ng-click=taskCtrl.selectCompany(company) class="expand exl-padding exl-bot-margin-tiny text-left"> <i class="fa fa-lg fa-chevron-right right text-secondary-color-light exl-top-margin-tiny"><\/i><strong>{{company.company}}<\/strong> <\/button> <\/div> <\/div> <div> <exl-wizard-nav hide-button-next=true click-button-back=taskCtrl.back() always-enable-button-back=true hide-button-dashboard=taskCtrl.hideButtonDashboard()><\/exl-wizard-nav> <\/div>');n.put("App/Exhibitor/Views/ExhibitingCompanyValidateTask.html",'<div class="row exl-top-margin collapse"> <div class="medium-6 medium-centered columns"> <h2> {{taskCtrl.exCompany.company}} <\/h2> <exl-static-text id-code=WEB_EXH_CO_VALIDATE_P1> <p>Enter your password and click Next.<\/p> <\/exl-static-text> <label class=selfvalidate>Password<\/label> <input type=password data-ng-model=taskCtrl.password> <p class=exl-top-margin data-ng-if=!taskCtrl.isSelfReg> <exl-static-text id-code=WEB_EXH_REMEMBER_PASSWORD>Remember Password?<\/exl-static-text> <button type=button class=empty data-tooltip="Toggle Remember Password" data-ng-model=taskCtrl.rememberPassword btn-checkbox btn-checkbox-true=1 btn-checkbox-false=0> <i class="fa fa-lg" data-ng-class="taskCtrl.rememberPassword == \'1\' ? \'fa-check-square-o text-success-color\' : \'fa-square-o\'"><\/i> <\/button> <\/p> <div data-ng-if="taskCtrl.exCompany.email && !taskCtrl.isSelfReg"> <p class=exl-top-margin> <exl-static-text id-code=WEB_EXH_CO_VALIDATE_P2 allow-html=false> Forgot your password? <\/exl-static-text> <a ng-click=taskCtrl.forgotPassword()> Click here <\/a> <exl-static-text id-code=WEB_EXH_CO_VALIDATE_P3 allow-html=false> To have your password sent to the email address that we have on file for your company. <\/exl-static-text> <\/p> <\/div> <\/div> <\/div> <exl-wizard-nav click-button-next=taskCtrl.next() hide-button-dashboard=taskCtrl.hideButtonDashboard() label-button-next="\'Next\'"><\/exl-wizard-nav> ');n.put("App/Exhibitor/Views/ExhibitorAllotmentDirective.html",' <table class="table utility stretch"> <thead> <tr> <th><exl-static-text id-code=WEB_EXH_ALLOTMENT_SUMMARY_HEADER_TYPE>Registration Type(s)<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_EXH_ALLOTMENT_SUMMARY_HEADER_LIMIT>Allotment Total<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_EXH_ALLOTMENT_SUMMARY_HEADER_USED>Total Registered<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_EXH_ALLOTMENT_SUMMARY_HEADER_AVAILABLE>Allotment Available<\/exl-static-text><\/th> <\/tr> <\/thead> <tbody> <tr data-ng-repeat="allotment in ::ExhAllotmentCtrl.allotments"> <td data-ng-if="::ExhAllotmentCtrl.allotmentConfigData.showRegTypeDesc && !ExhAllotmentCtrl.allotmentConfigData.showAllotmentDesc"><div>{{::allotment.regTypeDesc}}<\/div><\/td> <td data-ng-if="::!ExhAllotmentCtrl.allotmentConfigData.showRegTypeDesc && ExhAllotmentCtrl.allotmentConfigData.showAllotmentDesc">{{::allotment.allotmentDesc}}<\/td> <td data-ng-if="::ExhAllotmentCtrl.allotmentConfigData.showRegTypeDesc && ExhAllotmentCtrl.allotmentConfigData.showAllotmentDesc"><div>{{::allotment.allotmentDesc}}<div>{{::allotment.regTypeDesc}}<\/div><\/div><\/td> <td>{{::allotment.limit}}<\/td> <td>{{::allotment.used}}<\/td> <td>{{::allotment.available}}<\/td> <\/tr> <\/tbody> <\/table> ');n.put("App/Exhibitor/Views/ExhibitorAllotmentModal.html","<exl-exhibitor-allotment> <\/exl-exhibitor-allotment>");n.put("App/FriendInvite/Views/FriendInviteTask.html",'<exl-static-text id-code=WEB_ATT_FRIEND_INVITE_P1><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <h2>To:<\/h2> <form name=taskCtrl.formFriendInvite{{$index}} novalidate ng-repeat="friend in taskCtrl.friends"> <div class=row> <div class="columns medium-4" ng-repeat="fd in friend.fieldDetails"> <exl-field-detail item=fd profile=friend><\/exl-field-detail> <\/div> <\/div> <hr> <\/form> <p><\/p> <form name=taskCtrl.formReg novalidate> <h2>From:<\/h2> <div class=row> <div class="columns medium-4" ng-repeat="fd in taskCtrl.regFieldDetails"> <exl-field-detail item=fd profile=taskCtrl.reg><\/exl-field-detail> <\/div> <\/div> <hr> <p><\/p> <div class=row> <div class="columns medium-6"> <exl-field-detail item=taskCtrl.defaults.fd profile=taskCtrl.info><\/exl-field-detail> <\/div> <div class="columns medium-6"> <button type=button class=exl-form-button-no-label ng-click=taskCtrl.preview()> Preview Invitation <\/button> <button type=button class=exl-form-button-no-label ng-click=taskCtrl.send() ng-disabled=taskCtrl.defaults.enableSend> Send Invitation <\/button> <\/div> <\/div> <hr> <\/form> <exl-wizard-nav><\/exl-wizard-nav>');n.put("App/Guest/Views/GuestTask.html",'<exl-static-text id-code=WEB_EMBEDDED_GUESTS_P1> <p>Please add or edit guests below.<\/p> <\/exl-static-text> <ul class="small-block-grid-1 medium-block-grid-2"> <li class=exl-guest-form-top> <div class=vertDivide> <h2> {{taskCtrl.guest.registrantId ? \'Edit\' : \'Add\'}} {{::taskCtrl.term}} <small ng-if="taskCtrl.guest && taskCtrl.guest.registrantId"> ({{taskCtrl.guest.firstName + \' \' + taskCtrl.guest.lastName}}) <\/small> <\/h2> <form name=taskCtrl.frmGuest data-ng-submit=taskCtrl.saveGuest()> <div data-ng-if=taskCtrl.noRegList.length> <exl-select-list-modal itemlist=taskCtrl.noRegList selecteditem=taskCtrl.selectedReg title="Select a {{::taskCtrl.term}}" modalcss=small tabindex=-1> <\/exl-select-list-modal> <div class=or> <span>or<\/span> <\/div> <\/div> <exl-wizard-task-layout layout=GUEST profile=taskCtrl.guest field-detail-data=taskCtrl.fieldDetailData interface-type><\/exl-wizard-task-layout> <p class=exl-top-margin> <button type=button class=secondary data-ng-click=taskCtrl.cancelEditGuest() data-ng-show=taskCtrl.guest.registrantId> Cancel <\/button> <button type=submit class data-ng-disabled="!taskCtrl.guest.registrantId && taskCtrl.limit && taskCtrl.guestArray.length >= taskCtrl.limit"> <i class=fa data-ng-class="taskCtrl.guest.registrantId ? \'fa-save\' : \'fa-user-plus\'"><\/i> {{taskCtrl.guest.registrantId ? \'Save\' : \'Add\'}} <\/button> <\/p> <\/form> <\/div> <hr class=show-for-small-only> <\/li> <li> <h2 ng-show=taskCtrl.limit>{{::taskCtrl.termPlural}} ({{taskCtrl.guestArray.length}} of {{taskCtrl.limit}})<\/h2> <h2 ng-show=!taskCtrl.limit>{{::taskCtrl.termPlural}}<\/h2> <ol class=small-block-grid-1> <li data-ng-hide=taskCtrl.guestArray.length> <em> You haven\'t added any {{::taskCtrl.termPluralLower}}. <\/em> <\/li> <li data-ng-repeat="guest in taskCtrl.guestArray track by guest.registrantId"> <ul class=button-group> <li> <button type=button aria-label=Edit class data-ng-click=taskCtrl.editGuest(guest) data-ng-disabled=taskCtrl.guest.registrantId data-exl-scroll-to=.exl-guest-form-top> <i class="fa fa-pencil"><\/i> {{guest.bookingRegistrantName}} <\/button> <\/li> <li> <button type=button class=secondary aria-label=Remove data-ng-click=taskCtrl.removeGuest(guest) data-ng-disabled="guest.isCompleted || taskCtrl.guest.registrantId"> <i class="fa fa-user-times"><\/i> <\/button> <\/li> <\/ul> <\/li> <\/ol> <\/li> <\/ul> <exl-wizard-nav><\/exl-wizard-nav> ');n.put("App/InterfaceGuide/Views/Accordions.html",'<h1>Accordions<\/h1> <p>Accordions use the Pinecone/Angular/Foundation markup: <a href=//pineconellc.github.io/angular-foundation/#/accordion target=_blank>http://pineconellc.github.io/angular-foundation/#/accordion<\/a><\/p> <h2 class=groupheader>Standard Accordion<\/h2> <accordion> <accordion-group heading="Headers can be really long, longer than would be optimal. They can be incredibly long. Go ahead, write a novel in the header." is-open=true> <ul> <li>The icon indicator for open/closed can be changed in sass/app/components/accordion. It can be changed for all accordions, or customized for a specific accordion class.<\/li> <li>The open/closed icons are FontAwesome icons.<\/li> <li>An accordion can be marked to be initially open. For demographics, this is a configuration item.<\/li> <li>Long headers automatically wrap to additional lines.<\/li> <\/ul> <\/accordion-group> <accordion-group heading="Dynamic Body Content"> <p>The body of the accordion group grows to fit the contents<\/p> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vel volutpat nulla, nec tristique augue. Suspendisse pretium fringilla eros in mattis. Fusce dui purus, consequat id diam non, semper aliquet arcu. Mauris mollis turpis et leo ornare interdum. Maecenas diam felis, consectetur non mi quis, dictum condimentum elit. Mauris ultricies, nibh id scelerisque pellentesque, urna velit convallis libero, eget luctus velit nisi sed magna. Vivamus felis lacus, condimentum at scelerisque sed, molestie eu ligula. Integer id scelerisque urna. Nam ac rhoncus sem. Quisque dictum nibh mollis, varius lorem eget, convallis erat. Nam pellentesque facilisis mi, nec scelerisque magna bibendum at. <\/p> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vel volutpat nulla, nec tristique augue. Suspendisse pretium fringilla eros in mattis. Fusce dui purus, consequat id diam non, semper aliquet arcu. Mauris mollis turpis et leo ornare interdum. Maecenas diam felis, consectetur non mi quis, dictum condimentum elit. Mauris ultricies, nibh id scelerisque pellentesque, urna velit convallis libero, eget luctus velit nisi sed magna. Vivamus felis lacus, condimentum at scelerisque sed, molestie eu ligula. Integer id scelerisque urna. Nam ac rhoncus sem. Quisque dictum nibh mollis, varius lorem eget, convallis erat. Nam pellentesque facilisis mi, nec scelerisque magna bibendum at. <\/p> <\/accordion-group> <accordion-group> <accordion-heading> <i class="fa fa-fw fa-check text-success-color"><\/i>Accordion heading with an icon <span class=answer><small><em>This is an answer.<\/em><\/small><\/span> <\/accordion-heading> <p>Demographic accordions show the answer in the accordion, and a checkmark to indicate success. The required field indicator is show on the right: When the question is answered, the checkmark replaces the required field indicator.<\/p> <\/accordion-group> <\/accordion> <h2 class=groupheader>Footer Accordion<\/h2> <p>Footer accordions automatically display as open for medium/large screens, and closed for small screens. Footer accordions have a different style than standard accordion. There is a great demo of footer accordions at the bottom of this page.<\/p> <h2 class=groupheader>Accordion Tabs<\/h2> <p>This is a hybrid - tabs on medium/large screen, and accordion display on small screen. <\/p> <exl-accordion-tab> <exl-accordion-tab-group heading="First Tab"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vel volutpat nulla, nec tristique augue. Suspendisse pretium fringilla eros in mattis. Fusce dui purus, consequat id diam non, semper aliquet arcu. Mauris mollis turpis et leo ornare interdum. Maecenas diam felis, consectetur non mi quis, dictum condimentum elit. Mauris ultricies, nibh id scelerisque pellentesque, urna velit convallis libero, eget luctus velit nisi sed magna. Vivamus felis lacus, condimentum at scelerisque sed, molestie eu ligula. <\/exl-accordion-tab-group>     <exl-accordion-tab-group is-open=true heading="Second Tab"> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vel volutpat nulla, nec tristique augue. Suspendisse pretium fringilla eros in mattis. Fusce dui purus, consequat id diam non, semper aliquet arcu. Mauris mollis turpis et leo ornare interdum. Maecenas diam felis, consectetur non mi quis, dictum condimentum elit. Mauris ultricies, nibh id scelerisque pellentesque, urna velit convallis libero, eget luctus velit nisi sed magna. Vivamus felis lacus, condimentum at scelerisque sed, molestie eu ligula. Integer id scelerisque urna. Nam ac rhoncus sem. Quisque dictum nibh mollis, varius lorem eget, convallis erat. Nam pellentesque facilisis mi, nec scelerisque magna bibendum at. <\/p> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vel volutpat nulla, nec tristique augue. Suspendisse pretium fringilla eros in mattis. Fusce dui purus, consequat id diam non, semper aliquet arcu. Mauris mollis turpis et leo ornare interdum. Maecenas diam felis, consectetur non mi quis, dictum condimentum elit. Mauris ultricies, nibh id scelerisque pellentesque, urna velit convallis libero, eget luctus velit nisi sed magna. Vivamus felis lacus, condimentum at scelerisque sed, molestie eu ligula. Integer id scelerisque urna. Nam ac rhoncus sem. Quisque dictum nibh mollis, varius lorem eget, convallis erat. Nam pellentesque facilisis mi, nec scelerisque magna bibendum at. <\/p> <\/exl-accordion-tab-group> <exl-accordion-tab-group> <exl-accordion-tab-heading> Third Tab <\/exl-accordion-tab-heading> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vel volutpat nulla, nec tristique augue. Suspendisse pretium fringilla eros in mattis. Fusce dui purus, consequat id diam non, semper aliquet arcu. Mauris mollis turpis et leo ornare interdum. Maecenas diam felis, consectetur non mi quis, dictum condimentum elit. Mauris ultricies, nibh id scelerisque pellentesque, urna velit convallis libero, eget luctus velit nisi sed magna. Vivamus felis lacus, condimentum at scelerisque sed, molestie eu ligula.<\/p> <\/exl-accordion-tab-group> <\/exl-accordion-tab> ');n.put("App/InterfaceGuide/Views/Animations.html",'<h1>Animation<\/h1> <p>We\'re using a 3rd-party animation library: http://daneden.github.io/animate.css/. The base show has support for fade and slide behaviors that are enabled with a simple css class. The classes are set up in sass/app/base/aniimations. Additional animations can be added at the show level.<\/p> <p>Try it out below!<\/p> <h2 class=groupheader>Show/Hide with Fade and Slide<\/h2> <h3 class=infoheader>Animated Show / Hide<\/h3> <button class="btn btn-default" ng-click="isVisible = !isVisible">{{isVisible ? \'Hide item\' : \'Show item\'}}<\/button> <div ng-show=isVisible class="exl-padding-small exl-fade-in-only exl-fade-out-only background-alert-color text-secondary-color-lightest" style=width:300px;height:100px;> Watch me fade from view <\/div> <div ng-show=isVisible class="exl-padding-small background-primary-color text-secondary-color-lightest exl-slide-in-down exl-slide-out-up" style=width:300px;height:100px;> Watch me slide into view <\/div> <h2 class=groupheader>Fades and Slides<\/h2> <button class="btn btn-default" ng-click=vm.addItem()>Add item<\/button> <button class="btn btn-default" ng-click=vm.removeItem()>Remove item<\/button> <div class=row> <div class="columns small-4"> <h3 class=infoheader>Fade In<\/h3> <ul> <li class=exl-fade-in-only ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <div class="columns small-4"> <h3 class=infoheader>Fade Out<\/h3> <ul> <li class=exl-fade-out-only ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <div class="columns small-4"> <h3 class=infoheader>Fade In and Out<\/h3> <ul> <li class="exl-fade-in-only exl-fade-out-only" ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <\/div> <div class=row> <div class="column small-4"> <h3 class=infoheader>Fade In Left<\/h3> <ul> <li class=exl-fade-in-left ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <div class="column small-4"> <h3 class=infoheader>Fade In Down<\/h3> <ul> <li class=exl-fade-in-down ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <div class="column small-4"> <h3 class=infoheader>Fade In Right<\/h3> <ul> <li class=exl-fade-in-right ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <\/div> <div class=row> <div class="column small-4"> <h3 class=infoheader>Slide In Left<\/h3> <ul> <li class="exl-slide-in-left exl-slide-out-left" ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <div class="column small-4"> <h3 class=infoheader> Slide In Down<\/h3> <ul> <li class="exl-slide-in-down exl-slide-out-down" ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <div class="column small-4"> <h3 class=infoheader>Slide In Right<\/h3> <ul> <li class="exl-slide-in-right exl-slide-out-right" ng-repeat="item in items">{{item}}<\/li> <\/ul> <\/div> <\/div> ');n.put("App/InterfaceGuide/Views/buttons.html",'<h1>Buttons<\/h1> <p>Button styles can be applied to both button elements and links. A button element doesn\'t require class="button" but links do.<\/p> <h2 class=groupheader>Standard buttons<\/h2> <ul class=medium-block-grid-2> <li> <label>class="button"<\/label> <a class=button>Plain ol\' button<\/a><br> If you use a &lt;button&gt; element without a class, this is what you\'ll get <\/li> <li><label>class="button dark"<\/label><a class="button dark">Button<\/a><br>This color is used only for buttons that move the user forward in a flow.<\/li> <li><label>class="button secondary"<\/label><a class="button secondary">Secondary Button<\/a><br>For "Cancel" buttons<\/li> <li><label>class="button info"<\/label><a class="button info">Info Button<\/a><br>When you need a button to "pop"<\/li> <li><label>class="button success"<\/label><a class="button success">Success Button<\/a><br>This color is for buying something: add-to-cart and payment buttons<\/li> <\/ul> <h2 class=groupheader>Size modifiers<\/h2> <ul class=medium-block-grid-2> <li><label>class="button large"<\/label><a class="button large">Honkin\' large button<\/a><\/li> <li> <label>class="button"<\/label> <a class=button>Standard size<\/a> <\/li> <li><label>class="button small"<\/label><a class="button small">Small button<\/a><\/li> <li><label>class="button tiny"<\/label><a class="button tiny">Itty bitty button<\/a><\/li> <\/ul> <h2 class=groupheader>Shape Modifiers<\/h2> <ul class=medium-block-grid-1> <li> <label>class="button expand"<\/label> <a class="button expand">Wide button<\/a> <br>This creates a button that will expand to fit its container <\/li> <li> <label>class="button radius"<\/label> <a class="button radius">Rounded corner button<\/a> <\/li> <li> <label>class="button round"<\/label> <a class="button round">Rounded button<\/a> <\/li> <\/ul> <h2 class=groupheader>Special purpose buttons<\/h2> <ul class=medium-block-grid-2> <li> <label>class="button transparent"<\/label> <a class="button transparent">Transparent button<\/a> <br>For buttons with no background color or border. <\/li> <li> <label>class="button empty"<\/label> <a class="button empty">Empty button<\/a> <br>For buttons that need to align with adjacent text. <\/li> <\/ul>');n.put("App/InterfaceGuide/Views/Colors.html",'<h1>Color!<\/h1> <p> The base show uses 2 client-specifc colors: Primary (dark) and Accent (an accent color). In addition to the client colors, we have 4 colors that are used for communicating statuses and messages: Alert, Warning, Success, Info. Tints and shades of these colors are calculated from these color values. Color adjustments are done by Design Services - there is not a way for you to choose colors in ShowManager.<\/p> <p>If you want to use a color in static text, you can add a css class to the elements you want to change. Background and text color classes are shown below.<\/p> <h2 class=groupheader>Background Colors/Classes<\/h2> <ul class=medium-block-grid-2> <li> Primary <div class="color-palette text-reverse background-primary-color-darkest">background-primary-color-darkest<\/div> <div class="color-palette text-reverse background-primary-color-darker">background-primary-color-darker<\/div> <div class="color-palette text-reverse background-primary-color-dark">background-primary-color-dark<\/div> <div class="color-palette text-reverse background-primary-color">background-primary-color<\/div> <div class="color-palette background-primary-color-light">background-primary-color-light<\/div> <div class="color-palette background-primary-color-lighter">background-primary-color-lighter<\/div> <div class="color-palette background-primary-color-lightest">background-primary-color-lightest<\/div> <\/li> <li> Accent <div class="color-palette text-reverse background-accent-color-darkest">background-accent-color-darkest<\/div> <div class="color-palette text-reverse background-accent-color-darker">background-accent-color-darker<\/div> <div class="color-palette text-reverse background-accent-color-dark">background-accent-color-dark<\/div> <div class="color-palette text-reverse background-accent-color">background-accent-color<\/div> <div class="color-palette background-accent-color-light">background-accent-color-light<\/div> <div class="color-palette background-accent-color-lighter">background-accent-color-lighter<\/div> <div class="color-palette background-accent-color-lightest">background-accent-color-lightest<\/div> <\/li> <\/ul> <ul class=medium-block-grid-2> <li> Secondary (neutral) <div class="color-palette text-reverse background-secondary-color-darkest">background-secondary-color-darkest<\/div> <div class="color-palette text-reverse background-secondary-color-darker">background-secondary-color-darker<\/div> <div class="color-palette text-reverse background-secondary-color-dark">background-secondary-color-dark<\/div> <div class="color-palette text-reverse background-secondary-color">background-secondary-color<\/div> <div class="color-palette background-secondary-color-light">background-secondary-color-light<\/div> <div class="color-palette background-secondary-color-lighter">background-secondary-color-lighter<\/div> <div class="color-palette background-secondary-color-lightest">background-secondary-color-lightest<\/div> <\/li> <li> Info <div class="color-palette text-reverse background-info-color-darkest">background-info-color-darkest<\/div> <div class="color-palette text-reverse background-info-color-darker">background-info-color-darker<\/div> <div class="color-palette text-reverse background-info-color-dark">background-info-color-dark<\/div> <div class="color-palette background-info-color">background-info-color<\/div> <div class="color-palette background-info-color-light">background-info-color-light<\/div> <div class="color-palette background-info-color-lighter">background-info-color-lighter<\/div> <div class="color-palette background-info-color-lightest">background-info-color-lightest<\/div> <\/li> <li> Alert <div class="color-palette text-reverse background-alert-color-darkest">background-alert-color-darkest<\/div> <div class="color-palette text-reverse background-alert-color-darker">background-alert-color-darker<\/div> <div class="color-palette text-reverse background-alert-color-dark">background-alert-color-dark<\/div> <div class="color-palette text-reverse background-alert-color">background-alert-color<\/div> <div class="color-palette background-alert-color-light">background-alert-color-light<\/div> <div class="color-palette background-alert-color-lighter">background-alert-color-lighter<\/div> <div class="color-palette background-alert-color-lightest">background-alert-color-lightest<\/div> <\/li> <li> Success <div class="color-palette text-reverse background-success-color-darkest">background-success-color-darkest<\/div> <div class="color-palette text-reverse background-success-color-darker">background-success-color-darker<\/div> <div class="color-palette text-reverse background-success-color-dark">background-success-color-dark<\/div> <div class="color-palette text-reverse background-success-color">background-success-color<\/div> <div class="color-palette background-success-color-light">background-success-color-light<\/div> <div class="color-palette background-success-color-lighter">background-success-color-lighter<\/div> <div class="color-palette background-success-color-lightest">background-success-color-lightest<\/div> <\/li> <li> Warning <div class="color-palette text-reverse background-warning-color-darkest">background-warning-color-darkest<\/div> <div class="color-palette text-reverse background-warning-color-darker">background-warning-color-darker<\/div> <div class="color-palette text-reverse background-warning-color-dark">background-warning-color-dark<\/div> <div class="color-palette text-reverse background-warning-color">background-warning-color<\/div> <div class="color-palette background-warning-color-light">background-warning-color-light<\/div> <div class="color-palette background-warning-color-lighter">background-warning-color-lighter<\/div> <div class="color-palette background-warning-color-lightest">background-warning-color-lightest<\/div> <\/li> <\/ul> <h2 class=groupheader>Text Colors/Classes<\/h2> <ul class=medium-block-grid-4> <li> Primary <div class="color-palette text-primary-color-darkest">text-primary-color-darkest<\/div> <div class="color-palette text-primary-color-darker">text-primary-color-darker<\/div> <div class="color-palette text-primary-color-dark">text-primary-color-dark<\/div> <div class="color-palette text-primary-color">text-primary-color<\/div> <div class="color-palette text-primary-color-light">text-primary-color-light<\/div> <div class="color-palette text-primary-color-lighter">text-primary-color-lighter<\/div> <div class="color-palette text-primary-color-lightest">text-primary-color-lightest<\/div> <\/li> <li> Secondary (neutral) <div class="color-palette text-secondary-color-darkest">text-secondary-color-darkest<\/div> <div class="color-palette text-secondary-color-darker">text-secondary-color-darker<\/div> <div class="color-palette text-secondary-color-dark">text-secondary-color-dark<\/div> <div class="color-palette text-secondary-color">text-secondary-color<\/div> <div class="color-palette text-secondary-color-light">text-secondary-color-light<\/div> <div class="color-palette text-secondary-color-lighter">text-secondary-color-lighter<\/div> <div class="color-palette text-secondary-color-lightest">text-secondary-color-lightest<\/div> <\/li> <li> Accent <div class="color-palette text-accent-color-darkest">text-accent-color-darkest<\/div> <div class="color-palette text-accent-color-darker">text-accent-color-darker<\/div> <div class="color-palette text-accent-color-dark">text-accent-color-dark<\/div> <div class="color-palette text-accent-color">text-accent-color<\/div> <div class="color-palette text-accent-color-light">text-accent-color-light<\/div> <div class="color-palette text-accent-color-lighter">text-accent-color-lighter<\/div> <div class="color-palette text-accent-color-lightest">text-accent-color-lightest<\/div> <\/li> <li><\/li> <li> Alert <div class="color-palette text-alert-color-darkest">text-alert-color-darkest<\/div> <div class="color-palette text-alert-color-darker">text-alert-color-darker<\/div> <div class="color-palette text-alert-color-dark">text-alert-color-dark<\/div> <div class="color-palette text-alert-color">text-alert-color<\/div> <div class="color-palette text-alert-color-light">text-alert-color-light<\/div> <div class="color-palette text-alert-color-lighter">text-alert-color-lighter<\/div> <div class="color-palette text-alert-color-lightest">text-alert-color-lightest<\/div> <\/li> <li> Success <div class="color-palette text-success-color-darkest">text-success-color-darkest<\/div> <div class="color-palette text-success-color-darker">text-success-color-darker<\/div> <div class="color-palette text-success-color-dark">text-success-color-dark<\/div> <div class="color-palette text-success-color">text-success-color<\/div> <div class="color-palette text-success-color-light">text-success-color-light<\/div> <div class="color-palette text-success-color-lighter">text-success-color-lighter<\/div> <div class="color-palette text-success-color-lightest">text-success-color-lightest<\/div> <\/li> <li> Warning <div class="color-palette text-warning-color-darkest">text-warning-color-darkest<\/div> <div class="color-palette text-warning-color-darker">text-warning-color-darker<\/div> <div class="color-palette text-warning-color-dark">text-warning-color-dark<\/div> <div class="color-palette text-warning-color">text-warning-color<\/div> <div class="color-palette text-warning-color-light">text-warning-color-light<\/div> <div class="color-palette text-warning-color-lighter">text-warning-color-lighter<\/div> <div class="color-palette text-warning-color-lightest">text-warning-color-lightest<\/div> <\/li> <li> Info <div class="color-palette text-info-color-darkest">text-info-color-darkest<\/div> <div class="color-palette text-info-color-darker">text-info-color-darker<\/div> <div class="color-palette text-info-color-dark">text-info-color-dark<\/div> <div class="color-palette text-info-color">text-info-color<\/div> <div class="color-palette text-info-color-light">text-info-color-light<\/div> <div class="color-palette text-info-color-lighter">text-info-color-lighter<\/div> <div class="color-palette text-info-color-lightest">text-info-color-lightest<\/div> <\/li> <\/ul> ');n.put("App/InterfaceGuide/Views/FAQs.html",'<h1>FAQs<\/h1> <accordion> <accordion-group heading="How do I get UI work done for my show?"> <p>Enter a work order and assign it to .LeadUI: Include all the details we might need to do the work, including flow codes or any special logins that are required. Avoid sending information via email unless specifically asked to do so.<\/p> <\/accordion-group> <accordion-group heading="What are turnaround times for graphics/UI work orders?"> <p>Short answer: It Depends. Design Services<em> minimum<\/em> turnaround time for anything is 3 working days. Saturday and Sunday are not normal working days. There are general "buckets" of scope complexity, with these <em>normal<\/em> lead times:<\/p> <h4><strong>Basic Changes: 3-day lead time (1 hour of UI work)<\/strong><\/h4> <ul> <li>Resizing the client-supplied banner<\/li> <li>Creating and uploading a confirmation banner<\/li> <li>Setting the client primary and accent colors<\/li> <li>Standard Scan n Go graphics<\/li> <\/ul> <h4><strong>Moderate Changes: 1-2 week turnaround (2-8 hours of UI work)<\/strong><\/h4> <ul> <li>Creating multiple banners for different flows<\/li> <li>Adjusting Exhibitor grids when you\'re added a bunch of columns<\/li> <li>Adding custom fonts to match a client site.<\/li> <li>Full SelfReg implementation (not Scan n Go)<\/li> <\/ul> <h4><strong>Full customization: > 2 week turnaround (8 - 40+ hours of UI work)<\/strong><\/h4> <p>This is what we do for our strategic clients; NHB, NAB, INF, etc. Changes might include:<\/p> <ul> <li>Full customization of the layout using a client template<\/li> <li>Custom entry or flow selection pages<\/li> <li>Customization of the email confirmation<\/li> <\/ul> <h4><strong>But my change seems so easy - it will only take a few minutes. Can you do it right now/by the end of the day/etc.?<\/strong><\/h4> <p>Design Services does ALL the UI work for ALL the shows. Your request probably is easy, but we may have 30 or 40 requests ahead of yours. At peak times - spring crunch and fall crunch - we are, uh... crunched. Like everyone else. Please be patient. We\'ll get it done as quickly as we can. <\/p> <p>If your client is having a hissy fit <strong>AND<\/strong> (1)the requested change is going to prevent the site from going live, or (2)there is a serious usability issue that is preventing folks from registering or booking housing: Contact Leanne Frank before entering the work order.<\/p> <\/accordion-group> <accordion-group heading="My UI work order was closed, but I don\'t see the changes on QA. Why?"> <ul> <li>It\'s possible that the changes haven\'t been pushed to QA by your AppDev.<\/li> <li>You may need to clear your browser cache so that new images and css files are loaded. Instructions here: <a href="http://www.refreshyourcache.com/en/home/" target=_blank>http://www.refreshyourcache.com/en/home/<\/a><\/li> <\/ul> <\/accordion-group> <accordion-group heading="How do I know whether to assign [xyz] to Design Services or my AppDev?"> <ul> <li>Design Services - [xyz] is about how something LOOKS on the page - images, icons, color, font size, alignment, placement <\/li> <li>AppDev - [xyz] is about how something WORKS on the page - everything else.<\/li> <\/ul> <\/accordion-group> <accordion-group heading="My confirmation font sizes are inconsistent. Why?"> <p>Most likely because one of these things happened:<\/p> <ul> <li><strong>Content was copied/pasted from Word/Outlook/etc.<\/strong> The static text editor has a clean-up tool to remove formatting.<\/li> <li><strong>The font-size tool was used.<\/strong> This will create inconsistent sizing. Use the clean-up tool to remove formatting.<\/li> <li> <strong>A table was inserted in the content.<\/strong> Tables in HTML email will not inherit the style properties - font-family and font-size. The font attributes will need to be added to the table as an inline style. The usual format is this:<br> <code>&lt;table style="color: #222222; font: 14px/19px \'Helvetica\', \'Arial\', sans-serif; font-weight: normal;"&gt;<\/code> <\/li> <\/ul> <p> In a standard 6.1/6.2 confirmation there are 3 font-sizes used: 30px (for H1 headers), 22px for H2 headers, and 14px for everything else. If you need small text, use a size of 11px. <\/p> <\/accordion-group> <\/accordion>');n.put("App/InterfaceGuide/Views/InterfaceGuideMenu.html","<div data-ng-controller=\"InterfaceGuideMenuController as ctrl\"> <strong>EventXL 6.1 Interface Guide<\/strong> <ul class=side-nav> <li class=heading>For Operations Staff<\/li> <li data-ng-class=\"{'active':ctrl.state.includes('quickStart')}\"><a data-ui-sref=quickStart>Overview/Graphics<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('resizegraphics')}\"><a data-ui-sref=resizegraphics>Resizing Graphics<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('colors')}\"><a data-ui-sref=colors>Colors<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('typography')}\"><a data-ui-sref=typography>Typography<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('faqs')}\"><a data-ui-sref=faqs>FAQs<\/a><\/li> <li class=divider><\/li> <li class=heading>UI Elements<\/li> <li data-ng-class=\"{'active':ctrl.state.includes('accordions')}\"><a data-ui-sref=accordions>Accordions<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('animations')}\"><a data-ui-sref=animations>Animations<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('buttons')}\"><a data-ui-sref=buttons>Buttons<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('utility')}\"><a data-ui-sref=utility>Alignment, Padding, Margins<\/a><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('tables')}\"><a data-ui-sref=tables>Tables<\/a><\/li> <li class=divider><\/li> <li class=heading><\/li> <li data-ng-class=\"{'active':ctrl.state.includes('resources')}\"><a data-ui-sref=resources>Resources<\/a><\/li> <li><\/li> <\/ul> <a class=\"button small expand\" href=# data-ng-click=taskCtrl.signOut()> Back to Flow Page <\/a> <\/div>");n.put("App/InterfaceGuide/Views/Misc.html",'<h1>Additional Examples<\/h1> <h2 class=groupheader>Equalizr<\/h2> <div class=row> <h1>Equalizer Simple<\/h1> <\/div> <div class=row exl-equalizer equalize-on-stack=false> <div class="large-6 columns panel" equalizer-watch> This is small content test <\/div> <div class="large-6 columns panel" equalizer-watch> <h1>This is really tall content<\/h1> It it taller then the content on the other div <br> <img src=http://placehold.it/350x155> <br> <br> <br> Another Test <\/div> <\/div> <h2 class=groupheader>Dropdowns<\/h2> <div class=row> <h1>Footer<\/h1> <\/div> <div class=row> <div ng-controller=DropdownCtrl> <p> <a dropdown-toggle=#dropdown-example-1>Click me for a dropdown, yo!<\/a> <\/p> <ul id=dropdown-example-1 class=f-dropdown> <li ng-repeat="choice in items"> <a>{{choice}}<\/a> <\/li> <\/ul> <a class="button dropdown" dropdown-toggle=#dropdown-example-2>Dropdowns can also have links!<\/a> <ul id=dropdown-example-2 class=f-dropdown> <li ng-repeat="(label, url) in linkItems"> <a href={{url}} target=_blank>{{label}}<\/a> <\/li> <\/ul> <a class="button split"> Split Button <span dropdown-toggle=#dropdown-example-3><\/span> <\/a> <ul id=dropdown-example-3 class=f-dropdown> <li ng-repeat="choice in items"> <a>{{choice}}<\/a> <\/li> <\/ul> <\/div> <\/div> <h2 class=groupheader>Accessibility<\/h2> <i class="fa fa-user"><span class=exl-screen-reader-text>View Cart<\/span><\/i>');n.put("App/InterfaceGuide/Views/QuickStart.html","<h1>Overview<\/h1> <p>This version of EventXL is fully responsive for attendee flows. Group/block/exhbitor flows are responsive down to a medium-sized tablet (iPad mini) in portrait orientation. What does that mean to the client? It means that their users will be able to register and book housing no matter what device they use!<\/p> <p>Our goal is to reflect client branding as closely as possible. With a responsive site, we may not achieve an exact match to the client's event site, but we'll get as close as possible.<\/p> <p>Need something to send your client?<br><a class=\"button info\" target=_blank href=http://intranet.experient-inc.com/it/Graphics%20and%20UI%20Standards/EventXL61-GraphicsGuide.pdf>Click here to download a client-friendly PDF<\/a><\/p> <h2 class=groupheader>Graphics - WebReg Banner and Confirmation<\/h2> <p> EventXL 6.1+ uses 2 header graphics - one for small screen and one for large screen. This ensures that text within the the header graphic will remain legible at every screen size. You'll also need a header graphic for the email confirmation. The sizes are: <table class=\"table utility\"> <tr> <td>Large screen (desktop and tablet)<\/td> <td>1000px wide<\/td> <\/tr> <tr> <td>Small screen (phone)<\/td> <td>650px wide<\/td> <\/tr> <tr> <td>Email confirmation Banner<\/td> <td>Up to 650px wide<\/td> <\/tr> <\/table> <\/p> <p>It's also helpful to provide Design Services with the URL of the client event site. In many cases, we can pull colors and graphics directly from the client site.<\/p> <div class=panel><p>Image formats: WebFiles will accept .jpg, .gif and .png. Design Services can convert images that are provided in .psd, .ai and .eps formats.<\/p><\/div> <h2 class=groupheader>Graphics - Sponsor Ads<\/h2> <p> The size and placement of a sponsor ad changes as the viewport (browser window) changes. You can also add a URL for the ad in the static text editor. The standard sizes and placements are: <table class=\"table utility\"> <tr> <td>Attendee - Large screen (desktop)<\/td> <td>Sidebar ad, up to 300px wide<\/td> <\/tr> <tr> <td>Attendee - Medium screen (tablet)<\/td> <td>Below main content, up to 1000px wide<\/td> <\/tr> <tr> <td>Attendee - Small screen (phone)<\/td> <td>Below main content, up to 620px wide<\/td> <\/tr> <tr> <td>Exhibitor Group/block - Medium/Large screen<\/td> <td>Below main content, up to 1000px wide<\/td> <\/tr> <tr> <td>Exhibitor Group/block - Small screen<\/td> <td>Below main content, up to 620px wide<\/td> <\/tr> <tr> <td>Email confirmation<\/td> <td>Below the email content, up to 650px wide<\/td> <\/tr> <\/table> <\/p> <p> Other notes about sponsor ads: <\/p> <ul> <li><strong>Scrolling Ads.<\/strong> We do not have a \"scrolling\" ad function. If your client wants to display multiple ads in a single place, they can supply (or we can create) an animated .gif file. The downside - each image cannot have a separate URL. <\/li> <li><strong>Custom Ad Placments.<\/strong> If your client wants alternate or multiple ad placements - consult with Design Services. In the responsive application, alternate placements can negatively impact usability for the end user. We'll work with you to find a good solution that meets your clients' needs.<\/li> <\/ul> <h2 class=groupheader>Graphics - SelfReg/Scan 'n' Go Banner<\/h2> <p>We usually create the SelfReg banner from the WebReg graphics. If you client wants something different, just enter a work order with the requirements. We likely already have the graphics we need to create what they want.<\/p> ");n.put("App/InterfaceGuide/Views/ResizeGraphics.html",'<h1>Resizing Graphics<\/h1> <p>You can use Paint or SnagIt to resize graphics. One important note: You can make graphics smaller but not larger than the original size. If you enlarge a graphic, it will lose quality.<\/p> <h2 class=groupheader>Resize Graphics in Microsoft Paint<\/h2> <ol> <li>Launch Paint<\/li> <li>Open the image you want to change<\/li> <li>On the top toolbar, click "Resize"<\/li> <li>Choose "Resize by: Pixels" and change the width to what you need. Be sure "Maintain aspect ratio" is checked. Change the width and the height will change automatically.<\/li> <li>Save the file<\/li> <\/ol> <h2 class=groupheader>Resize Graphics in SnagIt<\/h2> <ol> <li>Launch SnagIt<\/li> <li>Open the image you want to change (File/Open)<\/li> <li>On the top toolbar, click "Image" and then "Resize Image"<\/li> <li>Choose "Scale to specific size (pixels)" and change the width to what you need. Be sure "Keep aspect ratio" is checked. Change the width and the height will change automatically.<\/li> <li>Save the file<\/li> <\/ol>');n.put("App/InterfaceGuide/Views/Resources.html",'<h1>Resources<\/h1> <h2 class=groupheader>Foundation<\/h2> <ul> <li><a href="http://foundation.zurb.com/docs/" target=_blank>Foundation<\/a><\/li> <li><a href=http://pineconellc.github.io/angular-foundation/#/alert target=_blank>Pinecone Directives for Foundation<\/a><\/li> <\/ul> <h2 class=groupheader>Icons Fonts<\/h2> <ul> <li><a href="http://fortawesome.github.io/Font-Awesome/" target=_blank>FontAwesome<\/a><\/li> <li><a href=https://uitoolkit.experient-inc.com/Components/ifEventXL target=_blank>EventXL Icon Font<\/a><\/li> <\/ul> <h2 class=groupheader>Third Party<\/h2> <ul> <li>Animate.css: <a href="https://daneden.github.io/animate.css/" target=_blank>Demo<\/a>, <a href=https://github.com/daneden/animate.css target=_blank>Usage documentation<\/a><\/li> <li><a href="http://amsul.ca/pickadate.js/" target=_blank>Pick-A-Date<\/a><\/li> <li><a href=http://codeseven.github.io/toastr/demo.html target=_blank>Toastr<\/a><\/li> <\/ul>');n.put("App/InterfaceGuide/Views/Tables.html",'<h2>Tables<\/h2> <p>Yes, tables are a perfectly good element to use... for tabular data. To adapt a table for various screen sizes, do this: <\/p><ul><li>For small screen, show only the most essential columns; usually no more than 3 columns.<\/li><li>For larger screens, add "show-for-medium-up" or "show-for-large-up" css class to additional columns.<\/li><li>Remember to apply the same css classes to the header and footer rows, so that the HTML structure for the table is correct.<\/li><\/ul> <h3 class=infoheader>Table, class="table"<\/h3> <p>Very basic table class<\/p> <table class=table> <thead> <tr> <th>FirstName<\/th> <th>LastName<\/th> <th>Company<\/th> <th class=show-for-medium-up>City<\/th> <th class=show-for-medium-up>State<\/th> <th class=show-for-large-up>Email<\/th> <\/tr> <\/thead> <tbody> <tr> <td>Albert<\/td> <td>Einstein<\/td> <td>Princeton Univ<\/td> <td class=show-for-medium-up>Princeton<\/td> <td class=show-for-medium-up>NJ<\/td> <td class=show-for-large-up>albert.einstein@test.org<\/td> <\/tr> <tr> <td>Anne<\/td> <td>Frank<\/td> <td><\/td> <td class=show-for-medium-up>Amsterdam<\/td> <td class=show-for-medium-up><\/td> <td class=show-for-large-up>anne.frank@test.org<\/td> <\/tr> <tr> <td>Audie<\/td> <td>Murphy<\/td> <td>US Army<\/td> <td class=show-for-medium-up>Kingston<\/td> <td class=show-for-medium-up>TX<\/td> <td class=show-for-large-up>audie.murphy@test.org<\/td> <\/tr> <\/tbody> <tfoot> <tr> <td>1<\/td> <td>2<\/td> <td>3<\/td> <td class=show-for-medium-up>4<\/td> <td class=show-for-medium-up>5<\/td> <td class=show-for-large-up>6<\/td> <\/tr> <\/tfoot> <\/table> <h3 class=infoheader>Table, class="table utility"<\/h3> <p>This class adds a white background color and subtle dividers between rows<\/p> <table class="table utility"> <thead> <tr> <th>FirstName<\/th> <th>LastName<\/th> <th>Company<\/th> <th class=show-for-medium-up>City<\/th> <th class=show-for-medium-up>State<\/th> <th class=show-for-large-up>Email<\/th> <\/tr> <\/thead> <tbody> <tr> <td>Albert<\/td> <td>Einstein<\/td> <td>Princeton Univ<\/td> <td class=show-for-medium-up>Princeton<\/td> <td class=show-for-medium-up>NJ<\/td> <td class=show-for-large-up>albert.einstein@test.org<\/td> <\/tr> <tr> <td>Anne<\/td> <td>Frank<\/td> <td><\/td> <td class=show-for-medium-up>Amsterdam<\/td> <td class=show-for-medium-up><\/td> <td class=show-for-large-up>anne.frank@test.org<\/td> <\/tr> <tr> <td>Audie<\/td> <td>Murphy<\/td> <td>US Army<\/td> <td class=show-for-medium-up>Kingston<\/td> <td class=show-for-medium-up>TX<\/td> <td class=show-for-large-up>audie.murphy@test.org<\/td> <\/tr> <\/tbody> <tfoot> <tr> <td>1<\/td> <td>2<\/td> <td>3<\/td> <td class=show-for-medium-up>4<\/td> <td class=show-for-medium-up>5<\/td> <td class=show-for-large-up>6<\/td> <\/tr> <\/tfoot> <\/table> <h3 class=infoheader>Table, class="table utility stretch"<\/h3> <p>Table width is set to "auto" by default. You can force a table to 100% by adding the css class "stretch".<\/p> <table class="table utility stretch"> <thead> <tr> <th>FirstName<\/th> <th>LastName<\/th> <th>Company<\/th> <th class=show-for-medium-up>City<\/th> <th class=show-for-medium-up>State<\/th> <th class=show-for-large-up>Email<\/th> <\/tr> <\/thead> <tbody> <tr> <td>Albert<\/td> <td>Einstein<\/td> <td>Princeton Univ<\/td> <td class=show-for-medium-up>Princeton<\/td> <td class=show-for-medium-up>NJ<\/td> <td class=show-for-large-up>albert.einstein@test.org<\/td> <\/tr> <tr> <td>Anne<\/td> <td>Frank<\/td> <td><\/td> <td class=show-for-medium-up>Amsterdam<\/td> <td class=show-for-medium-up><\/td> <td class=show-for-large-up>anne.frank@test.org<\/td> <\/tr> <tr> <td>Audie<\/td> <td>Murphy<\/td> <td>US Army<\/td> <td class=show-for-medium-up>Kingston<\/td> <td class=show-for-medium-up>TX<\/td> <td class=show-for-large-up>audie.murphy@test.org<\/td> <\/tr> <\/tbody> <tfoot> <tr> <td>1<\/td> <td>2<\/td> <td>3<\/td> <td class=show-for-medium-up>4<\/td> <td class=show-for-medium-up>5<\/td> <td class=show-for-large-up>6<\/td> <\/tr> <\/tfoot> <\/table>');n.put("App/InterfaceGuide/Views/Typography.html",'<h1>This is an H1 header<\/h1> <p>An H1 is used for all page headers.<\/p> <h2>This is a regular H2 header<\/h2> <h2 class=groupheader>This is an H2 header with class="groupheader"<\/h2> <p>This header is useful for breaking content info sections. It\'s used in this way on the Profile page.<\/p> <h3>This is a regular H3 header<\/h3> <h3 class=infoheader>This is an H3 header with class="infoheader".<\/h3> <h4>This is an H4 header<\/h4> <p>A nice paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<\/p> <p>If you need bold text, add <strong>" &lt;strong&gt;" tags around it<\/strong>. Using "b" is deprecated.<\/p> <p>If you want to italicize something, add <em>"&lt;em&gt;" tags around the text.<\/em><\/p> <p>Want to add some color to your text? See the "Colors" page for the color classes for your show.<\/p> <h2 class=groupheader>Icon Fonts<\/h2> <p>Most icon images have been replaced by icons in an icon font. These are faster to load, and can be styled like any text - size, color, etc. The icon set we use is FontAwesome. You can see all the icons here: <a href="//fortawesome.github.io/Font-Awesome/icons/" target=_blank>Font Awesome Icons<\/a>. <\/p> <p>You can use icon fonts in any static text block that allows HTML. The general format is:<br> &lt;i class="fa fa-pencil"&gt;&lt;/i&gt; - <i class="fa fa-pencil"><\/i>.<\/p> ');n.put("App/InterfaceGuide/Views/Utility.html",'<h1>Alignment, Padding, Margins<\/h1> <h2 class=groupheader>Alignment classes<\/h2> <p>The default alignment is text-left<\/p> <p class=text-center>This paragraph has class="text-center"<\/p> <p class=text-right>This paragraph has class="text-right"<\/p> <div class=row> <div class="columns exl-vertical-padding"> <button class=left>This button is floated left, with class="left"<\/button> <button class=right>This button is floated right, with class="right"<\/button> <\/div> <\/div> <h2 class=groupheader>Padding and Margins<\/h2> <p>There are 3 sizes of padding and margins: standard (1 rem), small (0.5rem), tiny (0.25rem). The general format is: exl-[margin or padding][-small/tiny if needed] <\/p> <div class="panel exl-padding"> This has class="exl-padding" <\/div> <div class="panel exl-padding-small"> This has class="exl-padding-small" <\/div> <div class="panel exl-padding-tiny"> This has class="exl-padding-tiny" <\/div> <div class="panel exl-margin"> This has class="exl-margin" <\/div> <div class="panel exl-margin-small"> This has class="exl-margin-small" <\/div> <div class="panel exl-padding-tiny"> This has class="exl-margin-tiny" <\/div>');n.put("App/Housing/Views/AddRegistrationModal.html","<exl-static-text id-code=HOUSING_ADD_REGISTRATION_MODAL_P1> <p>One or more guests in your group have not registered. Would you like to add registration for one of them now?<\/p> <\/exl-static-text> <exl-select-list itemlist=modalCtrl.occupants selecteditem=modalCtrl.selectedOccupant is-required=true><\/exl-select-list>");n.put("App/Housing/Views/AddRegistrationModalFooter.html",'<button type=button class=secondary data-ng-click=modalCtrl.close()> <i class="fa fa-clock-o"><\/i> Later <\/button> <button type=submit class=dark data-ng-click="modalCtrl.close({regId: modalCtrl.selectedOccupant.value})" data-ng-disabled=!modalCtrl.selectedOccupant> <i class="fa fa-ticket"><\/i> Register <\/button>');n.put("App/Housing/Views/FacilityCancelPolicyModal.html","<exl-facility-cancel-policy facility-id=::modalCtrl.facilityId><\/exl-facility-cancel-policy> <hr> <exl-static-text id-code=WEB_HOU_ROOM_CHOICE_CANCEL_POLICY_P1> <p> By agreeing to the cancel policy you acknowledge you have read and agree to the booking terms and conditions which incorporate the cancellation policy. Not agreeing will prevent a reservation from being completed. <\/p> <\/exl-static-text>");n.put("App/Housing/Views/FacilityCancelPolicyModalFooter.html",'<button type=button class=dark data-ng-click=modalCtrl.close(true)> <i class="fa fa-check-circle"><\/i> I agree to the cancellation policy <\/button>');n.put("App/Housing/Views/FacilityDailyRatesDirective.html",'<div> <button type=button class=empty data-dropdown-toggle=#ddDailyRate_{{facilityDailyRatesCtrl.hotelItemId}}> <ng-transclude><\/ng-transclude> <\/button> <div id=ddDailyRate_{{facilityDailyRatesCtrl.hotelItemId}} class="small f-dropdown f-dropdown-bump-down content"> <table class=table> <tbody data-ng-repeat="day in facilityDailyRatesCtrl.days"> <tr data-ng-if="$first || facilityDailyRatesCtrl.isFirstOfMonth(day)"> <th colspan=2 data-ng-cloak> {{day | date: \'MMMM yyyy\'}} <\/th> <\/tr> <tr> <td> <time datetime="{{day | date: \'yyyy-MM-dd\'}}" data-ng-cloak> {{day | date: \'EEE, dd\'}}<sup>{{facilityDailyRatesCtrl.getDayOfMonthOrdinal(day)}}<\/sup> <\/time> <\/td> <td data-ng-cloak> {{facilityDailyRatesCtrl.rates[day] | currency}} <\/td> <\/tr> <\/tbody> <tfoot data-ng-show=facilityDailyRatesCtrl.displayTotal> <tr> <th>Room Fee<\/th> <th class=text-right data-ng-cloak> {{facilityDailyRatesCtrl.sum | currency}} <\/th> <\/tr> <\/tfoot> <\/table> <\/div> <\/div>');n.put("App/Housing/Views/FacilityFeatureIconDirective.html","<button class=\"empty feature-icon has-tip\" data-tooltip-html-unsafe={{::facilityFeatureIconCtrl.toolTip}} data-tooltip-placement=bottom> <i class=\"exl exl-fw\" aria-haspopup=true data-ng-class=\"::{ 'exl-NoSmoking': facilityFeatureIconCtrl.code === 'NS', 'exl-restaurant2': facilityFeatureIconCtrl.code === 'RESTAURANT', 'exl-pool': facilityFeatureIconCtrl.code === 'POOL', 'exl-wifi2': facilityFeatureIconCtrl.code === 'WI-RM', 'exl-dice': facilityFeatureIconCtrl.code === 'GAMING', 'exl-bus': facilityFeatureIconCtrl.code === 'SHUTTLE', 'exl-train': facilityFeatureIconCtrl.code === 'TRAIN', 'exl-headquarters': facilityFeatureIconCtrl.code === 'ISHEADQUARTER', 'exl-plus': facilityFeatureIconCtrl.code === 'MORE' }\"> <span class=exl-screen-reader-text data-ng-cloak>{{::facilityFeatureIconCtrl.desc}}<\/span> <\/i> <\/button>");n.put("App/Housing/Views/FacilityFeaturesDirective.html",'<div class=feature-icon-area> <exl-facility-feature-icon code=::feature.code desc=::feature.desc item-list=::feature.itemList data-ng-repeat="feature in ::facilityFeatureCtrl.features track by feature.code"><\/exl-facility-feature-icon> <\/div>');n.put("App/Housing/Views/FacilityImagesDirective.html","<ul class=\"medium-block-grid-2 small-block-grid-1\"> <li data-ng-repeat=\"image in ::facilityImageCtrl.images | orderBy: 'resourceImageCode': facilityImageCtrl.isOrderReverse track by image.resourceImageID\"> <img alt=\"{{::facilityImageCtrl.alt(image.resourceImageCode, 'Interior', 'Exterior')}}\" data-ng-class=::facilityImageCtrl.class data-ng-src={{::facilityImageCtrl.src(image.image)}}> <\/li> <\/ul>");n.put("App/Housing/Views/FacilityInventoryModal.html",'<div class="alert-box info" data-ng-hide=::modalCtrl.data.inventory> <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Loading, please wait... <\/div> <div data-ng-if=::modalCtrl.data.inventory> <exl-static-text id-code=WEB_HOU_FACILITY_INVENTORY_MODAL_P1><\/exl-static-text> <dl> <dt>Legend<\/dt> <dd> <ul class=inline-list> <li> <span> <span class="fa fa-fw fa-ban text-alert-color"><\/span> = Sold Out <\/span> <\/li> <li> <span> <span class="fa fa-fw fa-warning text-warning-color"><\/span> = Waitlisted <\/span> <\/li> <li> <span> <span class="fa fa-fw fa-check text-success-color"><\/span> = Available <\/span> <\/li> <\/ul> <\/dd> <\/dl> <ul class=medium-block-grid-3> <li data-ng-repeat="hotelItem in ::modalCtrl.data.inventory track by hotelItem.hotelItemID" data-ng-if=::hotelItem.days.length> <table class="table utility"> <caption>{{::hotelItem.categoryName}}<\/caption> <tr data-ng-repeat="day in ::hotelItem.days track by day.dayDate"> <th> <time datetime="{{::day.dayDate | date: \'yyyy-MM-dd\'}}"> {{::day.dayDate | date: \'EEE\'}}, {{::day.dayDate | date: \'mediumDate\'}} <\/time> <\/th> <td class=text-right> {{::day.feeAmt | currency}} <span class="fa fa-fw" data-ng-class="::day.isSoldOut ? \'fa-ban text-alert-color\' : day.isWaitlisted ? \'fa-warning text-warning-color\' : \'fa-check text-success-color\'" data-tooltip="{{::day.isSoldOut ? \'Sold Out\' : day.isWaitlisted ? \'Waitlisted\' : \'Available\'}}"><\/span> <\/td> <\/tr> <\/table> <\/li> <\/ul> <\/div>');n.put("App/Housing/Views/FacilityInventoryModalFooter.html","<button type=button data-ng-click=modalCtrl.close()> Close <\/button>");n.put("App/Housing/Views/FacilityMapDirective.html",'<div> <div class=row data-ng-show=::facilityMapCtrl.eventFacilities.length> <div class="medium-6 columns"> <label> Distance To <exl-select-list-modal title="Distance to Event Facility" modalcss=small itemlist=facilityMapCtrl.eventFacilities selecteditem=facilityMapCtrl.selectedEventFacility><\/exl-select-list-modal> <\/label> <\/div> <div class="medium-6 columns"> <exl-select-list label="Travel Mode" hide-filter=true is-required=true itemlist=facilityMapCtrl.travelModes selecteditem=facilityMapCtrl.selectedTravelMode><\/exl-select-list> <\/div> <\/div> <div class=exl_directions_placeholder data-ng-if=facilityMapCtrl.isOpen>  <\/div> <div class="map_canvas widescreen" data-ng-if=facilityMapCtrl.isOpen> <ui-gmap-google-map center=facilityMapCtrl.map.center zoom=facilityMapCtrl.map.zoom control=facilityMapCtrl.map.control options=facilityMapCtrl.map.options refresh=facilityMapCtrl.map.refresh> <ui-gmap-markers models=facilityMapCtrl.map.markers click=onClick control=facilityMapCtrl.map.controlMarkers coords="\'graticule\'" fit=true options="\'optMarker\'" icon="\'icon\'"> <\/ui-gmap-markers> <ui-gmap-window data-ng-repeat="facility in facilityMapCtrl.map.markers track by facility.id" closeclick=facility.onCloseClick(facility) coords=facility.graticule options=facility.optWindow show=facility.showWindow> <div style="white-space: nowrap;">  <strong data-ng-cloak> {{::facility.name}} <\/strong> <exl-facility-features facility-id={{::facility.id}} include="[\'SHUTTLE\']"><\/exl-facility-features> <address data-ng-cloak> {{::facility.address}} <\/address> <\/div> <\/ui-gmap-window> <\/ui-gmap-google-map> <\/div> <\/div>');n.put("App/Housing/Views/FacilityProfileDirective.html",'<div> <div class=panel> <span class="right text-center"> <exl-registrant-like like-type-code=FACILITY like-type-id=::facilityProfileCtrl.facilityId button-label=Favorite><\/exl-registrant-like> <\/span> <h2 data-ng-cloak>{{::facilityProfileCtrl.facility.name}}<\/h2> <div class=row> <div class="columns medium-6"> <label class="exl-top-margin-tiny show-for-medium-up">Hotel Location<\/label> <address data-ng-cloak> {{::facilityProfileCtrl.facility.address1}}<br data-ng-if=::facilityProfileCtrl.facility.address1> {{::facilityProfileCtrl.facility.address2}}<br data-ng-if=::facilityProfileCtrl.facility.address2> {{::facilityProfileCtrl.facility.address3}}<br data-ng-if=::facilityProfileCtrl.facility.address3> {{::facilityProfileCtrl.facility.city}}<span data-ng-if="::facilityProfileCtrl.facility.city && (facilityProfileCtrl.facility.stateCode || facilityProfileCtrl.facility.countryCode)">, <\/span> {{::facilityProfileCtrl.facility.stateCode}}<span data-ng-if="::facilityProfileCtrl.facility.stateCode && facilityProfileCtrl.facility.countryCode">, <\/span> {{::facilityProfileCtrl.facility.countryCode}} {{::facilityProfileCtrl.facility.zipCode}} <\/address>  <small data-ng-repeat="distance in ::facilityProfileCtrl.distances" data-ng-cloak> {{::distance.distance | number:1}} miles from {{::distance.name}}<br> <\/small> <\/div> <div class="medium-6 columns"> <label class="exl-top-margin-tiny show-for-medium-up">Hotel Features<\/label> <exl-facility-features facility-id={{::facilityProfileCtrl.facilityId}}><\/exl-facility-features> <\/div> <\/div> <\/div> <exl-accordion-tab> <exl-accordion-tab-group data-ng-if=::facilityProfileCtrl.description> <exl-accordion-tab-heading> <i class="fa fa-fw fa-book"><\/i>Description <\/exl-accordion-tab-heading> <div class=content data-ng-cloak> {{::facilityProfileCtrl.description}} <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group data-ng-if="::facilityProfileCtrl.facilityDetail.images[facilityProfileCtrl.facilityId].length && facilityProfileCtrl.visibilityOptions.photosVisible !== false"> <exl-accordion-tab-heading> <i class="fa fa-fw fa-photo"><\/i>Photos <\/exl-accordion-tab-heading> <div class=content> <exl-facility-images images=::facilityProfileCtrl.facilityDetail.images[facilityProfileCtrl.facilityId]><\/exl-facility-images> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group data-ng-if="::facilityProfileCtrl.mapEnabled && facilityProfileCtrl.visibilityOptions.mapVisible !== false"> <exl-accordion-tab-heading> <i class="fa fa-fw fa-map-marker"><\/i>Map <\/exl-accordion-tab-heading> <div class=content> <exl-facility-map facility-id={{::facilityProfileCtrl.facilityId}}><\/exl-facility-map> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group data-ng-if="::(facilityProfileCtrl.facilityDetail.amenities[facilityProfileCtrl.facilityId].length || facilityProfileCtrl.facilityDetail.showAmenities[facilityProfileCtrl.facilityId].length) && facilityProfileCtrl.visibilityOptions.amenitiesVisible !== false"> <exl-accordion-tab-heading> <i class="fa fa-fw fa-list-ul"><\/i>Amenities <\/exl-accordion-tab-heading> <div class=content> <ul class="medium-block-grid-2 small-block-grid-1"> <li data-ng-repeat="amenity in ::facilityProfileCtrl.facilityDetail.showAmenities[facilityProfileCtrl.facilityId] | orderBy:\'+\':false track by amenity.customCodeId" data-ng-cloak> <span class="label success small radius">Event Exclusive!<\/span> {{::amenity.description}} <\/li> <li data-ng-repeat="amenity in ::facilityProfileCtrl.facilityDetail.amenities[facilityProfileCtrl.facilityId] | orderBy:\'+\':false track by amenity.facilityPropId" data-ng-cloak> {{::amenity.description}} <\/li> <\/ul> <exl-static-text id-code=WEB_HOUSING_AMENITIESDISCLAIMER> <p> <em>Note: Amenities are not guaranteed and are subject to change without notice by the hotel.<\/em> <\/p> <\/exl-static-text> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group data-ng-if="::facilityProfileCtrl.adaKeys[facilityProfileCtrl.facilityId].length && facilityProfileCtrl.visibilityOptions.accessibilityVisible !== false"> <exl-accordion-tab-heading> <i class="fa fa-fw fa-wheelchair"><\/i>Accessibility <\/exl-accordion-tab-heading> <div class=content> <div data-ng-repeat="key in ::facilityProfileCtrl.adaKeys[facilityProfileCtrl.facilityId]"> <h3 class=infoheader data-ng-cloak>{{::facilityProfileCtrl.unPascalCase(key)}}<\/h3> <ul class="medium-block-grid-2 small-block-grid-1"> <li data-ng-repeat="access in ::facilityProfileCtrl.facilityDetail.ada[facilityProfileCtrl.facilityId][key] | orderBy:\'displayOrder\':false track by access.facilityPropId" data-ng-cloak> {{::access.description}} <\/li> <\/ul> <\/div> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group data-ng-if=::facilityProfileCtrl.rates> <exl-accordion-tab-heading> <i class="fa fa-fw fa-list-ul"><\/i>Rates <\/exl-accordion-tab-heading> <div class=content> <ul class=medium-block-grid-3> <li data-ng-repeat="hotelItem in ::facilityProfileCtrl.rates track by hotelItem.hotelItemID"> <table class="table utility"> {{::hotelItem.categoryName}} <tr> <th> Single <\/th> <td class=text-right> {{::hotelItem.ratePlanFeeAmt | currency}} <\/td> <\/tr> <tr> <th> Double <\/th> <td class=text-right> {{::hotelItem.ratePlanFeeAmt2 | currency}} <\/td> <\/tr> <tr> <th> Triple <\/th> <td class=text-right data-ng-if="::hotelItem.ratePlanFeeAmt3 > 0"> {{::hotelItem.ratePlanFeeAmt3 | currency}} <\/td> <td class=text-right data-ng-if="::hotelItem.ratePlanFeeAmt3 == 0"> N/A <\/td> <\/tr> <tr> <th> Quad <\/th> <td class=text-right data-ng-if="::hotelItem.ratePlanFeeAmt4 > 0"> {{::hotelItem.ratePlanFeeAmt4 | currency}} <\/td> <td class=text-right data-ng-if="::hotelItem.ratePlanFeeAmt4 == 0"> N/A <\/td> <\/tr> <\/table> <\/li> <\/ul> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group data-ng-if="::facilityProfileCtrl.visibilityOptions.cancellationPolicyVisible !== false && !facilityProfileCtrl.isGradualEngagement"> <exl-accordion-tab-heading> <i class="fa fa-fw fa-file-text"><\/i>Cancellation <\/exl-accordion-tab-heading> <div class=content> <exl-facility-cancel-policy facility-id=::facilityProfileCtrl.facilityId><\/exl-facility-cancel-policy> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group is-open=true data-ng-if="::facilityProfileCtrl.visibilityOptions.reserveRoomVisible !== false" data-ng-show=::facilityProfileCtrl.subBlockLevelSearchResults> <exl-accordion-tab-heading data-ng-cloak> <i class="fa fa-fw fa-suitcase"><\/i>{{::facilityProfileCtrl.isGradualEngagement ? \'Room Rates\' : facilityProfileCtrl.isCABMode ? \'Select Room\' : \'Reserve Room\'}} <\/exl-accordion-tab-heading> <div class=content> <exl-facility-rate-message><\/exl-facility-rate-message> <div class="alert-box warning" data-ng-hide=::facilityProfileCtrl.subBlockLevelSearchResults.length> No rooms are available at this hotel that meet your search criteria. <\/div> <div class=panel data-ng-repeat="subBlock in ::facilityProfileCtrl.subBlockLevelSearchResults track by subBlock.hotelItemId"> <span data-ng-if=::!facilityProfileCtrl.isGradualEngagement> <span data-ng-if=::subBlock.isSoldOut class="label small alert fixed-top-right room-sold-out"><i class="fa fa-fw fa-ban"><\/i>Sold out<\/span> <span data-ng-if=::subBlock.isMinOut class="label small warning fixed-top-right" data-ng-cloak><i class="fa fa-fw fa-ban"><\/i>Minimum Stay of {{::subBlock.minNightStay}} Nights<\/span> <span data-dropdown-toggle=#ddWaitlist_hotelItem_{{subBlock.hotelItemId}} data-ng-if="::!subBlock.isSoldOut && !subBlock.isMinOut && subBlock.isWaitListed" class="label small warning fixed-top-right"><i class="fa fa-fw fa-warning"><\/i>Waitlisted<i class="fa fa-fw fa-chevron-down"><\/i><\/span> <div id=ddWaitlist_hotelItem_{{subBlock.hotelItemId}} class="f-dropdown medium content" data-ng-if="!subBlock.isSoldOut && !subBlock.isMinOut && subBlock.isWaitListed"> <exl-facility-waitlist-dates hotel-item-id=subBlock.hotelItemId><\/exl-facility-waitlist-dates> <\/div> <span data-ng-if="::!subBlock.isSoldOut && !subBlock.isMinOut && !subBlock.isWaitListed" class="label small success fixed-top-right"><i class="fa fa-fw fa-check"><\/i>Available<\/span> <\/span> <h3 data-ng-cloak> {{::subBlock.categoryName}}  <small data-ng-cloak> Max Guests - {{::subBlock.maxOccupancy}}<\/small> <\/h3> <div class=row> <div class=columns data-ng-class="::facilityProfileCtrl.isGradualEngagement || !facilityProfileCtrl.allowReserve ? \'medium-12\' : \'medium-9\'"> <table class="table transparent stretch"> <tr> <td data-ng-if=::!facilityProfileCtrl.hideReservationFees> <div class=fieldlabel>Guarantee<\/div> <h3 data-ng-switch=::subBlock.depositTypeCode> <i class="fa fa-credit-card" data-ng-switch-when="NO DEPOSIT/CC" data-tooltip="Credit Card Guarantee"> <span class=exl-screen-reader-text>Credit Card Guarantee<\/span> <\/i> <span data-ng-switch-default data-ng-cloak>{{::subBlock.totalDepositAmt | currency}}<\/span> <\/h3> <exl-static-text id-code=WEB_FACILITY_PROFILE_CAB_GUARANTEE_TEXT data-ng-if=::facilityProfileCtrl.isCABMode>*Due at time of Booking<\/exl-static-text> <\/td> <td> <div class=fieldlabel>nightly<\/div> <button type=button class=empty data-exl-facility-daily-rates="{hotelItemId: subBlock.hotelItemId, displayTotal: false}"> <h3 data-ng-cloak> {{::subBlock.minNightlyRate | currency}} <i class="fa fa-fw fa-caret-down right"><\/i> <\/h3> <\/button> <\/td> <td data-ng-if=::!facilityProfileCtrl.isGradualEngagement> <div class=fieldlabel>total<\/div> <button type=button class=empty data-dropdown-toggle=#ddRoomTotal_{{::subBlock.hotelItemId}}> <h3 data-ng-cloak> {{::subBlock.totalForStay | currency}} <i class="fa fa-fw fa-caret-down right"><\/i> <\/h3> <\/button> <exl-room-fees dropdown-id=ddRoomTotal_{{::subBlock.hotelItemId}} sub-block=subBlock><\/exl-room-fees> <\/td> <\/tr> <\/table> <\/div> <div class="medium-3 columns text-right" data-ng-if="::!facilityProfileCtrl.isGradualEngagement && facilityProfileCtrl.allowReserve" data-ng-switch="::facilityProfileCtrl.roomSearchCriteria.numberOfRooms === 1 || ($first && $last)"> <button type=button class="button dark" data-ng-switch-when=true data-ng-disabled="::subBlock.isSoldOut || subBlock.isMinOut" data-ng-click=facilityProfileCtrl.clickRoom()(subBlock) data-ng-cloak> {{::facilityProfileCtrl.isCABMode ? \'Select\' : \'Reserve\'}} <\/button> <label data-ng-switch-default> # Rooms <exl-spinner model=facilityProfileCtrl.subBlockQuantities[$index].qty min=0 max=facilityProfileCtrl.subBlockMaxQty(subBlock)><\/exl-spinner> <\/label> <\/div> <\/div> <\/div> <\/div> <\/exl-accordion-tab-group> <\/exl-accordion-tab> <\/div>');n.put("App/Housing/Views/FacilityRateMessageDirective.html","<div class=exl-top-margin-small> <p> The rates indicated below are based on <strong> <ng-pluralize count=facilityRateMessageCtrl.roomSearchCriteria.numberOfGuests when=\"{ '1': 'Single' , '2': 'Double' , '3': 'Triple' , '4': 'Quadruple' , '5': 'Quintuple' , '6': 'Sextuple' }\"><\/ng-pluralize> <\/strong> occupancy. <exl-static-text id-code=WEB_HOUSING_FACILITY_RATE_MESSAGE_SPAN1 allow-html=false><\/exl-static-text> <\/p> <exl-static-text id-code=WEB_HOUSING_FACILITY_RATE_MESSAGE_NOGE1 additional-label-text=\"Non-Gradual Engagement\" data-ng-if=::!facilityRateMessageCtrl.isGradualEngagement granularity=page><\/exl-static-text> <exl-static-text id-code=WEB_HOUSING_FACILITY_RATE_MESSAGE_GE1 additional-label-text=\"Gradual Engagement\" data-ng-if=::facilityRateMessageCtrl.isGradualEngagement granularity=page> <p> Please be aware that room availability is constantly changing and hotels listed here may not be available upon returning to this site to book. When ready to move forward with reserving your hotel room, return to the dashboard and select \"Add Room\". <\/p> <\/exl-static-text> <\/div>");n.put("App/Housing/Views/FacilityWaitlistDatesDirective.html","<div> <p> Waitlisting occurs when a reservation cannot be confirmed immediately, but there is a high probability that the room will be available. Our Hotel Coordinators will make every effort to complete this reservation and confirm it as soon as possible. Confirmation will be sent immediately after the reservation is confirmed. <\/p> <p data-ng-if=facilityWaitlistDatesCtrl.hotelItemId> The following <ng-pluralize count=facilityWaitlistDatesCtrl.waitlistDates when=\"{'1': 'day ', 'other': 'days '}\"><\/ng-pluralize> would be waitlisted: <\/p> <p data-ng-if=facilityWaitlistDatesCtrl.reservationId> The reservation is waitlisted for the following <ng-pluralize count=facilityWaitlistDatesCtrl.waitlistDates when=\"{'1': 'day', 'other': 'days'}\"><\/ng-pluralize>: <\/p> <p> <time class=\"label warning\" datetime=\"{{wlDate | date: 'yyyy-MM-dd'}}\" data-ng-repeat=\"wlDate in facilityWaitlistDatesCtrl.waitlistDates\" data-ng-cloak> {{wlDate | date: 'shortDate'}} <\/time> <\/p> <\/div>");n.put("App/Housing/Views/HotelItemInventoryDirective.html",'<div data-ng-repeat="dataItem in hotelItemInventoryCtrl.data"> <h2> <a data-ng-click=hotelItemInventoryCtrl.showHotelProfileModal(dataItem.facilityId) data-ng-if="::dataItem.facilityId > 0" data-ng-cloak>{{::dataItem.hotelName + \' (\' + dataItem.categoryName + \')\'}}<\/a> <span data-ng-if="::dataItem.facilityId == 0" data-ng-cloak>{{::dataItem.hotelName + \' (\' + dataItem.categoryName + \')\'}}<\/span> <\/h2> <div class=overflow data-ng-if="::dataItem.hirpInventoryList && dataItem.hirpInventoryList.length"> <table class="table utility stretch" data-ng-if=!dataItem.isEditing> <tr> <th><\/th> <th data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.dayDate | date : \'EEE, MMM d yyyy\'}}<\/th> <\/tr> <tr> <td><exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_ROWLABEL_HELD>Held<\/exl-static-text><\/td> <td data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.capacityQty}}<\/td> <\/tr> <tr> <td><exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_ROWLABEL_USED>Used<\/exl-static-text><\/td> <td data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.usedQty}}<\/td> <\/tr> <tr class=success> <td><exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_ROWLABEL_AVAILABLE>Available<\/exl-static-text><\/td> <td data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.availableQty}}<\/td> <\/tr> <tr class=warning data-ng-if=::dataItem.hasWaitlistedRooms> <td> <span data-dropdown-toggle=#ddWaitlist_subBlock_{{::dataItem.subBlockHotelItemId}}> <exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_ROWLABEL_WAITLISTED allow-html=false>Waitlisted <\/exl-static-text><i class="fa fa-caret-down"><\/i> <\/span> <div id=ddWaitlist_subBlock_{{::dataItem.subBlockHotelItemId}} class="f-dropdown medium content"> <exl-facility-waitlist-dates><\/exl-facility-waitlist-dates> <\/div> <\/td> <td data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.waitListQty}}<\/td> <\/tr> <tr> <td><exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_ROWLABEL_SINGLERATE>Single Rate<\/exl-static-text><\/td> <td data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.singleRoomRate >= 0 ? (hirpDayDetail.singleRoomRate | currency) : \'\'}}<\/td> <\/tr> <tr> <td><exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_ROWLABEL_DOUBLERATE>Double Rate<\/exl-static-text><\/td> <td data-ng-repeat="hirpDayDetail in ::dataItem.hirpInventoryList" data-ng-cloak>{{::hirpDayDetail.doubleRoomRate >= 0 ? (hirpDayDetail.doubleRoomRate | currency) : \'\'}}<\/td> <\/tr> <\/table> <table class="table utility" data-ng-if=dataItem.isEditing> <thead> <tr> <th><exl-static-text allow-html=false id-code=WEB_HOTEL_INVENTORY_LIST_EDIT_ROOM_NIGHT_DATE>Date<\/exl-static-text><\/th> <th><exl-static-text allow-html=false id-code=WEB_HOTEL_INVENTORY_LIST_EDIT_ROOM_NIGHT_QTY># Held<\/exl-static-text><\/th> <th><exl-static-text allow-html=false id-code=WEB_HOTEL_INVENTORY_LIST_EDIT_ROOM_NIGHT_EDITED_QTY>Quantity to Add<\/exl-static-text><\/th> <\/tr> <\/thead> <tbody> <tr data-ng-repeat="hirpDayDetail in dataItem.hirpInventoryList"> <td data-ng-cloak>{{hirpDayDetail.dayDate | date : \'EEE, MMM d yyyy\'}}<\/td> <td data-ng-cloak>{{hirpDayDetail.capacityQty}}<\/td> <td> <exl-spinner model=hirpDayDetail.editedCapacityQty min=0 max=hirpDayDetail.max is-disabled=hotelItemInventoryCtrl.disableInput> <\/exl-spinner> <\/td> <\/tr> <\/tbody> <\/table> <div class=exl-bot-margin data-ng-if="hotelItemInventoryCtrl.configOptions.editInventoryEnabled && dataItem.hirpInventoryList && (dataItem.isEditing || hotelItemInventoryCtrl.currentEventState != hotelItemInventoryCtrl.events.edit)"> <button type=button data-ng-click="hotelItemInventoryCtrl.editInventoryEventHandler(hotelItemInventoryCtrl.events.edit, dataItem)" data-ng-if=!dataItem.isEditing data-ng-disabled=hotelItemInventoryCtrl.disableInput> <i class="fa fa-plus-circle"><\/i><exl-static-text allow-html=false id-code=WEB_HOTEL_INVENTORY_LIST_BUTTON_INCREASE_BLOCK> Increase Block<\/exl-static-text> <\/button> <button type=button class=secondary data-ng-click="hotelItemInventoryCtrl.editInventoryEventHandler(hotelItemInventoryCtrl.events.cancel, dataItem)" data-ng-if=dataItem.isEditing data-ng-disabled=hotelItemInventoryCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_HOTEL_INVENTORY_LIST_BUTTON_CANCEL_INCREASE_BLOCK>Cancel<\/exl-static-text> <\/button> <button type=button class=dark data-ng-click="hotelItemInventoryCtrl.editInventoryEventHandler(hotelItemInventoryCtrl.events.save, dataItem)" data-ng-if=dataItem.isEditing data-ng-disabled=hotelItemInventoryCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_HOTEL_INVENTORY_LIST_BUTTON_SAVE_INCREASE_BLOCK>Save & Update<\/exl-static-text> <\/button> <\/div> <\/div> <div data-ng-if="dataItem.hirpInventoryList == null || !dataItem.hirpInventoryList.length" class=text-alert-color> <exl-static-text id-code=WEB_HOTEL_INVENTORY_LIST_NO_INVENTORY>No inventory is available yet for this sub-block.<\/exl-static-text> <\/div> <\/div> ');n.put("App/Housing/Views/ManageRoomsTask.html",'<div data-ng-if=taskCtrl.hotelItemInventory.length> <div class="alert-box alert" data-ng-if=taskCtrl.isCCGRequired> <exl-static-text id-code=WEB_MANAGE_ROOMS_CCGDUE_TEXT>You must provide a Credit Card Guarantee before you can continue with any other actions. Please click on the \'Guarantee My Block\' button below to secure your rooms.<\/exl-static-text> <\/div> <div class="alert-box alert" data-ng-if="taskCtrl.isCABEnabled && !taskCtrl.isCABMinRoomNightsValid && taskCtrl.groupHasSaveOnlyCCG"> <exl-static-text id-code=WEB_MANAGE_ROOMS_MIN_ROOMS_REQUIRED_TEXT>You have not yet held the minimum number of rooms required for the main event nights of your stay. The minimum number of rooms is<\/exl-static-text> &nbsp;<strong>{{::taskCtrl.cabConfigPolicy.minRoomsRequested}}<\/strong>.&nbsp;&nbsp; <exl-static-text id-code=WEB_MANAGE_ROOMS_MIN_ROOMS_REQUIRED_TEXT2>You must meet this requirement before you can make reservations.<\/exl-static-text> <\/div> <p data-ng-if=!taskCtrl.hotelItemInventoryConfig.editInventoryEnabled> <exl-static-text id-code=WEB_MANAGE_ROOMS_TASK_VIEW_INVENTORY_TEXT>Your inventory is displayed below.<\/exl-static-text> <\/p> <p data-ng-if=taskCtrl.hotelItemInventoryConfig.editInventoryEnabled> <exl-static-text id-code=WEB_MANAGE_ROOMS_TASK_EDIT_INVENTORY_TEXT>Your room block(s) is displayed below. You can increase the number of rooms in your block(s) as needed. To decrease or cancel your block please contact<\/exl-static-text> &nbsp;<exl-static-text id-code=WEB_MANAGE_ROOMS_TASK_EDIT_INVENTORY_CONTACT_EMAIL_TEXT>{{taskCtrl.cabConfigPolicy.submissionAlertEmailAddress}}<\/exl-static-text> <exl-static-text id-code=WEB_MANAGE_ROOMS_TASK_EDIT_INVENTORY_TEXT2>.<\/exl-static-text> <\/p> <accordion close-others=false data-ng-if=taskCtrl.cabConfigPolicy.cancellationAgreement> <accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_MANAGE_ROOMS_ACCORDION_CAB_CANCELPOLICY_HEADER>Cancellation Policy<\/exl-static-text> <\/accordion-heading> <div class=content data-ng-cloak> {{taskCtrl.cabConfigPolicy.cancellationAgreement}} <\/div> <\/accordion-group> <\/accordion> <div class="label warning exl-bot-margin-small" data-ng-if="taskCtrl.autoReleaseDate && !taskCtrl.excludeFromAutoRelease" data-ng-cloak> <exl-static-text id-code=WEB_MANAGE_ROOMS_AUTORELEASE_DATE_TEXT>Rooms Release Date :<\/exl-static-text>&nbsp;{{taskCtrl.autoReleaseDate | date: \'MMM d, y h:mm a\'}}&nbsp;<exl-static-text id-code=WEB_MANAGE_ROOMS_AUTORELEASE_DATE_TIMEZONE_TEXT>Local<\/exl-static-text> <span> <exl-static-text id-code=WEB_MANAGE_ROOMS_AUTORELEASE_DATE_INFO_TEXT><br><br>The inventory will only be held until the Room Release Date/Time listed. Rooms with no name assigned or a method of gaurantee will be released automatically after this date/time.<\/exl-static-text> <\/span> <\/div> <div data-ng-if=taskCtrl.cabConfirmationVisible> <p> <button type=button data-ng-click=taskCtrl.sendConfirmation() data-ng-disabled=taskCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_MANAGE_ROOMS_SEND_CAB_EMAIL_BUTTON>Resend Contract Email<\/exl-static-text> <\/button> <\/p> <\/div> <exl-hotel-item-inventory data=taskCtrl.hotelItemInventory config-options=taskCtrl.hotelItemInventoryConfig inventory-update=taskCtrl.refreshHotelItemInventory><\/exl-hotel-item-inventory> <div data-ng-if=taskCtrl.isCCGRequired> <p> <hr> <exl-payment change-allow-payment=taskCtrl.changeAllowPayment(checked)><\/exl-payment> <\/p> <\/div> <\/div> <div data-ng-if="taskCtrl.hotelItemInventory.length && taskCtrl.hotelItemInventory.length == 0" class=text-alert-color> <exl-static-text id-code=WEB_MANAGE_ROOMS_TASK_NO_INVENTORY>No Inventory found.<\/exl-static-text> <\/div> <exl-wizard-nav hide-button-back=true hide-button-next=taskCtrl.hideButtonNext label-button-next=taskCtrl.labelButtonNext click-button-next=taskCtrl.next() always-enable-button-next=true><\/exl-wizard-nav> ');n.put("App/Housing/Views/NoHotelDirective.html",'<exl-static-text id-code=NOHOTEL_DESCRIPTION><\/exl-static-text> <div data-ng-if=NoHotelCtrl.noHotelTypes> <exl-select-list label="Please select a reason from below:" itemlist=NoHotelCtrl.noHotelTypes selecteditem=NoHotelCtrl.selection.noHotelType hide-filter=true><\/exl-select-list> <\/div> <div data-ng-if="NoHotelCtrl.selection.noHotelType.value === \'OWNACC\'"> <exl-select-list label="If you are making your own accomodations, please select your hotel choice:" itemlist=NoHotelCtrl.noHotelList selecteditem=NoHotelCtrl.selection.noHotel><\/exl-select-list> <\/div> <div data-ng-if="NoHotelCtrl.selection.noHotelType.value === \'OWNACC\' && NoHotelCtrl.selection.noHotel.value === \'OTHER\'"> <label> If other, please provide the hotel name: <input type=text data-ng-model=NoHotelCtrl.selection.noHotelOther data-ng-required=true> <\/label> <\/div> <exl-static-text id-code=NOHOTEL_P1> <h3>Top reasons to book your room within the Official Housing Block<\/h3> <ul> <li>We monitor rates to ensure that you receive the lowest rates available<\/li> <li>Networking: Stay where other participants are.<\/li> <li>As your plans change you can update your reservation without penalty prior to check in.<\/li> <li>Book your hotel room now. Pay for it later.<\/li> <li>Outstanding customer service agents waiting to assist you.<\/li> <li>Your organization gets credit for the room, which allows rates to stay low for future events.<\/li> <li>A representative will be available at the event for any assistance needed.<\/li> <\/ul> <\/exl-static-text>');n.put("App/Housing/Views/NoHotelModal.html","<exl-no-hotel profile=modalCtrl.profile selection=modalCtrl.selection><\/exl-no-hotel>");n.put("App/Housing/Views/NoHotelModalFooter.html","<button type=button class=dark data-ng-click=modalCtrl.validateClose()> Continue <\/button>");n.put("App/Housing/Views/OccupantAddModal.html","<exl-select-list itemlist=modalCtrl.registrants selecteditem=modalCtrl.selected.registrant><\/exl-select-list>");n.put("App/Housing/Views/OccupantAddModalFooter.html","<button type=button class data-ng-disabled=modalCtrl.selected.registrant data-ng-click=modalCtrl.close({})> Create New <\/button> <button type=button class=dark data-ng-disabled=!modalCtrl.selected.registrant data-ng-click=modalCtrl.close(modalCtrl.selected.registrant)> Select <\/button>");n.put("App/Housing/Views/OccupantRemoveModal.html","<div data-ng-if=modalCtrl.isRemovingGroupIndividual> Removing yourself as a guest from this reservation will cause you to lose the ability to manage it. <\/div> <div> Are you certain that you want to remove guest <span class=label data-ng-cloak>{{modalCtrl.occupantName}}<\/span> from this room? <\/div>");n.put("App/Housing/Views/OccupantRemoveModalFooter.html","<button type=button class=secondary data-ng-click=modalCtrl.close(false)> No, do not remove <\/button> <button type=button class data-ng-click=modalCtrl.close(true)> Yes <\/button>");n.put("App/Housing/Views/OfficialProvider.html",'<p class="exl-top-margin-small exl-bot-margin-small"> <img class="left exl-margin-small" exl-ref-file-url=OfficialHousingProviderSeal.png alt="Experient is the Official Housing Provider" title="Experient is the Official Housing Provider"> <exl-static-text id-code=WEB_HOUSING_PROVIDER_PRE_SHOWDESC_TEXT><\/exl-static-text> <exl-static-text id-code=WEB_HOUSING_PROVIDER_SHOWDESC_TEXT>{{officialProviderCtrl.showInfo.tradeShowName}}.&nbsp;<\/exl-static-text> <exl-static-text id-code=WEB_HOUSING_PROVIDER_POST_SHOWDESC_TEXT><\/exl-static-text> <\/p>');n.put("App/Housing/Views/ReservationDatesModal.html",'<div class=row> <div class="columns end"> <label> Arrival Date <exl-date-picker model=modalCtrl.arrive.date min=modalCtrl.arrive.min max=modalCtrl.arrive.max is-required=true counterpart=modalCtrl.depart.date><\/exl-date-picker> <\/label> <\/div> <\/div> <div class=row> <div class="columns end"> <label> Departure Date <exl-date-picker model=modalCtrl.depart.date min=modalCtrl.depart.min max=modalCtrl.depart.max is-required=true counterpart=modalCtrl.arrive.date><\/exl-date-picker> <\/label> <\/div> <\/div>');n.put("App/Housing/Views/ReservationDatesModalFooter.html",'<button type=button data-ng-click=modalCtrl.dismiss()> Cancel Changes <\/button> <button type=button class=dark data-ng-click="modalCtrl.close({checkIn: modalCtrl.arrive.date, checkOut: modalCtrl.depart.date})"> Save Changes <\/button>');n.put("App/Housing/Views/ReservationUploadTask.html",'<exl-static-text id-code=WEB_RES_UPLOAD_TEXT_TOP><\/exl-static-text> <exl-accordion-tab> <exl-accordion-tab-group> <exl-accordion-tab-heading> <exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_HEADER>Drop off a New List<\/exl-static-text> <\/exl-accordion-tab-heading> <div class=content> <form novalidate class=simple-form name=formUpload> <h2 class=groupheader><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP1_HEADER>Step 1: Download reservation template<\/exl-static-text><\/h2> <exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP1_TEXT><p>Download our template Excel spreadsheet. Fill in the details for each reservation in the appropriate columns.<\/p><\/exl-static-text> <p> <a class=button data-ng-click=taskCtrl.downloadTemplate()> <i class="fa fa-fw fa-download"><\/i> <exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_DOWNLOAD_TEMPLATE>Download Template<\/exl-static-text> <\/a> <\/p> <h2 class=groupheader><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP2_HEADER>Step 2: Choose your completed list<\/exl-static-text><\/h2> <p> <label> <i class="fa fa-fw fa-asterisk text-alert-color"> <span class=exl-screen-reader-text>Asterisk<\/span> <\/i> <exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP2_LABEL>Select your completed template file to upload:<\/exl-static-text> <\/label> <input type=file name=file data-exl-file-model=taskCtrl.uploadModel.attachment> <em><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP2_TEXT>No credit card numbers! Due to security requirements, we can\'t accept a file that contains credit card numbers.<\/exl-static-text><\/em> <\/p> <h2 class=groupheader><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP3_HEADER>Step 3: Name your list and upload<\/exl-static-text><\/h2> <p> <label> <i class="fa fa-fw fa-asterisk text-alert-color"><span class=exl-screen-reader-text>Asterisk<\/span><\/i> <exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_CONTENT_STEP3_LABEL> Provide a name for your list:<\/exl-static-text> <\/label> <input type=text name=listname data-ng-model=taskCtrl.uploadModel.listName> <\/p><p> <button class=secondary data-ng-click=taskCtrl.reset()><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_BUTTON_CANCEL>Cancel<\/exl-static-text><\/button> <button data-ng-click=taskCtrl.uploadList(taskCtrl.uploadModel)><i class="fa fa-fw fa-upload"><\/i><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_NEWLIST_BUTTON_UPLOAD>Upload List<\/exl-static-text><\/button> <\/p> <\/form> <\/div> <\/exl-accordion-tab-group> <exl-accordion-tab-group> <exl-accordion-tab-heading> <exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_HEADER>View Uploaded Lists<\/exl-static-text> <\/exl-accordion-tab-heading> <div class=content> <div data-ng-if="taskCtrl.uploadLists.length>0"> <table class="table utility"> <thead> <tr> <th><exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_TABLE_HEADER_LISTNAME>List Name<\/exl-static-text><\/th> <th><exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_TABLE_HEADER_DATEUPLOADED>Date Uploaded<\/exl-static-text><\/th> <th><exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_TABLE_HEADER_UPLOADEDBY>Uploaded By<\/exl-static-text><\/th> <th><exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_TABLE_HEADER_STATUS>Status<\/exl-static-text><\/th> <th><\/th> <th><exl-static-text allow-html=false id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_TABLE_HEADER_FILE>File<\/exl-static-text><\/th> <\/tr> <\/thead> <tbody> <tr data-ng-repeat="list in taskCtrl.uploadLists" data-ng-class-even="\'even\'" data-ng-class-odd="\'odd\'">  <td data-ng-cloak>{{list.listName}}<\/td> <td data-ng-cloak>{{list.dateUploaded | date: \'M/d/yyyy\'}}<\/td> <td data-ng-cloak>{{list.uploadedBy}}<\/td> <td data-ng-cloak>{{list.status}}<\/td> <td><button class="small tight" data-ng-show=list.cancelButtonVisible data-ng-click="taskCtrl.cancelImport(list.requestId, $index)"><exl-static-text id-code=WEB_RES_UPLOAD_ACCORDION_VIEWLIST_BUTTON_CANCEL>Delete<\/exl-static-text><i class="fa fa-close text-alert-color"><\/i><\/button><\/td> <td><img data-exl-ref-file-url=Excel2003Icon.png data-ng-click=taskCtrl.viewImport(list.requestId)><\/td> <\/tr> <\/tbody> <\/table> <\/div> <\/div> <\/exl-accordion-tab-group> <\/exl-accordion-tab> <exl-wizard-nav><\/exl-wizard-nav> ');n.put("App/Housing/Views/RoomCancelModal.html","<div class=panel data-ng-if=modalCtrl.reservation.isCompleted> <exl-facility-cancel-policy facility-id=modalCtrl.reservation.facilityId reg-type-group-code=modalCtrl.reservation.leadOccAttendeeType res-check-in-date=modalCtrl.reservation.checkInDate><\/exl-facility-cancel-policy> <\/div> <p>Are you sure you want to cancel your hotel room? When you book your hotel with us, you are staying in a hotel where your colleagues are staying and help support your organization.<\/p>");n.put("App/Housing/Views/RoomCancelModalFooter.html",'<button type=button class=secondary data-ng-click=modalCtrl.close()> No, do not cancel <\/button> <button type=button class data-ng-click="modalCtrl.close({isCancelConfirmed: true})"> Yes <\/button>');n.put("App/Housing/Views/RoomChoiceTask.html",'<exl-facility-profile facility-id={{::taskCtrl.facilityId}} click-room=taskCtrl.chooseRoom sub-block-quantities=taskCtrl.subBlockQuantities visibility-options=taskCtrl.visibilityOptions><\/exl-facility-profile> <div data-ng-if="!taskCtrl.isHousingOpen && taskCtrl.isBeforeHousing"><exl-static-text id-code=WEB_ROOMCHOICE_OPEN>Housing will open on "housing open date", please come back after that day to book your room.<\/exl-static-text><\/div> <div data-ng-if="!taskCtrl.isHousingOpen && taskCtrl.isAfterHousing"><exl-static-text id-code=WEB_ROOMCHOICE_CLOSED>Housing is closed, please contact the hotel directly to book your room.<\/exl-static-text><\/div> <exl-wizard-nav hide-button-dashboard=::taskCtrl.isGradualEngagement hide-button-next="taskCtrl.isGradualEngagement ? false : (taskCtrl.roomSearchCriteria.numberOfRooms <= 1 || taskCtrl.subBlockQuantities.length <= 1)" disable-button-next=taskCtrl.disableNext() always-enable-button-next="taskCtrl.isGradualEngagement && taskCtrl.isHousingOpen" label-button-next="::taskCtrl.isCABMode ? \'Select\' : (taskCtrl.isGradualEngagement ? \'Check Rates & Availability\' : \'Reserve\')" click-button-next="taskCtrl.isGradualEngagement ? taskCtrl.geSearch() : taskCtrl.chooseRoom()"><\/exl-wizard-nav>');n.put("App/Housing/Views/RoomFeesDirective.html",'<div id={{::roomFeesCtrl.dropdownId}} class="f-dropdown f-dropdown-bump-down small content"> <table class=table> <tbody> <tr> <td>Room Fee<\/td> <td class=text-right data-ng-cloak> {{::roomFeesCtrl.subBlock.roomTotal | currency}} <\/td> <\/tr> <tr> <td>City Tax<\/td> <td class=text-right data-ng-cloak> {{::roomFeesCtrl.subBlock.totalCityTax | currency}} <\/td> <\/tr> <tr> <td>Occupancy Tax<\/td> <td class=text-right data-ng-cloak> {{::roomFeesCtrl.subBlock.totalOccupancyFee | currency}} <\/td> <\/tr> <tr> <td>Resort Fee<\/td> <td class=text-right data-ng-cloak> {{::roomFeesCtrl.subBlock.totalResortFee | currency}} <\/td> <\/tr> <\/tbody> <tfoot> <tr> <th>Room Total<\/th> <th class=text-right data-ng-cloak> {{::roomFeesCtrl.subBlock.totalForStay | currency}} <\/th> <\/tr> <\/tfoot> <\/table> <\/div>');n.put("App/Housing/Views/RoomNightsCriteriaDirective.html",'<div data-ng-if="!(roomNightsCriteriaCtrl.displaySuggestedHistoricalRoomNightsDistribution || roomNightsCriteriaCtrl.displayAppliedRoomNightsDistribution)"> <h3> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_NUMBER_ROOMS_HEADER>How many rooms do you want on the main event nights?<\/exl-static-text> <\/h3> <div class=row> <div class="medium-6 large-3 columns"> <exl-spinner model=roomNightsCriteriaCtrl.peakRoomQuantity required=true min=0 max=roomNightsCriteriaCtrl.maxRoomsRequested><\/exl-spinner> <\/div> <div class="medium-6 large-9 columns"> <button data-ng-click=roomNightsCriteriaCtrl.applyNewDistribution()> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_NUMBER_ROOMS_BUTTON>Apply<\/exl-static-text> <\/button> <\/div> <\/div> <div class=row data-ng-if=roomNightsCriteriaCtrl.historicalRoomNightsActive> <div class="medium-12 columns"> <div class=or><span>or<\/span><\/div> <p><\/p> <button data-ng-click=roomNightsCriteriaCtrl.applyHistoricalDistribution()> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_HISTORICAL_DISTRIBUTION_BUTTON>Use My Group\'s Historical Room Quantities<\/exl-static-text> <\/button> <\/div> <\/div> <\/div> <div data-ng-if="roomNightsCriteriaCtrl.displaySuggestedHistoricalRoomNightsDistribution || roomNightsCriteriaCtrl.displayAppliedRoomNightsDistribution"> <div data-ng-if=roomNightsCriteriaCtrl.displaySuggestedHistoricalRoomNightsDistribution> <p> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_HISTORICAL_DISTRIBUTION_TEXT>Since your group has booked housing with us last show, the suggested distribution of rooms for your group is shown below.<\/exl-static-text> <button class=empty type=button data-dropdown-toggle=#suggestedDistributionInfo><i class="fa fa-fw fa-info-circle"><\/i><\/button> <div id=suggestedDistributionInfo class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_HISTORICAL_DISTRIBUTION_INFO>This calculated distribution of rooms is based on your group\'s historical block housing data for this event. Your historical room quantities are then adjusted by our optimal nightly inventory calculation for this event.<\/exl-static-text> <\/div> <\/p> <\/div> <div data-ng-if=roomNightsCriteriaCtrl.displayAppliedRoomNightsDistribution> <p> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_APPLIED_DIST_TEXT>Your applied distribution of rooms is shown below.<\/exl-static-text> <span data-ng-if=roomNightsCriteriaCtrl.newDistributionApplied> <button class=empty type=button data-dropdown-toggle=#appliedDistributionInfo><i class="fa fa-fw fa-info-circle"><\/i><\/button> <div id=appliedDistributionInfo class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_APPLIED_DISTRIBUTION_INFO>This calculated distribution of rooms is based on the event room night quantity you entered. It has then been adjusted by our optimal nightly inventory calculation for this event.<\/exl-static-text> <\/div> <\/span> <\/p> <div class="alert-box warning" data-ng-if="roomNightsCriteriaCtrl.roomSearchCriteria.datesChanged && !roomNightsCriteriaCtrl.newDistributionApplied"> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_ALERTLABEL_DATECHANGE> You have made arrival/departure date changes. Please review your rooms below. <\/exl-static-text> <\/div> <\/div> <div data-ng-if=::roomNightsCriteriaCtrl.configPolicy.allowDistributionEdit> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_EDIT_DIST_TEXT><p>You may make adjustments as needed. Click Apply to continue or close this dialog to cancel.<\/p><\/exl-static-text> <\/div> <div data-ng-if=::!roomNightsCriteriaCtrl.configPolicy.allowDistributionEdit> <exl-static-text id-code=WEB_ROOM_NIGHTS_CRITERIA_NOEDIT_DIST_TEXT><p>You may make not make adjustments to this distribution. Click Apply to continue or close this dialog to cancel.<\/p><\/exl-static-text> <\/div> <table class="table utility"> <tr data-ng-repeat="roomNight in roomNightsCriteriaCtrl.roomNights"> <td data-ng-cloak>{{roomNight.dayDate | date : \'EEE, MMM d yyyy\'}}<\/td> <td> <exl-spinner model=roomNight.quantity required=true min=0 max=roomNight.max is-disabled=::!roomNightsCriteriaCtrl.configPolicy.allowDistributionEdit> <\/exl-spinner> <\/td> <\/tr> <\/table> <button class=exl-top-margin-small data-ng-click=roomNightsCriteriaCtrl.resetDistribution() type=button> <exl-static-text allow-html=false id-code=WEB_ROOM_NIGHTS_CRITERIA_BUTON_RESET_DISTRIBUTION>Reset Distribution<\/exl-static-text> <\/button> <\/div> ');n.put("App/Housing/Views/RoomNightsDisplayDirective.html","<ng-pluralize count=RoomNightsDisplay.reservation.numberOfNights when=\"{'1': 'single night ', 'other': '{} nights '}\"> <\/ng-pluralize> (<time datetime=\"{{RoomNightsDisplay.reservation.checkinDate | date:'yyyy-MM-dd'}}\" style=\"white-space: nowrap;\"> {{RoomNightsDisplay.reservation.checkinDate | date:'mediumDate'}} <\/time> &ndash; <time datetime=\"{{RoomNightsDisplay.reservation.checkoutDate | date:'yyyy-MM-dd'}}\" style=\"white-space: nowrap;\"> {{RoomNightsDisplay.reservation.checkoutDate | date:'mediumDate'}} <\/time>) <i class=\"fa fa-warning text-warning-color\" title=\"Waitlisted (click for details)\" data-ng-if=RoomNightsDisplay.reservation.isWaitlisted data-dropdown-toggle=#ddWaitlist_reservation_{{RoomNightsDisplay.reservation.reservationId}}> <\/i> <div id=ddWaitlist_reservation_{{RoomNightsDisplay.reservation.reservationId}} class=\"f-dropdown medium content\" data-ng-if=RoomNightsDisplay.reservation.isWaitlisted> <exl-facility-waitlist-dates reservation-id=RoomNightsDisplay.reservation.reservationId check-in-date=RoomNightsDisplay.reservation.checkinDate check-out-date=RoomNightsDisplay.reservation.checkoutDate> <\/exl-facility-waitlist-dates> <\/div> ");n.put("App/Housing/Views/RoomOccupantDirective.html",'<form name=frmOccupant data-ng-if="!roomOccupantCtrl.registrants.length || roomOccupantCtrl.selected.registrant" data-exl-zipcode-lookup class="background-warning-color-lighter exl-padding-small"> <exl-required-field-legend><\/exl-required-field-legend> <exl-wizard-task-layout profile=roomOccupantCtrl.occupant.registrant overrides="{ firstName: {isDisabled: roomOccupantCtrl.selected.registrant && roomOccupantCtrl.selected.registrant.value ? true : undefined}, lastName: {isDisabled: roomOccupantCtrl.selected.registrant && roomOccupantCtrl.selected.registrant.value ? true : undefined}, email: {isRequired: roomOccupantCtrl.requiresEmail ? true : undefined} }"><\/exl-wizard-task-layout> <div class=row> <div class="medium-6 columns end"> <label> <exl-static-text id-code=HSN_OCCUPANT_FREQUENTGUESTID_L1 additional-label-text="Frequent Guest ID" allow-html=false> Rewards Program # <\/exl-static-text> <input type=text name=frequentGuestID maxlength=50 data-ng-model=roomOccupantCtrl.occupant.frequentGuestID> <\/label> <\/div> <\/div> <div data-ng-if="roomOccupantCtrl.isOccupantOnly() && !roomOccupantCtrl.hasBlockHousing && !roomOccupantCtrl.isGroupIndividual"> <hr> <exl-static-text id-code=WEB_HSN_OCCUPANT_PASSWORD> <p>Choose a password so that you can return to edit or review.<\/p> <\/exl-static-text> <exl-password profile=roomOccupantCtrl.occupant.registrant auto-complete=false is-required=roomOccupantCtrl.requiresPassword data-ng-if=!roomOccupantCtrl.occupant.registrant.hasPassword><\/exl-password> <exl-password-modal title="Change Your Password" reg-id={{::roomOccupantCtrl.occupant.registrant.registrantId}} data-ng-if=roomOccupantCtrl.occupant.registrant.hasPassword><\/exl-password-modal> <\/div> <hr> <exl-ada-modal profile=roomOccupantCtrl.occupant.registrant modalcss=small title="Special Accomodations"><\/exl-ada-modal> <hr> <label> <exl-static-text id-code=HSN_OCCUPANT_LEADOCC_L1 additional-label-text="Lead Occupant" allow-html=false> Lead Occupant <\/exl-static-text> <input type=checkbox data-ng-model=roomOccupantCtrl.occupant.isLeadOccupant> <\/label> <hr> <div data-ng-if=roomOccupantCtrl.showDupeOverride> <div class=row> <div class="medium-6 columns end"> <label class="alert-box warning"> <input type=checkbox data-ng-model=roomOccupantCtrl.occupant.registrant.overrideDupeCheck> <b> Override Duplicate Check <\/b> <\/label> <\/div> <\/div> <hr> <\/div> <div class=text-center> <button type=button class=secondary data-ng-if="(roomOccupantCtrl.close() && roomOccupantCtrl.isCancelVisible) || roomOccupantCtrl.hasBlockHousing" data-ng-click=roomOccupantCtrl.closeOccupant() data-exl-scroll-to=.exl-accordion-group-reservation-{{::roomOccupantCtrl.reservation.reservationID}}> Cancel <\/button> <button type=submit class=info data-ng-click=roomOccupantCtrl.validateSave(frmOccupant) data-exl-scroll-to=.exl-accordion-group-reservation-{{::roomOccupantCtrl.reservation.reservationID}}> <i class="fa fa-save"><\/i> Save Guest <\/button> <\/div> <\/form>');n.put("App/Housing/Views/RoomOccupantTask.html",'<div> <div class=panel> <h2>{{::taskCtrl.facility.name}}<\/h2> <address data-ng-cloak> {{::taskCtrl.facility.address1}}<br data-ng-if=::taskCtrl.facility.address1> {{::taskCtrl.facility.address2}}<br data-ng-if=::taskCtrl.facility.address2> {{::taskCtrl.facility.address3}}<br data-ng-if=::taskCtrl.facility.address3> {{::taskCtrl.facility.city}}<span data-ng-if="::taskCtrl.facility.city && (taskCtrl.facility.stateCode || taskCtrl.facility.countryCode)">, <\/span> {{::taskCtrl.facility.stateCode}}<span data-ng-if="::taskCtrl.facility.stateCode && taskCtrl.facility.countryCode">, <\/span> {{::taskCtrl.facility.countryCode}} {{::taskCtrl.facility.zipCode}} <\/address> <\/div> <accordion> <accordion-group is-open="taskCtrl.isAccordionOpen && isFirstReservation" data-ng-repeat="reservation in ::taskCtrl.reservations track by reservation.reservationID" data-ng-init="isFirstReservation = $first; isOnlyReservation = $first && $last" data-ng-class="::\'exl-accordion-group-reservation-\' + reservation.reservationID"> <accordion-heading> <div data-ng-cloak> <span data-ng-if=!isOnlyReservation>Room #{{$index + 1}} - <\/span><span data-ng-cloak> {{::reservation.categoryName}}<\/span> <\/div> <span class=answer> <small> <strong> <span class=text-alert-color data-ng-if=!reservation.occupants.length> <exl-static-text id-code=WEB_RESERVATION_NOOCCUPANTS allow-html=false granularity=none> Room requires at least one guest <\/exl-static-text> <\/span> <span data-ng-repeat="occupant in reservation.occupants track by occupant.reservationOccupantID" data-ng-cloak> {{occupant.bookingRegistrantName}}<span data-ng-if=!$last>, <\/span> <\/span> <\/strong> <\/small> <\/span>  <\/accordion-heading> <div data-ng-if=!reservation> Reservation not found. <\/div> <div data-ng-if="reservation && reservation.isCancelled"> This reservation has been cancelled. <\/div> <div data-ng-if="reservation && !reservation.isCancelled"> <div class=row> <div class="medium-3 small-6 columns"> <label>Arrive<\/label> <div class=formvalue> <time datetime="{{reservation.checkInDate | date: \'yyyy-MM-dd\'}}" data-ng-cloak> {{reservation.checkInDate | date: \'shortDate\'}} <\/time> <\/div> <\/div> <div class="medium-3 small-6 columns"> <label>Depart<\/label> <div class=formvalue> <time datetime="{{reservation.checkOutDate | date: \'yyyy-MM-dd\'}}" data-ng-cloak> {{reservation.checkOutDate | date: \'shortDate\'}} <\/time> <\/div> <\/div> <div class="medium-6 small-12 columns exl-top-padding"> <button type=button class=tiny data-exl-room-change-dates=reservation> <i class="fa fa-fw fa-calendar"><\/i> Change Dates <\/button> <button type=button class=tiny data-exl-room-cancel=reservation> <i class="fa fa-fw fa-times"><\/i> Cancel Room <\/button> <span data-ng-if=::reservation.isWaitListed data-tooltip="Waitlisting occurs when a reservation cannot be confirmed immediately. Click for more details."> <button type=button class="tiny text-warning-color" data-dropdown-toggle=#ddWaitlist_reservation_{{reservation.reservationID}}> <i class="fa fa-fw fa-warning"><\/i> Waitlisted <\/button> <div id=ddWaitlist_reservation_{{reservation.reservationID}} class="f-dropdown medium content"> <exl-facility-waitlist-dates reservation-id=reservation.reservationID check-in-date=reservation.checkInDate check-out-date=reservation.checkOutDate><\/exl-facility-waitlist-dates> <\/div> <\/span> <\/div> <\/div> <hr> <h3 data-ng-cloak> Guests <small style="white-space: nowrap;">({{reservation.occupants.length | number}} of maximum-{{::reservation.maxOccupancy | number}})<\/small> <\/h3> <ol class="small-block-grid-1 medium-block-grid-3"> <li data-ng-repeat="occupant in reservation.occupants track by occupant.reservationOccupantID"> <ul class=button-group> <li> <button class=small type=button data-ng-disabled="taskCtrl.selectedOccupant[reservation.reservationID] || taskCtrl.selectedOccupant[reservation.reservationID] === false" data-ng-click="taskCtrl.editOccupant(reservation, $index)" data-ng-cloak> <i class="fa fa-pencil fa-fw"><span class=exl-screen-reader-text>Edit Guest<\/span><\/i>{{occupant.bookingRegistrantName}} <\/button> <\/li> <li> <button class=small type=button data-ng-click="taskCtrl.removeOccupant(reservation, $index)" data-ng-disabled="taskCtrl.selectedOccupant[reservation.reservationID] || taskCtrl.selectedOccupant[reservation.reservationID] === false || reservation.occupants.length === 1 || reservation.occupants[$index].isLeadOccupant === true || (taskCtrl.isGroupIndividual && reservation.occupants[$index].registrantID == taskCtrl.groupIndividualRegId && $index == 0)"> <i class="fa fa-times"><span class=exl-screen-reader-text>Remove<\/span><\/i> <\/button> <\/li> <\/ul> <\/li> <li data-tooltip="{{reservation.occupants.length >= reservation.maxOccupancy ? \'This room has reached its occupancy limit.\' : null}}"> <button type=button class="info small" data-ng-click=taskCtrl.addOccupant(reservation.reservationID) data-ng-disabled="taskCtrl.selectedOccupant[reservation.reservationID] || taskCtrl.selectedOccupant[reservation.reservationID] === false || reservation.occupants.length >= reservation.maxOccupancy || reservation.isBookingStatusClosed" data-ng-hide=reservation.addRoomRegistrant> <i class="fa fa-plus fa-fw"><\/i>Add Guest <\/button> <\/li> <\/ol> <exl-room-occupant data-ng-if="taskCtrl.selectedOccupant[reservation.reservationID] || taskCtrl.selectedOccupant[reservation.reservationID] === false" reservation=reservation reservation-occupant=taskCtrl.selectedOccupant[reservation.reservationID] booking=taskCtrl.booking close=taskCtrl.clearSelected><\/exl-room-occupant> <hr> <h3> Room Requests <div> <small> <exl-static-text id-code=WEB_RESERVATION_ROOMREQUESTS_P1 allow-html=false> <\/exl-static-text> <\/small> <\/div> <\/h3> <div class=row> <div class="medium-4 small-6 columns"> <label>Smoking<\/label>  <span data-tooltip="{{::taskCtrl.smokingEnabled ? \'\' : \'This is a non-smoking hotel\'}}"> <exl-select-list-modal modalcss=small title="Smoking Preference" itemlist=::taskCtrl.preferences[reservation.reservationID].smokingTypes selecteditem=taskCtrl.preferences[reservation.reservationID].selectedSmokingType is-disabled=!taskCtrl.smokingEnabled><\/exl-select-list-modal> <\/span> <\/div> <div class="medium-4 small-6 columns"> <label> Bedding <\/label> <exl-select-list-modal modalcss=small title="Bedding Preference" itemlist=::taskCtrl.preferences[reservation.reservationID].beddingTypes selecteditem=taskCtrl.preferences[reservation.reservationID].selectedBeddingType><\/exl-select-list-modal> <\/div> <div class="medium-4 small-12 columns"> <label>Additional Room Requests:<\/label> <textarea maxlength=255 data-ng-model=reservation.specialRequestComments data-exl-char-counter><\/textarea> <\/div> <\/div> <hr> <\/div> <\/accordion-group> <\/accordion> <\/div> <exl-wizard-nav hide-button-next=!taskCtrl.hasReservation() disable-button-next click-button-next=taskCtrl.saveReservations()><\/exl-wizard-nav> ');n.put("App/Housing/Views/RoomSearchCriteriaDirective.html",'<exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_P1><\/exl-static-text> <form name=frmRoomSearch data-ng-submit=roomSearchCriteriaCtrl.submitSearch() ignore-dirty> <div class=row> <div class="medium-4 columns"> <label>  <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_LABEL_ARRIVALDATE granularity=none allow-html=false additional-label-text="Arrival Date"> <\/exl-static-text> <exl-date-picker model=roomSearchCriteriaCtrl.roomSearchCriteria.arrivalDate min=roomSearchCriteriaCtrl.dateArriveMin max=roomSearchCriteriaCtrl.dateArriveMax is-required=true counterpart=roomSearchCriteriaCtrl.roomSearchCriteria.departureDate highlight-schedule-type-code=SF><\/exl-date-picker> <\/label> <label>  <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_LABEL_DEPARTUREDATE granularity=none allow-html=false additional-label-text="Departure Date"> <\/exl-static-text> <exl-date-picker model=roomSearchCriteriaCtrl.roomSearchCriteria.departureDate min=roomSearchCriteriaCtrl.dateDepartMin max=roomSearchCriteriaCtrl.dateDepartMax is-required=true counterpart=roomSearchCriteriaCtrl.roomSearchCriteria.arrivalDate highlight-schedule-type-code=SF><\/exl-date-picker> <\/label> <\/div> <div class="medium-4 show-for-medium-up columns" data-ng-if=!roomSearchCriteriaCtrl.isCABMode> <label>  <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_LABEL_NUMBEROFROOMS granularity=none allow-html=false additional-label-text="Number of Rooms"> <\/exl-static-text> <exl-spinner model=roomSearchCriteriaCtrl.roomSearchCriteria.numberOfRooms required=true min=1 max=roomSearchCriteriaCtrl.maxNumOfRooms step=1><\/exl-spinner> <\/label> <\/div> <div class="medium-4 columns" data-ng-if=!roomSearchCriteriaCtrl.isCABMode> <label>  <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_LABEL_NUMBEROFGUESTS granularity=none allow-html=false additional-label-text="Number of Guests (per room)"> <\/exl-static-text> <exl-spinner model=roomSearchCriteriaCtrl.roomSearchCriteria.numberOfGuests required=true min=1 max=roomSearchCriteriaCtrl.maxNumOfGuests step=1><\/exl-spinner> <\/label> <\/div> <div class="medium-8 columns" data-ng-if=roomSearchCriteriaCtrl.isCABMode> <button type=button class=exl-top-margin-small data-ng-click=roomSearchCriteriaCtrl.showRoomNightsModal() data-ng-disabled=frmRoomSearch.$invalid> <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_BUTTON_ROOM_NIGHTS allow-html=false>Room Quantities<\/exl-static-text> <\/button> <\/div> <\/div> <button type=submit class="dark exl-top-margin-small" data-ng-disabled="frmRoomSearch.$invalid || roomSearchCriteriaCtrl.searchStatus.isSearching" data-ng-if=roomSearchCriteriaCtrl.showButton() data-ng-cloak> <i class=fa data-ng-class="roomSearchCriteriaCtrl.searchStatus.isSearching ? \'fa-spinner fa-pulse\' : \'fa-search\'"><\/i> {{roomSearchCriteriaCtrl.searchStatus.isSearching ? \'Searching...\' : roomSearchCriteriaCtrl.searchStatus.isSearched ? \'Refresh Results\' : \'Search Hotels\'}} <\/button> <exl-room-search-criteria-no-hotel><\/exl-room-search-criteria-no-hotel> <\/form>');n.put("App/Housing/Views/RoomSearchCriteriaNoHotelDirective.html",'<div data-ng-show=roomSearchCriteriaNoHotelCtrl.showNoHotelButton> <div data-ng-if=!roomSearchCriteriaNoHotelCtrl.isNoResButtonOnly> <div class=or><span>or<\/span><\/div> <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_NOHOTEL_P1><\/exl-static-text> <button type=button data-ng-click=roomSearchCriteriaNoHotelCtrl.modalNoHotel()> <i class="fa fa-ban"><\/i> No Reservations at this time. <\/button> <exl-static-text id-code=WEB_ROOM_SEARCH_CRITERIA_NOHOTEL_P2><\/exl-static-text> <\/div> <div data-ng-if=roomSearchCriteriaNoHotelCtrl.isNoResButtonOnly> <button type=button class="small exl-top-margin-small" data-ng-click=roomSearchCriteriaNoHotelCtrl.modalNoHotel()> <i class="fa fa-ban"><\/i> No Reservations at this time. <\/button> <\/div> <\/div>');n.put("App/Housing/Views/RoomSearchTask.html",'<div data-ng-if=taskCtrl.isCABMode> <exl-static-text id-code=WEB_HOUSING_ROOM_SEARCH_P1><\/exl-static-text> <\/div> <accordion data-ng-hide=taskCtrl.isGradualEngagement> <accordion-group is-open="!taskCtrl.searchStatus.isSearched || taskCtrl.isAccordionOpen"> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_HOU_H1>Hotel Search Criteria<\/exl-static-text> <\/accordion-heading> <exl-room-search-criteria room-search-criteria=taskCtrl.roomSearchCriteria on-submit=taskCtrl.search() search-status=taskCtrl.searchStatus show-button=true><\/exl-room-search-criteria> <\/accordion-group> <\/accordion> <div data-ng-if=taskCtrl.searchStatus.isSearched> <exl-filter title="Filter Rooms" search-terms=taskCtrl.searchTerms search-terms-click=taskCtrl.openAccordion() is-disabled=!taskCtrl.roomSearchResults.length hide-filter-button=::taskCtrl.hideHousingFilters data-ng-if=::!taskCtrl.isGradualEngagement> <exl-filter-option data-ng-if=::taskCtrl.displaySoldOut type=bool title="Include Sold Out" init=::taskCtrl.roomSearchDefaults.includeSoldOut model=taskCtrl.roomSearchCriteria.includeSoldOut params="{ label: \'Yes\' }"><\/exl-filter-option> <exl-filter-option type=number title="Maximum Distance (in miles)" init=::taskCtrl.roomSearchDefaults.distance model=taskCtrl.roomSearchCriteria.distance params="{ min: 0, max: taskCtrl.maxDistance(), step: 0.1 }"><\/exl-filter-option> <exl-filter-option type=number title="Maximum Price" init=::taskCtrl.roomSearchDefaults.maximumRate model=taskCtrl.roomSearchCriteria.maximumRate params="{ min: 0, max: taskCtrl.maxRate(), step: 5 }"><\/exl-filter-option> <exl-filter-option type=text title="Hotel Name" init=::taskCtrl.roomSearchDefaults.hotelName model=taskCtrl.roomSearchCriteria.hotelName params="{ maxLength: 100 }"><\/exl-filter-option> <exl-filter-option data-ng-repeat="feature in taskCtrl.facilityFeatures track by feature.code" type=facilityFeature title={{::feature.desc}} group-title=Amenities init=::taskCtrl.facilityFeaturesSearchDefaults[feature.code] model=taskCtrl.facilityFeaturesSearchCriteria[feature.code] params="{ code: feature.code, desc: feature.desc, itemList: feature.itemList }"><\/exl-filter-option> <\/exl-filter> <exl-room-search-criteria-no-hotel is-no-res-button-only=1><\/exl-room-search-criteria-no-hotel> <exl-facility-rate-message data-ng-if=sortedAndLimitedRoomSearchResults.length><\/exl-facility-rate-message> <div class=alert-box data-ng-if="taskCtrl.filteredRoomSearchResults && !taskCtrl.filteredRoomSearchResults.length"> No rooms are available that meet your search criteria. <\/div> <dl class=sub-nav data-ng-if="taskCtrl.filteredRoomSearchResults && taskCtrl.filteredRoomSearchResults.length"> <dd data-ng-repeat="option in ::taskCtrl.sortOptions" data-ng-class="{\'active\': taskCtrl.sortExpression === option.value}"> <a data-ng-click=taskCtrl.sortSelect(option.value) data-ng-cloak> <i class=fa data-ng-class="taskCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="taskCtrl.sortExpression === option.value"><\/i> {{::option.text}} <\/a> <\/dd> <\/dl> <div data-ng-switch=::taskCtrl.housingSearchResultDisplayType>   <ul class="exl-hotel-results-list medium-block-grid-3 small-block-grid-1" data-ng-switch-default> <li data-ng-repeat="room in taskCtrl.filteredRoomSearchResults | orderBy: taskCtrl.sortExpression: taskCtrl.sortDesc | limitTo: taskCtrl.limitTo as sortedAndLimitedRoomSearchResults track by room.facilityId"> <div class=panel> <div exl-equalizer equalize-on-stack=false> <div class=thumb data-exl-facility-images=::taskCtrl.facilityDetail.images[room.facilityId] data-equalizer-watch> <\/div> <div class="text-left hotelinfo" data-equalizer-watch> <span data-ng-if=room.isSoldOut class="label small fixed-top-left alert">Sold Out<\/span> <span data-ng-if=room.isMinOut class="label small fixed-top-left warning"> Minimum stay of <ng-pluralize count=room.minNightStay when="{\'1\': \'One Night\', \'other\': \'{} Nights\'}"><\/ng-pluralize> <\/span>  <h1 class=hotelnameflex data-ng-cloak> <button type=button class=empty data-ng-click=taskCtrl.showHotelProfileModal(room.facilityId)> {{::room.hotelName}} <\/button> <\/h1> <div class=hotelrates> <h2 data-ng-cloak> <span class=text-secondary-color-darker> Rates Start At <\/span> {{room.lowestPrice | currency}} <button type=button class=empty data-exl-facility-inventory="{facilityId: room.facilityId, hotelName: room.hotelName}"> <i class="fa fa-table"><span class=exl-screen-reader-text>View Hotel Rates and Availability<\/span><\/i> <\/button> <button type=button class=empty data-ng-click=taskCtrl.showHotelProfileModal(room.facilityId) style=margin-top:-2px;> <i class="fa fa-info-circle"><\/i> <\/button> <\/h2> <\/div> <div class=hoteldistance> <label class=hide-for-small> Distance <\/label> <p class="exl-bot-padding-small hide-for-small" data-ng-if=::room.distance data-ng-cloak> {{::room.distance | number:1}} miles from {{::room.primaryFacilityName}} <\/p> <p class="exl-bot-padding-small hide-for-small" data-ng-if=::room.distance1 data-ng-cloak> {{::room.distance1 | number:1}} miles from {{::room.name1}} <\/p> <p class="exl-bot-padding-small hide-for-small" data-ng-if=::room.distance2 data-ng-cloak> {{::room.distance2 | number:1}} miles from {{::room.name2}} <\/p> <\/div> <div class=text-secondary-color-dark> <label class>Hotel Features<\/label> <p><exl-facility-features facility-id={{::room.facilityId}}><\/exl-facility-features><\/p> <\/div> <div class=viewroomsbutton> <span data-ng-cloak>  <button class="small dark expand exl-top-margin" data-ng-click=taskCtrl.bookRoom(room.facilityId)>Select Hotel<\/button> <\/span> <\/div> <\/div> <\/div>  <\/div> <\/li> <\/ul>   <ul class="exl-hotel-results-list compact" data-ng-switch-when=CONDENSED> <li class data-ng-repeat="room in taskCtrl.filteredRoomSearchResults | orderBy: taskCtrl.sortExpression: taskCtrl.sortDesc | limitTo: taskCtrl.limitTo as sortedAndLimitedRoomSearchResults track by room.facilityId"> <div class=panel> <div class=row> <div class="small-2 columns"> <div class=thumb data-exl-facility-images=::taskCtrl.facilityDetail.images[room.facilityId] data-equalizer-watch> <\/div> <\/div> <div class="small-10 columns"> <div class="row collapse"> <div class="medium-10 small-8 columns"> <span data-ng-if=room.isSoldOut class="label small fixed-top-left alert">Sold Out<\/span> <span data-ng-if=room.isMinOut class="label small fixed-top-left warning"> Minimum stay of <ng-pluralize count=room.minNightStay when="{\'1\': \'One Night\', \'other\': \'{} Nights\'}"><\/ng-pluralize> <\/span> <div class="row collapse"> <div class="medium-7 small-12 columns"> <div class=hotel-name data-ng-cloak> <button type=button class=empty data-ng-click=taskCtrl.showHotelProfileModal(room.facilityId)> {{::room.hotelName}} <i class="fa fa-fw fa-info-circle"><\/i> <\/button> <div class=show-for-medium-up data-ng-if=::room.distance data-ng-cloak> <small> {{::room.distance | number:1}} miles from {{::room.primaryFacilityName}} <\/small> <\/div> <\/div> <\/div> <div class="medium-5 show-for-medium-up columns"> <div class=rates data-ng-cloak> <label> Rates Start At {{room.lowestPrice | currency}} <button type=button class="small empty" data-exl-facility-inventory="{facilityId: room.facilityId, hotelName: room.hotelName}"> <i class="fa fa-table"><span class=exl-screen-reader-text>View Hotel Rates and Availability<\/span><\/i> <\/button> <\/label> <button class="small dark expand" data-ng-click=taskCtrl.bookRoom(room.facilityId)>Select Hotel<\/button> <\/div> <\/div> <\/div> <\/div> <div class="medium-2 small-4 columns text-right exl-padding-small"> <exl-registrant-like like-type-code=FACILITY like-type-id=::room.facilityId button-label=Favorite><\/exl-registrant-like> <\/div> <\/div> <div class="row collapse show-for-small-only"> <div class="small-7 columns"> <span> Rates Start At {{room.lowestPrice | currency}} <button type=button class="small empty" data-exl-facility-inventory="{facilityId: room.facilityId, hotelName: room.hotelName}"> <i class="fa fa-table"><span class=exl-screen-reader-text>View Hotel Rates and Availability<\/span><\/i> <\/button> <\/span> <\/div> <div class="small-5 columns"> <button class="small dark expand" data-ng-click=taskCtrl.bookRoom(room.facilityId)>Select Hotel<\/button> <\/div> <\/div> <\/div> <\/div> <\/div><\/li> <\/ul>  <\/div> <button type=button class="small expand exl-top-margin-small ex-bot-margin-small" data-ng-click=taskCtrl.loadMore() data-ng-if="taskCtrl.enableLoadMore && taskCtrl.filteredRoomSearchResults.length > sortedAndLimitedRoomSearchResults.length"> <i class="fa fa-plus"><\/i> <ng-pluralize count="taskCtrl.pageSize < taskCtrl.filteredRoomSearchResults.length - taskCtrl.limitTo ? taskCtrl.pageSize : taskCtrl.filteredRoomSearchResults.length - taskCtrl.limitTo" when="{\'1\': \'Load One More Hotel \', \'other\': \'Load {} More Hotels \'}"><\/ng-pluralize> <small data-ng-cloak> (Showing <span data-ng-bind="taskCtrl.limitTo < taskCtrl.filteredRoomSearchResults.length ? taskCtrl.limitTo : taskCtrl.filteredRoomSearchResults.length | number"><\/span> of {{taskCtrl.filteredRoomSearchResults.length}}) <\/small> <\/button> <\/div> <exl-official-provider><\/exl-official-provider> <exl-wizard-nav data-ng-if=!taskCtrl.widgetRoomSearchRedirect hide-button-next=true hide-button-dashboard=::taskCtrl.isGradualEngagement><\/exl-wizard-nav> ');n.put("App/Login/Views/BookingSelectionDirective.html",' <span data-ng-show=directiveCtrl.isLoggedIn()> <button class=empty dropdown-toggle=#BookingSwitcher> {{directiveCtrl.groupName}} <span data-ng-if="directiveCtrl.currentBooking && !directiveCtrl.isCurrentlyAddingNew"> / {{directiveCtrl.currentBooking.hasContact ? directiveCtrl.currentBooking.contactFirstName : \'No Contact \' + \'(Booking: \' + directiveCtrl.currentBooking.bookingId + \')\'}} <\/span> <i class="fa fa-fw fa-caret-down right"><\/i> <\/button> <ul id=BookingSwitcher class="f-dropdown personswitcher"> <li data-ng-repeat="booking in directiveCtrl.bookings | orderBy : [\'-hasContact\', \'contactLastName\' , \'contactFirstName\' , bookingId]" data-ng-class="(booking.bookingId == directiveCtrl.currentBookingId) ? \'active\' : \'\'" data-ng-if=!directiveCtrl.isBookingSelectionTask> <button class="small dark expand" data-ng-click=directiveCtrl.changeBooking(booking)> <i class="fa fa-fw fa-user"><\/i>{{booking.hasContact ? booking.contactLastName + \', \' + booking.contactFirstName : \'No Contact \' + \'(Booking: \' + booking.bookingId + \')\'}} <\/button> <\/li> <li data-ng-if="directiveCtrl.bookings && !directiveCtrl.isBookingSelectionTask"><\/li> <li data-ng-show="directiveCtrl.isAddNewEnabled && !directiveCtrl.isBookingSelectionTask && !directiveCtrl.isCurrentlyAddingNew"> <button class="small expand" data-ng-click=directiveCtrl.addNew()> <i class="fa fa-fw fa-user-plus"><\/i> <exl-static-text id-code=WEB_BOOKING_CONTACT_SELECTOR_LIST_ADDNEW>Add New Contact<\/exl-static-text> <\/button> <\/li> <li> <button class="small expand" data-ng-click=directiveCtrl.logout($event)> <i class="fa fa-fw fa-sign-out"><\/i> <exl-static-text id-code=WEB_BOOKING_CONTACT_SELECTOR_LIST_LOGOUT>Sign Out<\/exl-static-text> <\/button> <\/li> <\/ul> <\/span> ');n.put("App/Login/Views/BookingSelectionTask.html","<exl-static-text id-code=WEB_BOOKING_CONTACT_SELECT_TEXT_TOP><h3>Which contact are you?<\/h3><\/exl-static-text> <ul class=\"medium-block-grid-3 small-block-grid-1\"> <li data-ng-repeat=\"booking in taskCtrl.bookings | orderBy : ['-hasContact', 'contactLastName', 'contactFirstName', bookingId]\"> <a class=\"button expand exl-padding-small text-left\" data-ng-click=taskCtrl.selectBooking(booking) data-ng-disabled=taskCtrl.disableInput> <i class=\"fa fa-chevron-right right text-secondary-color-light\"><\/i> {{booking.hasContact ? booking.contactFirstName + ' ' + booking.contactLastName : 'No Contact ' + '(Booking: ' + booking.bookingId + ')'}} <\/a> <\/li> <\/ul> <div data-ng-show=::taskCtrl.isAddNewEnabled> <exl-static-text id-code=WEB_BOOKING_CONTACT_SELECT_SECTION_ADDNEW_HEADER><h3>Adding a Contact<\/h3><\/exl-static-text> <exl-static-text id-code=WEB_BOOKING_CONTACT_SELECT_SECTION_ADDNEW_TEXT><p>Add a new contact when you have a group of people whose registrations and/or reservations need to be managed by a single person.<\/p><\/exl-static-text> <button data-ng-click=taskCtrl.addNew() data-ng-disabled=taskCtrl.disableInput> <exl-static-text id-code=WEB_BOOKING_CONTACT_SELECT_SECTION_BUTTON_SUBMIT>Add New Contact<\/exl-static-text> <\/button> <\/div> ");n.put("App/Login/Views/PersonSwitcherDirective.html",' <span ng-hide="PersonSwitcher.username || PersonSwitcher.isGroupIndividual"> <button class="small dark" ng-click=PersonSwitcher.signIn()> <i class="fa fa-fw fa-sign-in"><\/i> Sign In <\/button> <\/span> <span ng-show=PersonSwitcher.username> <button class=empty dropdown-toggle=#PersonSwitcher> <span ng-bind=PersonSwitcher.username><\/span> <i class="fa fa-fw fa-caret-down right"><\/i> <\/button> <ul id=PersonSwitcher class="f-dropdown personswitcher"> <li ng-if="PersonSwitcher.taskGroupSummary && PersonSwitcher.enableGroupSummary && !PersonSwitcher.isGroupIndividual"> <button class="small expand" ng-click=PersonSwitcher.navGroupSummary()> <span data-ng-bind=PersonSwitcher.taskGroupSummary.taskDisplayName><\/span> <\/button> <\/li> <li ng-repeat="reg in PersonSwitcher.registrants | filter:{registrantId:PersonSwitcher.currentRegId}"> <button class="small dark expand" ng-click=PersonSwitcher.personClick(reg)> <i class="fa fa-fw fa-user"><\/i>{{reg.firstName + " " + reg.lastName}} <i class="fa fa-money text-alert-color-light" ng-show="reg.balanceDue || reg.housingBalanceDue || reg.housingCCGDue"> <\/i> <\/button> <div ng-if=reg.guests.length class=exl-gutter-wrap-lr>  <div class="exl-gutter-wrap-lr text-left" ng-repeat="guest in reg.guests"> <small><em>{{guest.firstName + " " + guest.lastName}}<\/em><\/small> <\/div> <\/div> <\/li> <li data-ng-if=PersonSwitcher.username data-exl-add-another> <button class="small expand"> <i class="fa fa-fw fa-user-plus"><\/i>Add Another Person <\/button> <\/li> <li> <button class="small expand" data-ng-click=PersonSwitcher.signOut($event) data-ng-show=PersonSwitcher.username> <i class="fa fa-fw fa-sign-out"><\/i><exl-static-text id-code=WEB_LOGOUT_BTN allow-html=false>Sign Out<\/exl-static-text> <\/button> <\/li> <\/ul> <\/span> ');n.put("App/Login/Views/RegistrantGroupCreate.html",'<exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_CREATE_TEXT_TOP><p>Please enter the information below, then click the <strong>Create Group<\/strong> button to continue. The username and password you enter will serve as your credentials when you return to the site.<\/p><\/exl-static-text> <form name=registrantGroupCreateCtrl.formRegGroupCreate data-ng-submit=registrantGroupCreateCtrl.create() novalidate> <div class=row> <div class="medium-12 columns"> <p class="alert-box success ng-hide" ng-show=registrantGroupCreateCtrl.showSuccess> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_CREATE_SUCCESS_TEXT>Your new group has been created.<\/exl-static-text> <\/p> <p class="alert-box warning ng-hide" ng-show=registrantGroupCreateCtrl.showWait> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_CREATE_WAIT_TEXT>Please wait while we create your group...<\/exl-static-text> <\/p> <div class=row> <div ng-repeat="item in registrantGroupCreateCtrl.items" class="medium-7 columns end"> <exl-field-detail item=item profile=registrantGroupCreateCtrl.profile><\/exl-field-detail> <\/div> <\/div> <exl-password profile=registrantGroupCreateCtrl.profile><\/exl-password> <div class=exl-top-padding-small> <button type=submit class=dark data-ng-disabled=registrantGroupCreateCtrl.disableInput> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_CREATE_BUTTON_SUBMIT>Create Group<\/exl-static-text> <\/button> <\/div> <\/div> <\/div> <\/form> ');n.put("App/Login/Views/RegistrantGroupLogin.html",'<exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_LOGIN_TEXT_TOP><p>Please enter the username and password, then click "Login".<\/p><\/exl-static-text> <form name=registrantGroupLoginCtrl.formRegGroupLogin data-ng-submit=registrantGroupLoginCtrl.login() novalidate ignore-dirty> <div class=row> <div class="medium-12 columns"> <p class="alert-box warning ng-hide" ng-show=registrantGroupLoginCtrl.showWait> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_LOGIN_WAIT_TEXT>Please wait while we log you in...<\/exl-static-text> <\/p> <div class=row> <div ng-repeat="item in registrantGroupLoginCtrl.items" class="medium-7 columns end"> <exl-field-detail item=item profile=registrantGroupLoginCtrl.profile><\/exl-field-detail> <\/div> <\/div> <exl-password profile=registrantGroupLoginCtrl.profile><\/exl-password> <div class=exl-top-padding-small> <button type=submit class=dark data-ng-disabled=registrantGroupLoginCtrl.disableInput> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_LOGIN_BUTTON_SUBMIT>Login<\/exl-static-text> <\/button> <\/div> <\/div> <\/div> <\/form> ');n.put("App/Login/Views/RegistrantGroupLoginTask.html",'<exl-static-text id-code=WEB_GROUP_LOGIN_TEXT_TOP granularity=page><\/exl-static-text> <div class=row> <div class="medium-6 columns exl-bot-margin" data-ng-if=taskCtrl.enableNewGroupCreation data-ng-hide="taskCtrl.isSearching || taskCtrl.teamSelected || taskCtrl.loginSet"> <exl-required-field-legend><\/exl-required-field-legend> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_SEARCH_HEADER><h2>Registering?<\/h2><\/exl-static-text> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_SEARCH_TEAMNUM><p>Enter your Team Number below and click Search to lookup your team.<\/p><\/exl-static-text> <label> Team Number: <\/label> <input data-ng-model=taskCtrl.searchCriteria.teamNum style=max-width:300px> <div class=exl-bot-padding> <button type=button class=dark ng-click=taskCtrl.search()> Search <\/button> <\/div> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_SEARCH_TEAMNAME><p>Don\'t know your Team Number? Search by Team Name instead.<\/p><\/exl-static-text> <label> Team Name: <\/label> <input data-ng-model=taskCtrl.searchCriteria.teamName style=max-width:300px> <div class=exl-bot-padding> <button type=button class=dark ng-click=taskCtrl.search()> Search <\/button> <\/div> <exl-registrant-group-create profile=taskCtrl.groupCreateProfile items=taskCtrl.groupCreateItems success-callback=taskCtrl.groupCreateSuccessful data-ng-if=taskCtrl.teamSelected><\/exl-registrant-group-create> <\/div> <div class="medium-6 columns end exl-bot-margin" style=margin-top:2rem; data-ng-if="!taskCtrl.hasSearched || taskCtrl.loginSet"> <exl-static-text data-ng-if=taskCtrl.loginSet id-code=WEB_GROUP_LOGIN_SECTION_LOGIN_HEADER2>Registration and/or Housing has already been started for this team. Please log in below to complete the process.<\/exl-static-text> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_LOGIN_HEADER><h2>Returning User?<\/h2><\/exl-static-text> <exl-registrant-group-login profile=taskCtrl.groupLoginProfile items=taskCtrl.groupLoginItems success-callback=taskCtrl.groupLoginSuccessful><\/exl-registrant-group-login> <\/div> <\/div> <div class=row> <div class="medium-12 columns text-center" data-ng-if=taskCtrl.isSearching> <exl-static-text data-ng-if="taskCtrl.teamResults.length == 0" id-code=WEB_GROUP_LOGIN_SECTION_LOGIN_NORESULTS><p>We are unable to find your team in our database. Please send an email to FIRSTteamsHOU@experient-inc.com. Please provide your Team Number, your Team Name and your Team Program (FRC, FTC, FLL, FLL Jr.). Please allow 2 business days for us to update our database.<\/p><\/exl-static-text> <table class="table utility stretch"> <thead> <tr> <th><\/th> <th data-ng-click="taskCtrl.sortSelect(\'teamnum\')"> Team Number <i class="fa fa-caret-up" ng-show="taskCtrl.sortDesc && taskCtrl.sortExpression ==\'teamnum\'"><\/i> <i class="fa fa-caret-down" ng-show="!taskCtrl.sortDesc && taskCtrl.sortExpression ==\'teamnum\'"><\/i> <\/th> <th data-ng-click="taskCtrl.sortSelect(\'teamname\')"> Team Name <i class="fa fa-caret-up" ng-show="taskCtrl.sortDesc && taskCtrl.sortExpression ==\'teamname\'"><\/i> <i class="fa fa-caret-down" ng-show="!taskCtrl.sortDesc && taskCtrl.sortExpression ==\'teamname\'"><\/i> <\/th> <th data-ng-click="taskCtrl.sortSelect(\'teamprogdesc\')"> Team Program <i class="fa fa-caret-up" ng-show="taskCtrl.sortDesc && taskCtrl.sortExpression ==\'teamprogdesc\'"><\/i> <i class="fa fa-caret-down" ng-show="!taskCtrl.sortDesc && taskCtrl.sortExpression ==\'teamprogdesc\'"><\/i> <\/th> <\/tr> <\/thead> <tbody> <tr data-ng-repeat="team in taskCtrl.teamResults | orderBy: taskCtrl.sortExpression: taskCtrl.sortDesc"> <td><button class=dark ng-click="taskCtrl.select(team.teamnum, team.teamname, team.teamprog, team.allowed)">Register<\/button><\/td> <td>{{::team.teamnum}}<\/td> <td>{{::team.teamname}}<\/td> <td>{{::team.teamprogdesc}}<\/td> <\/tr> <\/tbody> <\/table> <button class=dark ng-click=taskCtrl.resetSearch()>Search Again<\/button> <\/div> <\/div> <div class=row> <div class="medium-8 columns end" data-ng-if="taskCtrl.enableNewGroupCreation && taskCtrl.teamSelected"> <exl-static-text id-code=WEB_GROUP_LOGIN_SECTION_CREATE_HEADER><h2>Registering?<\/h2><\/exl-static-text> <exl-registrant-group-create profile=taskCtrl.groupCreateProfile items=taskCtrl.groupCreateItems success-callback=taskCtrl.groupCreateSuccessful data-ng-if=taskCtrl.teamSelected><\/exl-registrant-group-create> <\/div> <\/div> <div> <exl-wizard-nav click-button-back=taskCtrl.back() hide-button-next=true hide-button-dashboard=true><\/exl-wizard-nav> <\/div> ');n.put("App/Login/Views/RegistrantLogin.html",'<tabset data-ng-hide=modalCtrl.memberSearchResults> <tab select=modalCtrl.selectTabSignIn() heading={{modalCtrl.signInText}} active=modalCtrl.tabSignIn data-ng-hide=modalCtrl.isLoggedIn> <form name=modalCtrl.formRegLogin exl-isolate-form data-ng-if=modalCtrl.displayLogin novalidate ng-keyup=modalCtrl.keyup($event) ignore-dirty> <div class=row> <div class="medium-12 columns"> <exl-static-text id-code=REGISTRANT_LOGIN_P1><\/exl-static-text> <\/div> <\/div> <div class=row ng-show=modalCtrl.enableFacebookLogin> <div class="medium-12 columns"> <exl-social-network-sign-in click-button-facebook=modalCtrl.signInFacebook(true)><\/exl-social-network-sign-in> <\/div> <\/div> <div class=row ng-show=modalCtrl.enableFacebookLogin> <div class="medium-12 columns"> <div class=or><span>or<\/span><\/div> <\/div> <\/div>  <div class=row ng-repeat="item in modalCtrl.items"> <div class="medium-12 columns"> <exl-field-detail item=item profile=modalCtrl.profile><\/exl-field-detail> <\/div> <\/div> <div class=row> <div class="medium-12 columns"> <exl-password profile=modalCtrl.profile><\/exl-password>  <p><a class="small empty exl-top-margin-small" ng-click=modalCtrl.forgotPassword()>Forgot Password?<\/a><\/p> <\/div> <\/div> <div class=row> <div class="medium-12 columns"> <p class="alert-box warning ng-hide" ng-show=modalCtrl.showWait>Please wait while we sign you in...<\/p> <p class="alert-box warning ng-hide" ng-show=modalCtrl.showNoFlow>We apologize, but we are unable to sign you in at this time. Please contact customer service for assistance. Thank you!<\/p> <\/div> <\/div> <div class=row> <div class="medium-12 columns"> <exl-static-text id-code=REGISTRANT_LOGIN_P2><\/exl-static-text> <\/div> <\/div> <\/form> <form name=modalCtrl.formRegForgotPassword data-ng-if=!modalCtrl.displayLogin novalidate ng-keyup=modalCtrl.keyup($event) ignore-dirty> <div class=row> <div class="medium-12 columns"> <exl-static-text id-code=REGISTRANT_LOGIN_FORGOT_PASSWORD_P1><\/exl-static-text> <\/div> <\/div>  <div class=row ng-repeat="item in modalCtrl.forgotPasswordItems"> <div class="medium-12 columns"> <exl-field-detail item=item profile=modalCtrl.profile><\/exl-field-detail>  <p><a class="small empty exl-top-margin-small" ng-click=modalCtrl.returnToLogin()>Return to Sign In<\/a><\/p> <\/div> <\/div> <div class=row> <div class="medium-12 columns"> <exl-static-text id-code=REGISTRANT_LOGIN_FORGOT_PASSWORD_P2><\/exl-static-text> <\/div> <\/div> <\/form> <\/tab> <tab select="modalCtrl.tab = modalCtrl.createNewText" heading={{modalCtrl.createNewText}} active=modalCtrl.tabCreateNew data-ng-hide=modalCtrl.hideCreateNew> <exl-static-text id-code=REGISTRANT_CREATE_NEW_GE_SHOWITEM ng-show="modalCtrl.defaultStaticText == \'SHOWITEM\'">Create your record now to save your Liked sessions and events.<\/exl-static-text> <exl-static-text id-code=REGISTRANT_CREATE_NEW_GE_HOTEL ng-show="modalCtrl.defaultStaticText == \'FACILITY\'">Create your record now to save your Liked hotels.<\/exl-static-text> <exl-static-text id-code=REGISTRANT_CREATE_NEW ng-show=!modalCtrl.defaultStaticText><\/exl-static-text> <form name=modalCtrl.formCreateNew exl-isolate-form novalidate ignore-dirty> <div class=row ng-show=modalCtrl.enableFacebookLogin> <div class="medium-12 columns"> <exl-social-network-sign-in click-button-facebook=modalCtrl.signInFacebook(true)><\/exl-social-network-sign-in> <\/div> <\/div> <div ng-show=modalCtrl.enableFacebookLogin> <div class=or><span>or<\/span><\/div> <\/div>  <div class=row ng-repeat="item in modalCtrl.createNewItems" ng-if=modalCtrl.useDefaultLayout> <div class="medium-12 columns"> <exl-field-detail item=item profile=modalCtrl.profile><\/exl-field-detail> <\/div> <\/div> <exl-wizard-task-layout layout=NewRecord profile=modalCtrl.profile field-detail-data=modalCtrl.fieldDetailData ng-if=!modalCtrl.useDefaultLayout><\/exl-wizard-task-layout> <div class=row> <div class="medium-12 columns"> <exl-password profile=modalCtrl.profile><\/exl-password> <\/div> <\/div> <div class=row data-ng-if=modalCtrl.showDupeOverride> <div class="medium-12 columns"> <label class="alert-box warning"> <input type=checkbox data-ng-model=modalCtrl.profile.overrideDupeCheck> <b> Override Duplicate Check <\/b> <\/label> <\/div> <\/div> <\/form> <\/tab> <\/tabset> <div data-ng-show=modalCtrl.memberSearchResults> <exl-static-text id-code=MEMBER_SEARCH_RESULTS_MODAL><\/exl-static-text> <exl-member-search-results select=modalCtrl.selectMember(member) load-more=modalCtrl.loadMoreMemberResults() search-results=modalCtrl.memberSearchResults record-count=modalCtrl.memberRecordCount current-page=modalCtrl.memberCurrentPage page-count=modalCtrl.memberPageCount> <\/exl-member-search-results> <\/div> ');n.put("App/Login/Views/RegistrantLoginFooter.html",' <button type=button class="button secondary" ng-click=modalCtrl.cancelClick()>Cancel<\/button> <button type=button class="button dark" ng-click=modalCtrl.click()><i class="fa fa-fw fa-sign-in"><\/i>{{modalCtrl.tab}}<\/button> ');n.put("App/MarketingCode/Views/DiscountAmountDirective.html",'<div class="row collapse"> <div class="small-1 columns" data-ng-hide=showPercentSign()> <span class=prefix><span class="fa fa-dollar"><\/span> <\/span> <\/div> <div class="small-11 columns"> <input type=number name=discountAmount min=0 data-ng-model=discount.discountAmount data-ng-required=required data-exl-percent="discount.discountType.toUpperCase() === \'PERCENT\'"> <\/div> <div class="small-1 columns" data-ng-show=showPercentSign()> <span class=postfix>%<\/span> <\/div> <\/div> <div class=row> <div class=columns> <div data-ng-messages=form.discountAmount.$error data-ng-if="form.discountAmount.$touched || form.$submitted"> <div data-ng-message=required class="alert label small">Please enter a discount amount<\/div> <div data-ng-message=min class="alert label small">Please enter a positive number<\/div> <div data-ng-message=number class="alert label small">Please enter a number<\/div> <div data-ng-message=percent class="alert label small">Please enter a number between 0-100<\/div> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/DiscountDirective.html",'<div class="row panel callout text-center" data-ng-if="!DiscountCtrl.busy && !DiscountCtrl.discount.isActive" style="position:absolute; top:0;height:100%; opacity:0.95; z-index:100; left:0.9375rem; right:0.9375rem;"> <div class=columns> <strong>Deactivated<\/strong> <div> <button class=icon-button data-ng-click=DiscountCtrl.toggleActive($event)> <span class="fa fa-fw fa-lg fa-refresh text-success-color"><\/span> <\/button> <\/div> <\/div> <\/div> <div class="row panel" data-ng-class="DiscountCtrl.discountType === \'REGTYPE\' ? \'background-success-color-lighter\' : \'background-warning-color-lighter\'" data-ng-cloak> <div class=columns> <div class=row> <div class="columns large-9"> <div data-ng-show=DiscountCtrl.busy> Loading <\/div> <div data-ng-show=!DiscountCtrl.busy class=exl-fade-in-only> <div class=row> <div class="columns large-6"> <label>Discount Type<\/label> {{::DiscountCtrl.getDiscountTypeDescription()}} <\/div> <div class="columns large-6"> <label>Discount Amount<\/label> {{::DiscountCtrl.getDiscountAmount()}} <\/div> <\/div> <div class=row data-ng-if="DiscountCtrl.discountType !== \'REGTYPE\'"> <div class=columns> <label>Discount Showitems<\/label> <div data-ng-show=!activeTargets.length> <span class="fa fa-exclamation-triangle text-warning-color"><\/span>&nbsp;None <\/div> <div data-ng-show=activeTargets.length> <ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-5"> <li data-ng-repeat="target in activeTargets = (DiscountCtrl.discount.discountTargets | filter:{isActive: true})"> {{::target.discountTarget}} <\/li> <\/ul> <\/div> <\/div> <\/div> <div class=row data-ng-if="DiscountCtrl.discountType === \'REGTYPE\'"> <div class=columns> <label>Discount Regtypes<\/label> <exl-reg-type-qualifiers data-discount-id=DiscountCtrl.discount.marketingCodeDiscountID><\/exl-reg-type-qualifiers> <\/div> <\/div> <\/div> <\/div> <div class="columns large-3" data-ng-disabled=DiscountCtrl.busy> <a class="button icon-button" ui-sref="marketingCode.edit.discount-edit({discountID: DiscountCtrl.discount.marketingCodeDiscountID})"><span class="fa fa-fw fa-lg fa-pencil"><\/span><\/a> <button class=icon-button data-ng-click=DiscountCtrl.toggleActive($event)><span class="fa fa-fw fa-lg fa-times text-alert-color"><\/span><\/button> <span class=right data-ng-if=DiscountCtrl.discountHasQualifierError> <a ui-sref="marketingCode.edit.discount({discountID: DiscountCtrl.discount.marketingCodeDiscountID})"><span class="alert fa fa-exclamation-circle fa-2x" data-tooltip={{DiscountCtrl.discountError}} data-tooltip-placement=left><\/span><\/a> <\/span> <\/div> <\/div> <\/div> <\/div> ');n.put("App/MarketingCode/Views/DiscountGroupDirective.html",'<div class=row> <div class="columns large-2"> <h2>Discounts<\/h2> <\/div> <div class="columns large-10"> <a class=button data-ng-click=addNewDiscount()>Add New Discount<\/a> <\/div> <\/div> <div class=row data-ng-repeat="discount in discounts"> <div class=columns> <exl-discount data-discount=discount><\/exl-discount> <\/div> <\/div>');n.put("App/MarketingCode/Views/DiscountQualifierErrorsDirective.html",'<div class="row alert label small" data-ng-show=discountQualifierErrors.length> <div class=columns> <div class data-ng-show=discountQualifierErrors.length> <p>There are one or more problems with the qualifiers for this discount<\/p> <ul class=no-bullet> <li data-ng-repeat="error in discountQualifierErrors">{{error.text}}<\/li> <\/ul> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/DiscountSummaryPopupDirective.html",'<div data-ng-cloak data-ng-if=ctrl.marketingCode.discountTypes.length> <div class=hide-for-touch> <ul class="small-block-grid-1 large-block-grid-2"> <li data-ng-repeat="type in ctrl.marketingCode.discountTypes" data-ng-mouseenter=ctrl.setupAndShowPopup(type) data-tooltip-html-unsafe={{ctrl.marketingCode.discountPopupHTML[type]}} data-tooltip-append-to-body=false data-tooltip-placement=bottom> {{type}} <\/li> <\/ul> <\/div> <\/div>');n.put("App/MarketingCode/Views/DiscountSummaryPopupTemplate.html",'<div> <div data-ng-switch=::type> <div data-ng-switch-when=REGTYPE> <strong>Regtype Discounts<\/strong> <\/div> <div data-ng-switch-when=SHOWITEM> <strong>Showitem Discounts<\/strong> <\/div> <\/div> <div data-ng-repeat="discount in activeDiscounts | filter:{type:type}" class=exl-padding-tiny> <span data-ng-if="::discount.discountType !== \'PERCENT\'">$<\/span>{{::discount.discountAmount}}<span data-ng-if="::discount.discountType === \'PERCENT\'">%<\/span> <span data-ng-switch=::discount.discountType> <span data-ng-switch-when=SETFEE>set fee:<\/span> <span data-ng-switch-default>off:<\/span> <\/span> <span data-ng-switch=::discount.type> <span data-ng-switch-when=REGTYPE> <span data-ng-repeat="dt in regtypes = (discount.discountQualifiers | filter: {isActive:true,qualType:\'Registration\'})"> {{dt.qualCode}}<span data-ng-show=!$last>,<\/span> <\/span> <span data-ng-if="::regtypes.length === 0"> All Regtypes <\/span> <\/span> <span data-ng-switch-when=SHOWITEM> <span data-ng-repeat="dt in showitems = (discount.discountTargets | filter: {isActive:true})"> {{dt.discountTarget}}<span data-ng-show=!$last>,<\/span> <\/span> <span data-ng-if="::showitems.length === 0"> No Showitems <span class="fa fa-exclamation-triangle text-warning-color"><\/span> <\/span> <\/span> <\/span> <\/div> <\/div>');n.put("App/MarketingCode/Views/EditDiscount.html",'<div ui-view> <div class=row> <div class=columns> <ul class=breadcrumbs> <li><a data-ui-sref=root.all>Marketing Codes<\/a><\/li> <li><a data-ui-sref=marketingCode.edit data-ng-bind=EditDiscountCtrl.code><\/a><\/li> <li class=current><a>Discount<\/a><\/li> <\/ul> <\/div> <\/div> <div data-ng-switch=EditDiscountCtrl.isRegistrationDiscount()> <div data-ng-switch-when=true> <exl-static-text id-code=WEB_MC_EDIT_REG_DISCOUNT_H1> <h2>Edit Registration Discount<\/h2> <\/exl-static-text> <exl-static-text id-code=WEB_MC_EDIT_REG_DISCOUNT_P1> <p>Edit discount information, qualifiers and applicable reg types for this registration discount.<\/p> <\/exl-static-text> <\/div> <div data-ng-switch-default> <exl-static-text id-code=WEB_MC_EDIT_SHOWITEM_DISCOUNT> <h2>Edit Show Item Discount<\/h2> <\/exl-static-text> <exl-static-text id-code=WEB_MC_EDIT_SHOWITEM_DISCOUNT_P1> <p>Edit discount information, qualifiers and applicable show items for this show items discount.<\/p> <\/exl-static-text> <\/div> <\/div> <div class=row data-ng-show=EditDiscountCtrl.busy> <div class="columns text-center"> <br> Loading <br><br> <\/div> <\/div> <div class="row exl-fade-in-only" data-ng-hide=EditDiscountCtrl.busy> <div class=columns> <div data-ng-show=EditDiscountCtrl.errors.length> <div class="alert label small"> <p>There are one or more issues that require attention<\/p> <ul> <li data-ng-repeat="error in EditDiscountCtrl.errors"> {{::error.text}} <\/li> <\/ul> <\/div> <\/div> <form name=formEditDiscount data-ng-submit=EditDiscountCtrl.saveDiscount(formEditDiscount.$valid) novalidate> <div class=row> <div class="columns large-6"> <label><exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_L1>Discount Amount<\/exl-static-text><\/label> <exl-static-text id-code=WEB_MC_EDIT_DISCOUNT_P5><\/exl-static-text> <exl-discount-amount data-discount=EditDiscountCtrl.discount required><\/exl-discount-amount> <\/div> <div class="columns large-6"> <label><exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_L2>Discount Type<\/exl-static-text><\/label> <exl-static-text id-code=WEB_MC_EDIT_DISCOUNT_P6><\/exl-static-text> <exl-select-list data-gridcolumns=3 data-hide-filter=true data-ng-model=EditDiscountCtrl.discount.discountType data-selecteditem=EditDiscountCtrl.selectedDiscountType data-itemlist=EditDiscountCtrl.discountTypes><\/exl-select-list> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_P2><\/exl-static-text> <h3> <exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_L3>Discount Qualifiers<\/exl-static-text> <button class=icon-button data-ng-click=EditDiscountCtrl.editDiscountQualifiers($event)><span class="fa fa-fw fa-pencil"><\/span><\/button> <\/h3> <exl-qualifiers data-discount-id=EditDiscountCtrl.discount.marketingCodeDiscountID data-show-qualifier-types={{EditDiscountCtrl.getQualifierFilter()}} data-label="Discount Qualifiers"><\/exl-qualifiers> <\/div> <\/div> <hr> <div class=row data-ng-if=!EditDiscountCtrl.isRegistrationDiscount()> <div class=column> <exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_P3><\/exl-static-text> <h3> <exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_L4>Discount Showitems<\/exl-static-text> <button class=icon-button data-ng-click=EditDiscountCtrl.editDiscountTargets($event)><span class="fa fa-fw fa-pencil"><\/span><\/button> <\/h3> <div data-ng-class="{\'panel\':activeTargets.length}"> <ul class="small-block-grid-1 large-block-grid-4"> <li data-ng-repeat="target in activeTargets = (EditDiscountCtrl.discount.discountTargets | filter:{isActive:true})"> {{::target.discountTarget}} - {{::target.description}} <\/li> <\/ul> <\/div> <\/div> <\/div> <div class=row data-ng-if=EditDiscountCtrl.isRegistrationDiscount()> <div class=columns> <exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_P4><\/exl-static-text> <\/div> <\/div> <div class=row data-ng-if=EditDiscountCtrl.isRegistrationDiscount()> <div class=columns> <h3> <exl-static-text data-id-code=WEB_MC_EDIT_DISCOUNT_L5>Discount Regtypes<\/exl-static-text> <button class=icon-button data-ng-click="EditDiscountCtrl.editDiscountQualifiers($event, \'regtype\')"><span class="fa fa-fw fa-pencil"><\/span><\/button> <\/h3> <div class=panel> <exl-reg-type-qualifiers data-discount-id=EditDiscountCtrl.discount.marketingCodeDiscountID><\/exl-reg-type-qualifiers> <\/div> <\/div> <\/div> <hr> <div class=row> <div class="columns exl-padding-top"> <div class=row> <div class="columns large-6 medium-6"> <button class="secondary expand" data-ng-click=EditDiscountCtrl.done()>Cancel<\/button> <\/div> <div class="columns large-6 medium-6"> <input type=submit class="button success" data-ng-disabled=!EditDiscountCtrl.canSave value=Save> <\/div> <\/div> <\/div> <\/div> <\/form> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/EditDiscountTargets.html",'<div class=row> <div class=columns> <ul class=breadcrumbs> <li><a data-ui-sref=root.all>Marketing Codes<\/a><\/li> <li><a data-ui-sref=marketingCode.edit data-ng-bind=EditTargetsCtrl.stateParams.code><\/a><\/li> <li><a data-ui-sref=marketingCode.edit.discount-edit>Discount<\/a><\/li> <li class=current><a>Targets<\/a><\/li> <\/ul> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_EDIT_TARGETS_H1> <h2>Edit Targets<\/h2> <\/exl-static-text> <exl-static-text data-id-code=WEB_MC_EDIT_TARGETS_P1> <p>Select the show items that this discount will apply to.<\/p> <\/exl-static-text> <\/div> <\/div> <div class=row data-ng-show=EditTargetsCtrl.busy> <div class="columns text-center"> Loading <\/div> <\/div> <div class="row exl-fade-in-only" data-ng-hide=EditTargetsCtrl.busy> <div class=columns> <div> <exl-select-list data-ng-model=EditTargetsCtrl.selectedTargetsModel data-selecteditems=EditTargetsCtrl.selectedTargets data-itemlist=EditTargetsCtrl.discountTargetOptions><\/exl-select-list> <\/div> <div class=row> <div class="columns large-6 medium-6"> <button data-ng-click=EditTargetsCtrl.done() class="secondary expand">Cancel<\/button> <\/div> <div class="columns large-6 medium-6"> <button class="success expand" data-ng-disabled=!EditTargetsCtrl.canSave data-ng-click=EditTargetsCtrl.saveTargets()>Save<\/button> <\/div> <\/div> <\/div> <\/div> ');n.put("App/MarketingCode/Views/EditQualifiers.html",'<div data-ng-cloak> <div class=row> <div class=columns> <ul class=breadcrumbs> <li><a data-ui-sref=root.all>Marketing Codes<\/a><\/li> <li><a data-ui-sref=marketingCode.edit data-ng-bind=EditQualsCtrl.code><\/a><\/li> <li data-ng-if=EditQualsCtrl.isMarketingCodeMode() class=current><a>Qualifiers<\/a><\/li> <li data-ng-if=EditQualsCtrl.isDiscountMode()><a ui-sref="marketingCode.edit.discount-edit({ discountID: EditQualsCtrl.discountID })">Discount<\/a><\/li> <li data-ng-if=EditQualsCtrl.isDiscountMode() class=current><a>Discount Qualifiers<\/a><\/li> <\/ul> <\/div> <\/div> <exl-static-text data-id-code=WEB_MC_EDIT_QUAL_H1> <h2>Edit Qualifiers<\/h2> <\/exl-static-text> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_EDIT_QUAL_P1> <\/exl-static-text> <\/div> <\/div> <div class=row data-ng-show=EditQualsCtrl.busy> <div class="columns text-center"> <br> Loading <br><br> <\/div> <\/div> <div class="row exl-fade-in-only" data-ng-hide=EditQualsCtrl.busy> <div class=columns> <div class=row data-ng-if=EditQualsCtrl.isDiscountMode()> <div class=columns> <exl-discount-qualifier-errors data-discount-id=EditQualsCtrl.discountID><\/exl-discount-qualifier-errors> <\/div> <\/div> <div class=row> <div class=columns> <exl-edit-qualifiers data-selected-qualifier-options=EditQualsCtrl.selectedQualifierOptions data-qualifiers=EditQualsCtrl.qualifiers data-qualifier-type={{EditQualsCtrl.qualifierType}} data-marketing-code=EditQualsCtrl.marketingCode data-show-qualifier-types={{EditQualsCtrl.getQualifierTypesToShow()}}> <\/exl-edit-qualifiers> <\/div> <\/div> <hr> <div class=row> <div class=columns> <div class=row> <div class="columns large-6 medium-6"> <button class="secondary expand" data-ng-click=EditQualsCtrl.done()>Cancel<\/button> <\/div> <div class="columns large-6 medium-6"> <button class="success expand" data-ng-disabled=!EditQualsCtrl.canSave data-ng-click=EditQualsCtrl.saveQualifiersAndClose()>Save<\/button> <\/div> <\/div> <\/div> <\/div> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/EditQualifiersDirective.html",'<div class=row data-ng-repeat="qualType in qualifierTypes"> <div class=columns> <exl-qualifier-option-list data-ng-model=selectedQualifierOptions[qualType] data-label={{qualType}} data-itemlist=qualifierOptions[qualType] data-selecteditems=selectedQualifierOptions[qualType]><\/exl-qualifier-option-list> <\/div> <\/div>');n.put("App/MarketingCode/Views/MarketingCode.html",'<div class=row> <div class="columns medium-11"><\/div> <div class="columns medium-1"> <a ng-click=mcCtrl.logout()>Logout<\/a> <\/div> <\/div> <exl-static-text data-id-code=WEB_MC_DETAIL_H1> <h1>Marketing Code Detail<\/h1> <\/exl-static-text> <div ui-view> <div class=text-center data-ng-show=mcCtrl.busy>Loading<\/div> <div class="row exl-fade-in-only" data-ng-hide=mcCtrl.busy data-ng-cloak> <div class=columns> <ul class=breadcrumbs> <li><a data-ui-sref=root.all>Marketing Codes<\/a><\/li> <li class=current><a data-ng-bind="mcCtrl.marketingCode.code || \'NEW CODE\'"><\/a><\/li> <\/ul> <div data-ng-show=mcCtrl.errors.length> <alert class=alert> <p>There are one or more issues that require attention<\/p> <ul> <li data-ng-repeat="error in mcCtrl.errors"> {{error.text}} <\/li> <\/ul> <\/alert> <\/div> <div> <exl-static-text data-id-code=WEB_MC_DETAIL_P1><\/exl-static-text> <\/div> <form name=mcCtrl.formMarketingCode data-ng-submit=mcCtrl.save($event) novalidate> <div class=row> <div class="medium-4 columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L1>Code<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P9><\/exl-static-text> <input name=code type=text data-ng-model=mcCtrl.marketingCode.code data-ng-disabled=!mcCtrl.isNewMarketingCode placeholder=Code required data-ng-pattern=/^[a-z0-9]+$/i> <div data-ng-messages=mcCtrl.formMarketingCode.code.$error data-ng-if="mcCtrl.formMarketingCode.code.$touched || mcCtrl.formMarketingCode.$submitted"> <div data-ng-message=required class="alert label small">Please enter a code.<\/div> <div data-ng-message=pattern class="alert label small">Code must be alphanumeric only.<\/div> <\/div> <\/div> <div class="medium-4 columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L2>Code Type<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P10><\/exl-static-text> <div data-ng-switch=mcCtrl.isNewMarketingCode> <div data-ng-switch-when=true> <exl-select-list data-itemlist=mcCtrl.codeTypeList data-selecteditem=[] data-ng-model=mcCtrl.marketingCode.codeType data-hide-filter=true data-gridcolumns=3 data-is-required=true><\/exl-select-list> <\/div> <div data-ng-switch-default> <p data-ng-bind=mcCtrl.marketingCode.codeType><\/p> <\/div> <\/div> <\/div> <div class="medium-4 columns"> <label> &nbsp; <\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P18><\/exl-static-text> <exl-select-list name=rbIsActive data-ng-model=mcCtrl.marketingCode.isActive data-itemlist=mcCtrl.activeItemList data-selecteditem=mcCtrl.isMarketingCodeActive data-hide-filter=true data-is-required=true><\/exl-select-list> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P2><\/exl-static-text> <\/div> <\/div> <div class=row> <div class=columns> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L3>Description<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P11><\/exl-static-text> <textarea data-ng-model=mcCtrl.marketingCode.description rows=2 placeholder=Description><\/textarea> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P3><\/exl-static-text> <\/div> <\/div> <div class=row> <div class="medium-3 columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L4>Begin Date<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P12><\/exl-static-text> <exl-date-picker name=datePickerStart model=mcCtrl.beginDate counterpart=mcCtrl.marketingCode.endDate min=mcCtrl.minDate max=mcCtrl.maxDate is-required=false><\/exl-date-picker> <\/div> <div class="medium-3 columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L5>Begin Time<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P13><\/exl-static-text> <exl-time-picker name=timePickerStart model=mcCtrl.beginTime is-required=false><\/exl-time-picker> <\/div> <div class="medium-3 columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L6>End Date<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P14><\/exl-static-text> <exl-date-picker name=datePickerEnd model=mcCtrl.endDate counterpart=mcCtrl.marketingCode.beginDate min=mcCtrl.minDate max=mcCtrl.maxDate is-required=false><\/exl-date-picker> <\/div> <div class="medium-3 columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L7>End Time<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P15><\/exl-static-text> <exl-time-picker name=timePickerEnd model=mcCtrl.endTime is-required=false><\/exl-time-picker> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P4><\/exl-static-text> <\/div> <\/div> <div class=row data-ng-show="mcCtrl.marketingCode.codeType.toUpperCase() === \'DISCOUNT\'"> <div class="medium-3 end columns"> <label><exl-static-text data-id-code=WEB_MC_DETAIL_L8>Limit<\/exl-static-text><\/label> <exl-static-text data-id-code=WEB_MC_DETAIL_P16><\/exl-static-text> <input type=number name=limit data-ng-model=mcCtrl.marketingCode.limit min=0> <div data-ng-messages=mcCtrl.formMarketingCode.limit.$error data-ng-if="mcCtrl.formMarketingCode.limit.$touched || mcCtrl.formMarketingCode.$submitted"> <div data-ng-message=number class="alert label small">Please enter a number<\/div> <div data-ng-message=min class="alert label small">Please enter a positive number<\/div> <\/div> <\/div> <div class="medium-9 columns"> <div data-ng-if="mcCtrl.marketingCode.marketingCodeID && mcCtrl.marketingCode.code"> <exl-marketing-code-limit code=mcCtrl.marketingCode.code><\/exl-marketing-code-limit> <\/div> <\/div> <\/div> <hr> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P5><\/exl-static-text> <\/div> <\/div> <div data-ng-show="mcCtrl.marketingCode.codeType.toUpperCase() === \'DISCOUNT\'"> <div class=row> <div class=columns> <h2> <exl-static-text data-id-code=WEB_MC_DETAIL_L9>Discounts<\/exl-static-text> <button class="button icon-button" data-ng-click="mcCtrl.addNewDiscount($event, \'REGTYPE\')"> <span class="fa fa-fw fa-plus"><\/span>&nbsp;Registration <\/button> <button class="button icon-button" data-ng-click="mcCtrl.addNewDiscount($event, \'SHOWITEM\')"> <span class="fa fa-fw fa-plus"><\/span>&nbsp;Show Item <\/button> <\/h2> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P17><\/exl-static-text> <\/div> <\/div> <div class=row data-ng-repeat="discount in mcCtrl.marketingCode.marketingCodeDiscounts | discount"> <div class=columns style=margin-bottom:15px;> <exl-discount data-discount=discount><\/exl-discount> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P6><\/exl-static-text> <\/div> <\/div> <hr> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P7><\/exl-static-text> <\/div> <\/div> <div class=row> <div class=columns> <div class=row> <div class="columns large-6 medium-6"> <button class="secondary expand" ui-sref=root.all>Back<\/button> <\/div> <div class="columns large-6 medium-6"> <input type=submit class="button success" data-ng-disabled="mcCtrl.showSavingSpinner || !mcCtrl.canSave" value=Save> <\/div> <\/div> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_DETAIL_P8><\/exl-static-text> <\/div> <\/div> <\/form> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/MarketingCodeAll.html",'<div class=row> <div class="columns medium-11"><\/div> <div class="columns medium-1"> <a ng-click=mcCtrl.logout()>Logout<\/a> <\/div> <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_HEADINGALL_H1> <h1>Marketing Code Dashboard<\/h1> <\/exl-static-text> <exl-static-text data-id-code=WEB_MC_HEADINGALL_P1> <p>Welcome to the Experient Marketing Code Dashboard. Select a code below to edit it or click "Create New Code" to create a new marketing code.<\/p> <\/exl-static-text> <\/div> <\/div> <div class=row> <div class="columns medium-4"> <button type=button class="right expand" data-ng-click=mcCtrl.createNewMarketingCode()> Create New Code <\/button> <\/div> <div class="columns medium-4"> <button type=button class="right expand" data-ng-click=mcCtrl.getProofingReport() data-ng-disabled=mcCtrl.isDownloadingProofingReport> <i class=fa data-ng-class="mcCtrl.isDownloadingProofingReport ? \'fa-spinner fa-pulse\' : \'fa-download\'"><\/i> Proofing Report <\/button> <\/div> <div class="columns medium-4"> <button type=button class="right expand" data-ng-click=mcCtrl.pushMarketingCodes() data-ng-show=mcCtrl.canPush> Push Marketing Codes <\/button> <\/div> <\/div> <div class="exl-search-box exl-bot-margin exl-top-margin"> <div class=fa-wrapper><i class="fa fa-search"><\/i><\/div> <div class=row> <div class="small-12 columns"> <input type=search ng-model=mcCtrl.codeSearch placeholder="Search for Code" name=codeFilter> <span data-tooltip=Clear class=clear-search> <button type=button class="empty tight round" data-ng-disabled=!mcCtrl.codeSearch data-ng-click="mcCtrl.codeSearch= \'\'"> <i class="fa fa-remove"><\/i> <\/button> <\/span> <\/div> <\/div> <\/div> <exl-static-text data-id-code=WEB_MC_HEADINGALL_P2> <\/exl-static-text> <div class="show-for-small panel"> <label>Code Type Legend<\/label> <ul class="text-center small-block-grid-3"> <li data-ng-repeat="(key,value) in mcCtrl.codeTypeIcons"> {{key}}&nbsp;<span class="fa fa-lg {{value}}"><\/span> <\/li> <\/ul> <\/div> <div class=exl-bot-margin> <div class="background-secondary-color-lighter exl-gutter-wrap-lr"> <div class=row> <div class="small-8 medium-10 columns"> <span> <small><span class=text-alert-color ng-bind=mcCtrl.filteredMarketingCodes.length><\/span> of <span class=text-alert-color ng-bind=mcCtrl.marketingCodes.length><\/span> codes<\/small> <\/span> <\/div> <div class="small-4 medium-2 columns" data-ng-class="{\'highlight\' : mcCtrl.isFiltered}"> <button class="button small transparent" ng-click=mcCtrl.showFilters()> <i class="fa fa-filter"><\/i> Filter <\/button> <\/div> <\/div> <\/div> <div class="exl-gutter-wrap-lr highlight"> <div class=row> <div class=columns> <exl-filter-option title="Search Code" model=mcCtrl.codeSearch ng-show=mcCtrl.codeSearch init> <\/exl-filter-option> <span data-ng-repeat="filter in mcCtrl.filters"> <exl-filter-option data-ng-repeat="item in filter.selecteditems" title={{filter.displayName}} model=item.text click="mcCtrl.removeFilter(item, filter)"> <\/exl-filter-option> <\/span> <\/div> <\/div> <\/div> <\/div> <div class=row data-ng-if=mcCtrl.filteredMarketingCodes.length> <div class="columns medium-4 right"> <div class=right> <exl-items-per-page data-items-per-page=mcCtrl.itemsPerPage data-items-per-step=mcCtrl.itemsPerPageStep data-ng-if="mcCtrl.filteredMarketingCodes.length > mcCtrl.itemsPerPageStep"><\/exl-items-per-page> <\/div> <\/div> <div class="columns medium-8 left"> <pagination total-items=mcCtrl.filteredMarketingCodes.length page=mcCtrl.currentPage items-per-page=mcCtrl.itemsPerPage max-size=mcCtrl.maxPagerSize class=pagination-sm previous-text="&lsaquo; Previous" next-text="Next &rsaquo;" first-text="&laquo; First" boundry-links=true last-text="Last &raquo;" rotate=false num-pages=mcCtrl.numPages data-ng-if=mcCtrl.hasPages> <\/pagination> <\/div> <\/div> <div class=row data-ng-if=mcCtrl.filteredMarketingCodes.length> <div class=columns> <table class="table utility stretch"> <tr> <th> <div class=row> <div class="columns small-11 end"> <div class=row> <div class="columns large-2 medium-3 small-2"> <a data-ng-click=mcCtrl.sortSelect(mcCtrl.sortHeaders.codeType)> <i class=fa data-ng-class="mcCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="mcCtrl.sortExpression === mcCtrl.sortHeaders.codeType"><\/i> <exl-static-text id-code=WEB_MARKETINGCODE_SORT_CODETYPE>Code Type<\/exl-static-text> <\/a> <\/div> <div class="columns columns large-6 medium-5 small-6"> <a data-ng-click=mcCtrl.sortSelect(mcCtrl.sortHeaders.code)> <i class=fa data-ng-class="mcCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="mcCtrl.sortExpression === mcCtrl.sortHeaders.code"><\/i> <exl-static-text id-code=WEB_MARKETINGCODE_SORT_CODE>Code<\/exl-static-text> <\/a> <\/div> <div class="columns small-3"> <a href=javascript:void(0) class=hide-for-touch>Discount Summary<\/a> <\/div> <div class="columns small-1"> <a data-ng-click=mcCtrl.sortSelect(mcCtrl.sortHeaders.active)> <i class=fa data-ng-class="mcCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="mcCtrl.sortExpression === mcCtrl.sortHeaders.active"><\/i> <exl-static-text id-code=WEB_MARKETINGCODE_SORT_ACTIVE>Active<\/exl-static-text> <\/a> <\/div> <\/div> <\/div> <\/div> <\/th> <\/tr> <\/table> <\/div> <\/div> <div data-ng-show="mcCtrl.pagedMarketingCodes.length > 0"> <div class=row ng-repeat="mc in mcCtrl.pagedMarketingCodes"> <div class=columns> <button data-ng-class="mc.isActive ? \'background-success-color-lightest\' : \'background-secondary-color-lighter\'" class="expand exl-padding-small" data-ng-click=mcCtrl.editMarketingCode(mc.code)> <div class=row> <div class="small-11 columns text-left"> <div class=row> <div class="columns large-2 medium-3 small-2"> <i class="fa fa-fw left" data-ng-class=mcCtrl.getIconClass(mc.codeType)><\/i><small class=hide-for-small-down data-ng-bind=mc.codeType><\/small> <\/div> <div class="columns large-6 medium-5 small-6"> <strong>{{mc.code}}<\/strong> <\/div> <div class="columns small-3"> <exl-discount-summary-popup data-marketing-code=mc><\/exl-discount-summary-popup> <\/div> <div class="columns small-1"> <div data-ng-show=!mc.isActive class=text-center data-tooltip-html-unsafe="{{mc.isActive ? \'<span class=\\\'fa fa-check\\\'><\/span>&nbsp;Active\' : \'<span class=\\\'fa fa-times\\\'><\/span>&nbsp;Inactive\'}}" data-tooltip-placement=bottom> <span class=fa data-ng-class="mc.isActive ? \'fa-check text-success-color-dark\' : \'fa-times text-alert-color-dark\'"><\/span> <\/div> <\/div> <\/div> <div class=row> <div class="columns large-2 medium-3 small-2"><\/div> <div class="columns large-10 medium-9 small-10"> <small>{{mc.description}}<\/small> <\/div> <\/div> <\/div> <div class="small-1 columns text-right"> <span class="fa fa-chevron-right"><\/span> <\/div> <\/div> <\/button> <\/div> <\/div> <\/div> <div data-ng-show="mcCtrl.pagedMarketingCodes.length === 0"> <p> <strong>No Marketing Codes found for given criteria<\/strong> <\/p> <\/div> <div class=row data-ng-if=mcCtrl.filteredMarketingCodes.length> <div class="columns medium-8"> <pagination total-items=mcCtrl.filteredMarketingCodes.length page=mcCtrl.currentPage items-per-page=mcCtrl.itemsPerPage max-size=mcCtrl.maxPagerSize class=pagination-sm previous-text="&lsaquo; Previous" next-text="Next &rsaquo;" first-text="&laquo; First" last-text="Last &raquo;" boundary-links=true rotate=false num-pages=mcCtrl.numPages data-ng-if=mcCtrl.hasPages> <\/pagination> <\/div> <div class="columns medium-4"> <div class=right> <exl-items-per-page data-items-per-page=mcCtrl.itemsPerPage data-items-per-step=mcCtrl.itemsPerPageStep data-ng-if="mcCtrl.filteredMarketingCodes.length > mcCtrl.itemsPerPageStep"><\/exl-items-per-page> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/MarketingCodeFilters.html",'<accordion close-others=false> <accordion-group ng-repeat="filter in modalCtrl.filters"> <accordion-heading> {{filter.displayName}} <span class="label success round right" ng-if=filter.selecteditems.length>{{filter.selecteditems.length}}<\/span> <\/accordion-heading> <exl-select-list itemlist=filter.filterItems selecteditems=filter.selecteditems gridcolumns={{filter.displayColumnCount}} hide-filter=filter.hideSearchFilter> <\/exl-select-list> <\/accordion-group> <\/accordion> ');n.put("App/MarketingCode/Views/MarketingCodeLimitDirective.html",'<div class=exl-top-padding-small data-ng-if="used || limit"> <label>Used: {{used}} <span data-ng-if=limit>/ Limit: {{limit}} / {{percentUsed}}% <span data-ng-show="percentUsed >= 75" class="text-warning-color fa fa-warning"><\/span><\/span><\/label> <progressbar max=limit value=pbUsed type={{type}}>  <\/progressbar> <\/div>');n.put("App/MarketingCode/Views/MarketingCodeLogin.html",'<div class=row> <div class="columns medium-11"><\/div>  <\/div> <div class=row> <div class=columns> <exl-static-text data-id-code=WEB_MC_HEADINGLOGIN_H1> <h1>Marketing Code Login<\/h1> <\/exl-static-text> <exl-static-text data-id-code=WEB_MC_HEADINGLOGIN_P1> <p>Welcome to the Experient Marketing Code Dashboard. Please login below.<\/p> <\/exl-static-text> <\/div> <\/div> <div class=row> <div class=columns> <form name=mclCtrl.formLogin novalidate data-ng-submit=mclCtrl.login()>  <div class=row ng-repeat="item in mclCtrl.items"> <div class="medium-12 columns"> <exl-field-detail item=item profile=mclCtrl.profile><\/exl-field-detail> <\/div> <\/div> <exl-password profile=mclCtrl.profile min-length=7><\/exl-password> <div class=row> <div class="medium-12 columns"> <p class="alert-box warning ng-hide" ng-show=mclCtrl.showWait>Please wait while we sign you in...<\/p> <exl-error-summary errors=mclCtrl.errorMessages><\/exl-error-summary> <\/div> <\/div> <div class=row> <div class="medium-12 columns"> <exl-static-text id-code=MARKETINGCODE_LOGIN_P2><\/exl-static-text> <\/div> <\/div> <button type=button class ng-click=mclCtrl.goToFlowSelection()> Back <\/button> <button type=submit>Login<\/button> <\/form> <\/div> <\/div> ');n.put("App/MarketingCode/Views/QualifierDirective.html",'<div class=row data-ng-show=QualCtrl.loading> <div class="columns text-center"> <span class="fa fa-spinner fa-spin"> <\/span> <p>Loading<\/p> <\/div> <\/div> <div class="row exl-fade-in-only" data-ng-hide=QualCtrl.loading> <div class=columns> <div class=row data-ng-if=QualCtrl.showDiscountQualifierErrors> <div class=columns> <exl-discount-qualifier-errors data-discount-id=QualCtrl.discountId><\/exl-discount-qualifier-errors> <\/div> <\/div> <div class="row panel" data-ng-repeat="qualType in QualCtrl.qualifierTypes"> <div class=columns> <h3>{{::qualType}}<\/h3> <ul class="small-block-grid-2 large-block-grid-4"> <li data-ng-repeat="qualifier in QualCtrl.qualifiersByType[qualType]"> {{::qualifier.qualCode}} - {{::qualifier.description}} <\/li> <\/ul> <\/div> <\/div> <\/div> <\/div>');n.put("App/MarketingCode/Views/QualifierOptionListDirective.html",' <div class="row panel" data-ng-show=validQualifiers.length> <div class=columns> <div class=row> <div class=columns> <h3 ng-bind=QualifierOptionList.label><\/h3> <a data-ng-click=QualifierOptionList.selectAll() class="button small">Select All<\/a> <a data-ng-click=QualifierOptionList.deselectAll() class="button small">Deselect All<\/a> <\/div> <\/div>   <ul class="exl-top-margin medium-block-grid-{{::QualifierOptionList.gridcolumns}} small-block-grid-1 select-list"> <li ng-repeat="item in validQualifiers = (QualifierOptionList.itemlist | filter:QualifierOptionList.isValidOrSelected) | filter:QualifierOptionList.listfilter as filterresults track by item.value" ng-click=QualifierOptionList.clickitem(item) tabindex=0 value={{::item.value}}> <a> <i class=fa data-ng-class="item.selected ? \'fa-check-square-o\' : \'fa-square-o\'"><\/i> {{::item.text}} <span class="fa fa-exclamation-circle text-alert-color fa-lg" data-ng-show="!item.valid && QualifierOptionList.isSelected(item)" tooltip="This qualifier is invalid"><\/span> <\/a> <\/li> <\/ul> <\/div> <\/div> ');n.put("App/MarketingCode/Views/RegTypeQualifierDirective.html",'<div class=row data-ng-show=QualCtrl.loading> <div class="columns text-center"> <span class="fa fa-spinner fa-spin"> <\/span> <p>Loading<\/p> <\/div> <\/div> <div class="row exl-fade-in-only" data-ng-hide=QualCtrl.loading> <div class=columns> <div class=row data-ng-repeat="qualType in QualCtrl.qualifierTypes" data-ng-if="QualCtrl.qualifiers.length > 0"> <div class=columns> <ul class="small-block-grid-2 large-block-grid-4"> <li data-ng-repeat="qualifier in QualCtrl.qualifiersByType[qualType]"> {{::qualifier.qualCode}} - {{::qualifier.description}} <\/li> <\/ul> <\/div> <\/div> <div data-ng-if="QualCtrl.qualifiers.length === 0"> <span>All Registration Types<\/span> <\/div> <\/div> <\/div>');n.put("App/Member/Views/MemberSearchResultsDirective.html",'<div> <div ng-if="searchResultsCtrl.recordCount || searchResultsCtrl.recordCount == 0" class="background-secondary-color-lighter exl-gutter-wrap-lr"> <small> <span ng-bind=searchResultsCtrl.recordCount><\/span>&nbsp;<exl-static-text id-code=MEMBER_SEARCH_NUM_RECORDS ng-show="searchResultsCtrl.recordCount || searchResultsCtrl.recordCount == 0">Records Found<\/exl-static-text> <\/small> <\/div> <button class="expand exl-padding-small" ng-repeat="item in searchResultsCtrl.searchResults" ng-click="searchResultsCtrl.select({member: item})"> <div class=row> <div class="small-10 columns">  <div class=row ng-if=!searchResultsCtrl.layout> <div class="medium-6 columns text-left"> <strong>{{item.firstName + " " + item.lastName}}<\/strong> <div>{{item.city + ", " + item.stateCode + " " + item.countryCode }}<\/div> <\/div> <div class="medium-6 columns text-left"> <div>{{item.company }}<\/div> <div>{{item.company2}}<\/div> <\/div> <\/div> <div class=row ng-if=searchResultsCtrl.layout> <div class="medium-6 columns text-left"> <div ng-repeat="config in ::searchResultsCtrl.layout | filter: {columnNumber: 1}"> <strong ng-if=config.isEmphasized>{{$eval(config.expression)}}<\/strong> <normal ng-if=!config.isEmphasized>{{$eval(config.expression)}}<\/normal> <\/div> <\/div> <div class="medium-6 columns text-left"> <div ng-repeat="config in ::searchResultsCtrl.layout | filter: {columnNumber: 2}"> <strong ng-if=config.isEmphasized>{{$eval(config.expression)}}<\/strong> <normal ng-if=!config.isEmphasized>{{$eval(config.expression)}}<\/normal> <\/div> <\/div> <\/div> <\/div> <div class="small-2 columns text-right"> <span class="fa fa-chevron-right"><\/span> <\/div> <button type=button class="small expand exl-top-margin-small exl-bot-margin-small" ng-if="searchResultsCtrl.pageCount > searchResultsCtrl.currentPage" ng-click=searchResultsCtrl.loadMore()> <i class="fa fa-plus"><\/i> Load More <\/button> <\/div> <\/button> <\/div>');n.put("App/Member/Views/MemberTask.html",' <accordion> <accordion-group is-open=taskCtrl.isOpen> <accordion-heading><exl-static-text allow-html=false id-code=WEB_MEMBER_P1>Membership Search<\/exl-static-text><\/accordion-heading> <div class=row> <div class=columns ng-hide="taskCtrl.isSmall && taskCtrl.searchResults"> <exl-static-text id-code=WEB_MEMBER_P2><p>Please enter your information below<\/p><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <div class=exl-bot-margin-small ng-repeat="group in taskCtrl.layoutGroups"> <form name=taskCtrl.formMember{{group.groupOrder}} novalidate method=post action=javascript:void(0)> <ul class="medium-block-grid-4 small-block-grid-1"> <li ng-repeat="item in group.layout"> <div ng-switch=item.displayTypeCode> <div ng-switch-when=STATIC_TEXT> <exl-static-text id-code={{item.idCode}} additional-label-text={{item.labelText}} ng-bind-html=item.defaultText><\/exl-static-text> <\/div> <exl-field-detail ng-switch-default item=item profile="taskCtrl[\'profile\'+group.groupOrder]"><\/exl-field-detail> <\/div> <\/li> <\/ul> <p class="exl-top-margin text-center"> <button type=button class=secondary ng-click=taskCtrl.clear(group.groupOrder)><exl-static-text allow-html=false id-code="{{\'MEMBER_BUTTON_CLEAR_\' + group.groupOrder}}">Clear<\/exl-static-text><\/button> <button type=button class=dark ng-click=taskCtrl.search(group.groupOrder)><exl-static-text allow-html=false id-code="{{\'MEMBER_BUTTON_SEARCH_\' + group.groupOrder}}">Search<\/exl-static-text><\/button> <\/p>  <\/form> <\/div> <\/div> <\/div> <\/accordion-group><\/accordion> <exl-filter ng-repeat="group in taskCtrl.layoutGroups" search-terms="taskCtrl[\'searchTerms\' + group.groupOrder]" search-terms-click=taskCtrl.openAccordion() is-disabled=true hide-filter-button=true ng-show="taskCtrl.searchGroup == group.groupOrder"> <\/exl-filter> <div class="panel exl-no-borders exl-top-margin" ng-if=!taskCtrl.disableNonMemberAccess> <exl-static-text id-code=MEMBER_SEARCH_NOT_FOUND><h3>Can\'t Find Your Record?<\/h3><\/exl-static-text> <p class=text-center> <button type=button class=dark ng-click=taskCtrl.continue()> <exl-static-text allow-html=false id-code=BUTTON_CONTINUE_AS_NONMEMBER>Continue as Non-Member<\/exl-static-text> <\/button> <\/p> <\/div> <exl-member-search-results select=taskCtrl.select(member) load-more=taskCtrl.loadMore() search-results=taskCtrl.searchResults record-count=taskCtrl.recordCount current-page=taskCtrl.currentPage page-count=taskCtrl.pageCount> <\/exl-member-search-results> ');n.put("App/Payment/Views/PaymentTask.html",'<exl-loading-indicator data-ng-if=!taskCtrl.isLoaded><\/exl-loading-indicator> <div class=ng-hide ng-show="taskCtrl.payList.balanceDue > 0 || taskCtrl.payList.isccg"> <exl-static-text id-code=WEB_PAYMENT_P1><p>Please select the items you wish to pay for at this time<\/p><\/exl-static-text> <table class="table financial stretch"> <thead> <tr> <td colspan=3><h3>Charges<\/h3><\/td> <\/tr> <\/thead> <tbody class=payment-items> <tr ng-repeat="item in taskCtrl.payList.charges" ng-click=taskCtrl.select(item)> <td> <input type=checkbox ng-model=item.isSelected ng-click=taskCtrl.checkSelect($event)> <\/td> <td> <div class=row> <div class="medium-6 columns"> <strong>{{item.firstName}} {{item.lastName}}<\/strong> <\/div> <div class="medium-6 columns"> <span ng-if="item.type === \'H\'"> {{item.name}}<br> <em> <exl-room-nights-display reservation=item><\/exl-room-nights-display> <br> {{item.categoryName}} <\/em> <\/span> <span ng-show="item.type === \'REG\'">Registration, {{item.regDescription}}<\/span> <i class="fa fa-exclamation-circle right" data-ng-show="item.type === \'REG\' && item.hasCheckPend" data-tooltip-html-unsafe={{taskCtrl.webCheckPendText}}> <\/i> <\/div> <\/div> <\/td> <td class="highlight text-right">{{item.balanceDue | currency}}<\/td> <\/tr> <tr ng-show=taskCtrl.payList.hasRoomDeposit> <td class=background-info-color-light><i class="fa fa-lg fa-comment-o fa-flip-horizontal"><\/i><\/td> <td class=background-info-color-light> <em> <exl-static-text allow-html=false id-code=WEB_ATT_ROOM_DEPOST_MSG> Room deposits will be posted by the hotel as a credit to the room folio. Verify receipt of this credit when you check in. <\/exl-static-text> <\/em> <\/td> <td class=background-info-color-light><\/td> <\/tr> <tr ng-show=taskCtrl.payList.isccg> <td colspan=3> <h3>Room(s) Requiring <a tooltip="The provided credit card will be used to guarantee your hotel reservation(s)" tooltip-trigger=click>Credit Card Guarantee<\/a> (CCG)<\/h3> <\/td> <\/tr> <tr ng-repeat="item in taskCtrl.payList.rooms" ng-click=taskCtrl.select(item)> <td> <input type=checkbox ng-model=item.isSelected ng-click=taskCtrl.checkSelect($event)> <\/td> <td> <div class=row> <div class="medium-6 columns"> <strong>{{item.firstName}} {{item.lastName}}<\/strong> <\/div> <div class="medium-6 columns"> <span ng-if="item.type === \'H\'"> {{item.name}}<br> <em> <ng-pluralize count=item.numberOfNights when="{\'1\': \'single night \' , \'other\': \'{} nights \'}"><\/ng-pluralize> (<time datetime="item.checkIn | date:\'yyyy-MM-dd\'" style="white-space: nowrap;">{{item.checkIn | date: \'mediumDate\'}}<\/time> &ndash; <time datetime="item.checkOut | date:\'yyyy-MM-dd\'" style="white-space: nowrap;">{{item.checkOut | date: \'mediumDate\'}}<\/time>) <i class="fa fa-warning text-warning-color" title="Waitlisted (click for more details)" data-ng-if=item.isWaitlisted data-dropdown-toggle=#ddWaitlist_reservation_{{item.reservationId}}><\/i> <div id=ddWaitlist_reservation_{{item.reservationId}} class="f-dropdown medium content" data-ng-if=item.isWaitlisted> <exl-facility-waitlist-dates reservation-id=item.reservationId check-in-date=item.checkIn check-out-date=item.checkOut><\/exl-facility-waitlist-dates> <\/div> <br>{{item.categoryName}} <\/em> <\/span> <span ng-show="item.type === \'REG\'">Registration, {{item.regDescription}} <\/span> <i class="fa fa-exclamation-circle right" data-ng-show="item.type === \'REG\' && item.hasCheckPend" data-tooltip-html-unsafe={{taskCtrl.webCheckPendText}}> <\/i> <\/div> <\/div> <\/td> <td class="highlight text-right">CCG<\/td> <\/tr> <tfoot ng-show="taskCtrl.payList.balanceDue > 0 || taskCtrl.payList.isccg"> <tr class="xl-no-borders xl-thick-top-border"> <td colspan=2> <h2 class=text-right ng-show="!(taskCtrl.selectedCCG && taskCtrl.selectedAmount === 0)">Selected Item(s)<\/h2> <h2 class=text-right ng-show="taskCtrl.selectedCCG && taskCtrl.selectedAmount === 0">Selected Room(s)<\/h2> <\/td> <td class=background-secondary-color-light> <h1 class="text-alert-color text-right">{{taskCtrl.selectedAmount | currency}}<\/h1> <h1 class=text-right ng-show=taskCtrl.selectedCCG><a tooltip="The provided credit card will be used to guarantee your hotel reservation(s)" tooltip-trigger=click>CCG for Room(s)<\/a><\/h1> <\/td> <\/tr> <\/tfoot> <\/tbody><\/table> <exl-static-text id-code=WEB_PAYMENT_PAY_HEADER><h2>Payment<\/h2><\/exl-static-text> <exl-payment change-payment-method="taskCtrl.changePaymentMethod(paymentMethod, surplus)" change-allow-payment=taskCtrl.changeAllowPayment(checked) selected-amount=taskCtrl.selectedAmount multiple-payment-methods=true><\/exl-payment> <exl-wizard-nav hide-button-back=taskCtrl.hideButtonBack click-button-next=taskCtrl.next() label-button-next=taskCtrl.nextLabel disable-button-next=taskCtrl.disableNext always-enable-button-next=true><\/exl-wizard-nav> <\/div> ');n.put("App/Personnel/Views/CompletedPersonnelTask.html",'<div class=row> <div class="large-12 medium-12 columns"> <exl-static-text id-code=WEB_PERSONNEL_COMPLETED_TASK_TEXT_TOP><\/exl-static-text> <\/div> <\/div> <ul class="button-group exl-margin-small" data-ng-if="::taskCtrl.regOptionData.isRegistrationEnabled && taskCtrl.regOptionData.isHousingEnabled">  <li> <button type=button class=small ng-model=taskCtrl.filter.completedType btn-radio=::taskCtrl.filterCompletedTypes.RegOnly> <exl-static-text id-code=WEB_PERSONNEL_COMPLETED_FILTER_REG_ONLY>Completed<br>Registration Only<\/exl-static-text> <\/button> <\/li> <li> <button type=button class=small ng-model=taskCtrl.filter.completedType btn-radio=::taskCtrl.filterCompletedTypes.ResOnly> <exl-static-text id-code=WEB_PERSONNEL_COMPLETED_FILTER_RES_ONLY>Completed<br>Reservation Only<\/exl-static-text> <\/button> <\/li> <li> <button type=button class=small ng-model=taskCtrl.filter.completedType btn-radio=::taskCtrl.filterCompletedTypes.RegAndRes> <exl-static-text id-code=WEB_PERSONNEL_COMPLETED_FILTER_REG_AND_RES>Completed<br>Registration AND Reservation<\/exl-static-text> <\/button> <\/li> <\/ul> <accordion close-others=false> <accordion-group> <accordion-heading> <exl-static-text id-code=WEB_PERSONNEL_ACCORDION_FILTER_HEADER>Filter<\/exl-static-text> <\/accordion-heading> <div class=content> <div class=row> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_REGID> {{::taskCtrl.filter.registrantId.title}} <\/exl-static-text> <input name=filter.registrantId type=text ng-model=taskCtrl.filter.registrantId.value> <\/div> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_FIRSTNAME> {{::taskCtrl.filter.firstName.title}} <\/exl-static-text> <input name=filter.firstName type=text ng-model=taskCtrl.filter.firstName.value> <\/div> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_LASTNAME> {{::taskCtrl.filter.lastName.title}} <\/exl-static-text> <input name=filter.lastName type=text ng-model=taskCtrl.filter.lastName.value> <\/div> <\/div> <div class=row> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_EMAIL> {{::taskCtrl.filter.email.title}} <\/exl-static-text> <input name=filter.email type=text ng-model=taskCtrl.filter.email.value> <\/div> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_COMPANY> {{::taskCtrl.filter.company.title}} <\/exl-static-text> <input name=filter.company type=text ng-model=taskCtrl.filter.company.value> <\/div> <div class="medium-4 columns"> <\/div> <\/div> <div class=row data-ng-if=::taskCtrl.regOptionData.isRegistrationEnabled> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_REGTYPE> {{::taskCtrl.filter.regType.title}} <\/exl-static-text> <exl-select-list-modal title="Select a Registration Type" ng-model=taskCtrl.filter.regType.value name=filter.regType itemlist=::taskCtrl.filterRegTypes selecteditem=taskCtrl.selectedFilterRegType hide-filter=true> <\/exl-select-list-modal> <\/div> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_NO_REG> {{::taskCtrl.filter.noReg.title}} <\/exl-static-text> <button type=button class="empty small" data-ng-model=taskCtrl.filter.noReg.value btn-checkbox btn-checkbox-true=1 btn-checkbox-false data-ng-disabled=taskCtrl.filter.regType.value> <i class="fa fa-fw fa-lg" data-ng-class="taskCtrl.filter.noReg.value == \'1\' ? \'fa-check-square-o\' : \'fa-square-o\'" data-tooltip="{{taskCtrl.filter.regType.value ? \'Disabled\' : \'\'}}"> <\/i> <\/button> <\/div> <div class="medium-4 columns"> <\/div> <\/div> <div class=row data-ng-if=::taskCtrl.regOptionData.isHousingEnabled> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_HOTEL> {{::taskCtrl.filter.hotel.title}} <\/exl-static-text> <exl-select-list-modal title="Select a Hotel" ng-model=taskCtrl.filter.hotel.value name=filter.hotel itemlist=::taskCtrl.filterHotelItemList selecteditem=taskCtrl.selectedFilterHotelItem hide-filter=true> <\/exl-select-list-modal> <\/div> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_NO_RES> {{::taskCtrl.filter.noRes.title}} <\/exl-static-text> <button type=button class="empty small" data-ng-model=taskCtrl.filter.noRes.value btn-checkbox btn-checkbox-true=1 btn-checkbox-false data-ng-disabled=taskCtrl.filter.hotel.value> <i class="fa fa-fw fa-lg" data-ng-class="taskCtrl.filter.noRes.value == \'1\' ? \'fa-check-square-o\' : \'fa-square-o\'" data-tooltip="{{taskCtrl.filter.hotel.value ? \'Disabled\' : \'\'}}"> <\/i> <\/button> <\/div> <div class="medium-4 columns"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_WAITLIST> {{::taskCtrl.filter.waitlist.title}} <\/exl-static-text> <button type=button class="empty small" data-ng-model=taskCtrl.filter.waitlist.value btn-checkbox btn-checkbox-true=1 btn-checkbox-false data-ng-disabled=taskCtrl.filter.noRes.value> <i class="fa fa-fw fa-lg" data-ng-class="taskCtrl.filter.waitlist.value == \'1\' ? \'fa-check-square-o\' : \'fa-square-o\'" data-tooltip="{{taskCtrl.filter.noRes.value ? \'Disabled\' : \'\'}}"> <\/i> <\/button> <\/div> <\/div> <div class=row> <hr> <div class="medium-12 columns"> <button type=button data-ng-click=taskCtrl.clearFilters() data-ng-disabled=taskCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_BUTTON_CLEAR_FILTERS>Clear all filters<\/exl-static-text> <\/button> <\/div> <\/div> <\/div> <\/accordion-group> <\/accordion> <span class=exl-tags data-ng-repeat="filterField in taskCtrl.selectedFilterFields"> <button type=button class=exl-tag data-ng-click=taskCtrl.removeFilterField(filterField)> {{::filterField.title}}: {{filterField.value}} <\/button> <\/span> <exl-personnel data=::taskCtrl.personnelData edit-person-data=::taskCtrl.editPersonData filter=taskCtrl.filter refresh=taskCtrl.personnelTaskEventHandler><\/exl-personnel> <h2 class=text-center data-ng-hide=::taskCtrl.isLoaded> <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Loading, please wait... <\/h2> <exl-wizard-nav hide-button-back=true hide-button-next=true><\/exl-wizard-nav> ');n.put("App/Personnel/Views/HousingSummary.html","<div id={{::housingSummaryCtrl.dropdownId}} class=\"f-dropdown f-dropdown-bump-down small content\"> <h3>{{::housingSummaryCtrl.data.hasReservation ? 'Reservation Summary' : 'No Reservations'}}<\/h3> <div data-ng-if=::!housingSummaryCtrl.data.hasReservation> <div data-ng-if=::!housingSummaryCtrl.viewOnly> <button class=\"transparent small tight\" data-ng-click=housingSummaryCtrl.editNoHotel()> {{::housingSummaryCtrl.data.hasNoHotelTypeSet ? housingSummaryCtrl.data.noHotelTypeDesc : 'Add No Hotel Reason'}} <\/button> <hr> <\/div> <div data-ng-if=::housingSummaryCtrl.viewOnly> {{::housingSummaryCtrl.data.hasNoHotelTypeSet ? housingSummaryCtrl.data.noHotelTypeDesc : ''}} <\/div> <\/div> <table class=table data-ng-if=::housingSummaryCtrl.data.hasReservation data-ng-repeat=\"reservation in ::housingSummaryCtrl.data.reservations\"> <thead> <tr> <th> <button class=\"transparent small tight\" data-ng-disabled=::housingSummaryCtrl.viewOnly data-ng-click=housingSummaryCtrl.editReservation(reservation)> {{::reservation.hotelName}} {{::reservation.categoryName ? ' (' + reservation.categoryName + ')' : ''}} <\/button> <\/th> <th> <button class=empty data-ng-click=housingSummaryCtrl.cancelReservation(reservation) data-ng-if=::!housingSummaryCtrl.viewOnly> <i class=\"fa fa-remove text-alert-color\" data-tooltip=\"Cancel Reservation\"><span class=exl-screen-reader-text>Cancel Reservation<\/span><\/i> <\/button> <\/th> <\/tr> <tr data-ng-if=\"::reservation.reservationStatusTypeCode == 'INP'\"> <th colspan=2> <span> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_INP_RES>Incomplete Reservation <\/exl-static-text> <i class=\"fa fa-warning text-warning-color\" tooltip=\"Reservation is not completed\"><\/i> <\/span> <\/th> <\/tr> <\/thead> <tbody> <tr> <td colspan=2> <table> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_ARRIVALDATE>Arrival / Departure:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.arrivalDate | date : 'EEE, MMM d yyyy'}} - {{::reservation.departureDate | date : 'EEE, MMM d yyyy'}} <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_RATE>Min. Rate/Night:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.minNightlyRate | currency}} <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_ROOM_FEE>Room Fee:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.roomTotal | currency}} <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_CITY_TAX>City Tax:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.totalCityTax | currency}} <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_OCCUPANCY_TAX>Occupancy Tax:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.totalOccupancyFee | currency}} <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_RESORT_FEE>Resort Fee:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.totalResortFee | currency}} <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_ROOM_TOTAL>Room Total:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.totalForStay | currency}} <\/td> <\/tr> <tr data-ng-hide=\"::reservation.depositType == 'NONE'\"> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_PAYMENT>Payment:<\/exl-static-text> <\/td> <td class=text-left> <span data-ng-switch=::reservation.depositType> <span data-ng-switch-when=CCG> <span data-ng-class=\"::reservation.isccgPaid ? 'text-success-color' : 'text-alert-color'\"> {{::reservation.isccgPaid ? 'Credit Card Guarantee Received' : 'Credit Card Guarantee Required'}} <\/span> <\/span> <span data-ng-switch-when=DUE class=text-alert-color> {{::reservation.depositAmt | currency}} Due <\/span> <span data-ng-switch-when=PAID class=text-success-color> {{::reservation.depositAmt | currency}} Paid <\/span> <span data-ng-switch-default> None required <\/span> <\/span> <\/td> <\/tr> <tr> <td class=text-left> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_OCCUPANTS>Occupants:<\/exl-static-text> <\/td> <td class=text-left> {{::reservation.occupantList}} <\/td> <\/tr> <\/table> <\/td> <\/tr> <\/tbody> <\/table> <div data-ng-if=::!housingSummaryCtrl.viewOnly> <div data-ng-if=!housingSummaryCtrl.addNewDisabled> <button class=\"transparent small tight\" data-ng-click=housingSummaryCtrl.addReservation()> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_HOUSING_SUMMARY_BUTTON_ADD_RES>Add Reservation<\/exl-static-text> <\/button> <\/div> <\/div> <\/div>");n.put("App/Personnel/Views/Personnel.html",'<div class=row> <div class="medium-12 columns"> <span class=exl-criteria> <span data-ng-click=personnelCtrl.sortSelect(personnelCtrl.sortHeaders.defaultSort) data-ng-if="personnelCtrl.sortExpression !== personnelCtrl.sortHeaders.defaultSort" data-ng-class> <i class="fa fa-remove text-alert-color"><\/i> Remove Sort <\/span> <\/span> <\/div> <\/div> <div class=row data-ng-if=personnelCtrl.filteredPersonnel.length> <div class="medium-6 columns"> <p> <exl-static-text id-code=WEB_PERSONNEL_FILTER_TOTAL_ITEMS> Results Total: <\/exl-static-text> {{personnelCtrl.filteredPersonnel.length}} <\/p> <\/div> <div class="medium-6 columns text-right"> <exl-items-per-page items-per-page=personnelCtrl.itemsPerPage items-per-step=::personnelCtrl.itemsPerPageStep data-ng-if="personnelCtrl.filteredPersonnel.length > personnelCtrl.itemsPerPageStep"> <\/exl-items-per-page> <\/div> <\/div> <div class=row data-ng-if=personnelCtrl.isContactConfVisible()> <div class="medium-12 columns text-right"> <button type=button class=empty data-tooltip="Send Contact confirmation" data-ng-click="personnelCtrl.isContactConfSelected = !personnelCtrl.isContactConfSelected"> <i class="fa fa-fw fa-lg" data-ng-class="personnelCtrl.isContactConfSelected ? \'fa-check-square-o\' : \'fa-square-o\'"><\/i> <\/button> <i class="fa fa-check" data-ng-class="personnelCtrl.confirmationsSent.hasContactConfirmationSent == \'Yes\' ? \'text-success-color\' : \'text-alert-color\'" data-tooltip="{{personnelCtrl.confirmationsSent.hasContactConfirmationSent == \'Yes\' ? (personnelCtrl.confirmationsSent.latestContactConfirmationDate ? \'Latest Confirmation Sent: \' + (personnelCtrl.confirmationsSent.latestContactConfirmationDate | date: \'medium\') : \'Confirmation sent\') : personnelCtrl.confirmationsSent.hasContactConfirmationSent == \'No\' ? \'Last Confirmation Failed\' : \'\'}}" data-ng-if=personnelCtrl.confirmationsSent.hasContactConfirmationSent> <\/i> <span> <exl-static-text id-code=WEB_PERSONNEL_CONTACT_CONFIRMATION_CHECKBOX>Email Contact Confirmation<\/exl-static-text> <\/span> <\/div> <\/div> <div class=row data-ng-if=personnelCtrl.filteredPersonnel.length> <div class="medium-8 columns"> <pagination total-items=personnelCtrl.filteredPersonnel.length page=personnelCtrl.currentPage items-per-page=personnelCtrl.itemsPerPage max-size=::personnelCtrl.maxPagerSize class=pagination-sm previous-text="&lsaquo; Previous" next-text="Next &rsaquo;" first-text="&laquo; First" last-text="Last &raquo;" boundary-links=true rotate=false num-pages=personnelCtrl.numPages data-ng-if=personnelCtrl.hasPages> <\/pagination> <\/div> <div class="medium-4 columns text-right"> <button type=button class=small data-ng-disabled=personnelCtrl.disableInput data-ng-if=personnelCtrl.isSendInviteVisible() data-ng-click=::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.sendInvite)> <i class="fa fa-envelope"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_BUTTON_SEND_INVITES>Invite Selected<\/exl-static-text> <\/button> <button type=button class=small data-ng-disabled=personnelCtrl.disableInput data-ng-if=personnelCtrl.isSendConfVisible() data-ng-click=::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.sendConfirmation)> <i class="fa fa-envelope"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_BUTTON_SEND_CONFIRMATIONS>Send Confirmation(s)<\/exl-static-text> <\/button> <\/div> <\/div> <table class="table utility stretch"> <thead> <tr id={{::personnelCtrl.personnelHeaderRowId}}> <th><\/th> <th> <a data-ng-click=::personnelCtrl.sortSelect(personnelCtrl.sortHeaders.firstName)> <i class=fa data-ng-class="personnelCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="personnelCtrl.sortExpression === personnelCtrl.sortHeaders.firstName"><\/i> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_FIRSTNAME>First Name<\/exl-static-text> <\/a> <\/th> <th> <a data-ng-click=::personnelCtrl.sortSelect(personnelCtrl.sortHeaders.lastName)> <i class=fa data-ng-class="personnelCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="personnelCtrl.sortExpression === personnelCtrl.sortHeaders.lastName"><\/i> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_LASTNAME>Last Name<\/exl-static-text> <\/a> <\/th> <th> <a data-ng-click=::personnelCtrl.sortSelect(personnelCtrl.sortHeaders.company)> <i class=fa data-ng-class="personnelCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="personnelCtrl.sortExpression === personnelCtrl.sortHeaders.company"><\/i> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_COMPANY>Company<\/exl-static-text> <\/a> <\/th> <th data-ng-if=::personnelCtrl.editPersonData.regOptionData.isRegistrationEnabled> <a data-ng-click=::personnelCtrl.sortSelect(personnelCtrl.sortHeaders.registration)> <i class=fa data-ng-class="personnelCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="personnelCtrl.sortExpression === personnelCtrl.sortHeaders.registration"><\/i> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_REGISTRATION>Registration<\/exl-static-text> <\/a> <\/th> <th data-ng-if=::personnelCtrl.editPersonData.regOptionData.isHousingEnabled> <a data-ng-click=::personnelCtrl.sortSelect(personnelCtrl.sortHeaders.reservation)> <i class=fa data-ng-class="personnelCtrl.sortDesc ? \'fa-sort-desc\' : \'fa-sort-asc\'" data-ng-if="personnelCtrl.sortExpression === personnelCtrl.sortHeaders.reservation"><\/i> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_HOUSING>Housing<\/exl-static-text> <\/a> <\/th> <th><exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_BALANCE_DUE>Balance Due?<\/exl-static-text><\/th> <th> <button type=button class="empty tiny" data-tooltip="{{!personnelCtrl.selectAll ? \'Select All\' : \'Deselect All\'}}" data-ng-if="personnelCtrl.isSendInviteVisible() || personnelCtrl.isIndividualConfVisible()" data-ng-click=::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.selectAll)> <i class="fa fa-fw fa-lg" data-ng-class="personnelCtrl.selectAll ? \'fa-check-square-o\' : \'fa-square-o\'"><\/i> <\/button> <span data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewAll> <span data-ng-if=personnelCtrl.invitesSent.status> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_INVITED>Invitation<\/exl-static-text> <\/span> <\/span> <span data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewCompleted> <span data-ng-if=personnelCtrl.confirmationsSent.status> <exl-static-text id-code=WEB_PERSONNEL_LIST_HEADER_CONFIRMATION>Confirmation<\/exl-static-text> <\/span> <\/span> <\/th> <\/tr> <\/thead> <tbody data-ng-repeat="person in personnelCtrl.pagedPersonnel"> <tr> <td> <button class="transparent icon-button" data-ng-click="personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.edit, person)" data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing"> <i class="fa fa-pencil" data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewAll> <span class=exl-screen-reader-text>Edit<\/span> <\/i> <small>{{::person.registrantId}}<\/small> <\/button> <\/td> <td> <strong>{{::person.firstName}}<\/strong> <\/td> <td> <strong>{{::person.lastName}}<\/strong> <\/td> <td> {{::person.company}} <\/td> <td data-ng-if=::personnelCtrl.editPersonData.regOptionData.isRegistrationEnabled> <div data-ng-if="::person.hasRegistration || person.isCancelled" data-ng-switch=::person.hasPaid> <button class="tiny tight" data-ng-class="::!person.isCancelled ? (person.hasCompletedRegistration ? \'success\' : \'warning\') : \'alert\'" data-dropdown-toggle=#ddRegSummary_{{::person.registrantId}} data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing" data-ng-click="person.viewRegSummary = true"> <span data-tooltip="{{::!person.isCancelled ? (person.hasCompletedRegistration ? \'Completed Registration\' : \'In Progress Registration\') : \'Cancelled Registration\'}}"> {{::person.isCancelled ? \'Cancelled\' : person.regTypeCodeDesc}} <\/span> <i class="fa fa-caret-down fa-fw right"><\/i> <\/button> <button data-ng-switch-default class="empty small tight" data-ng-click="::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.removeRegistration, person)" data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing || !personnelCtrl.isRegistrationOpen" data-ng-if="::!person.isCancelled && personnelCtrl.editPersonData.regOptionData.viewAll"> <i class="fa fa-fw fa-remove text-alert-color" data-tooltip="Remove Registration"><span class=exl-screen-reader-text>Remove Registration<\/span><\/i> <\/button> <i data-ng-switch-when=1 class="fa fa-info-circle" data-ng-if="::!person.isCancelled && personnelCtrl.editPersonData.regOptionData.viewAll" data-tooltip="To cancel a paid registration, please contact Customer Service"> <\/i> <i data-ng-switch-when=2 class="fa fa-info-circle" data-ng-if="::!person.isCancelled && personnelCtrl.editPersonData.regOptionData.viewAll" data-tooltip="To cancel a completed guest, please contact Customer Service"> <\/i> <\/div> <div data-ng-if="::!person.hasRegistration && !person.isCancelled"> <button class="button tiny dark" data-ng-click="::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.addRegistration, person)" data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing || !personnelCtrl.isRegistrationOpen" data-ng-if="::personnelCtrl.editPersonData.regOptionData.viewAll && !person.isGuest"> <i class="fa fa-ticket fa-fw"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_LIST_BUTTON_ADD_REG>Register<\/exl-static-text> <\/button> <strong class=text-primary-color> <exl-static-text data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewCompleted id-code=WEB_PERSONNEL_LIST_NO_REG>None<\/exl-static-text> <\/strong> <\/div> <exl-registration-summary dropdown-id=ddRegSummary_{{::person.registrantId}} data=::person add-reg-disabled="::personnelCtrl.editPersonData.regOptionData.viewCompleted || !personnelCtrl.isRegistrationOpen || person.isGuest" callback=personnelCtrl.personnelEventHandler data-ng-if=person.viewRegSummary> <\/exl-registration-summary> <\/td> <td data-ng-if=::personnelCtrl.editPersonData.regOptionData.isHousingEnabled> <div data-ng-if="::person.hasReservation || person.hasNoHotelTypeSet"> <button class="tiny tight" data-ng-class="::person.hasReservation ? (person.hasCompletedReservation ? \'success\' : \'warning\') : \'dark\'" data-dropdown-toggle=#ddHousingSummary_{{::person.registrantId}} data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing" data-ng-click="person.viewHousingSummary = true"> <span data-tooltip="{{::person.hasReservation ? (person.hasCompletedReservation ? \'Has Completed Reservation\' : \'Has Incomplete Reservation\') : \'Has No Hotel Reason\'}}"> {{::person.hasReservation ? \'Room\' : \'None\'}} <\/span> <i class="fa fa-caret-down fa-fw right"><\/i> <\/button> <\/div> <div data-ng-if="::!person.hasReservation && !person.hasNoHotelTypeSet"> <button class="button tiny dark" data-ng-click="::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.addHousing, person)" data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing || !personnelCtrl.isHousingOpen || !personnelCtrl.editPersonData.regOptionData.housingRequirementsSatisfied" data-ng-if="::personnelCtrl.editPersonData.regOptionData.viewAll && !person.isGuest"> <i class="fa fa-fw fa-plus"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_LIST_BUTTON_ADD_RES>Room<\/exl-static-text> <\/button> <strong class=text-primary-color> <exl-static-text data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewCompleted id-code=WEB_PERSONNEL_LIST_NO_RES>No Reservation<\/exl-static-text> <\/strong> <\/div> <exl-housing-summary dropdown-id=ddHousingSummary_{{::person.registrantId}} data=::person view-only="::personnelCtrl.editPersonData.regOptionData.viewCompleted || person.isGuest || !personnelCtrl.isHousingOpen" add-new-disabled=!personnelCtrl.editPersonData.regOptionData.housingRequirementsSatisfied callback=personnelCtrl.personnelEventHandler data-ng-if=person.viewHousingSummary> <\/exl-housing-summary> <\/td> <td> <button data-ng-if="::person.regBalanceDue > 0 || person.housingBalanceDue" class="transparent icon-button" data-ng-disabled="personnelCtrl.disableInput || personnelCtrl.isEditing" data-ng-click="::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.pay, person)"> <i class="fa fa-money text-alert-color" data-tooltip="{{::person.regBalanceDue == 0 ? \'CCG Required\' : \'Payment Required\'}}"> <span class=exl-screen-reader-text>Balance Due<\/span> <\/i> <\/button> <\/td> <td> <span data-ng-if=::!person.isGuest> <button type=button class="empty small" data-tooltip="Select Person" data-ng-if="personnelCtrl.isSendInviteVisible() || personnelCtrl.isIndividualConfVisible(person)" data-ng-click="person.isSelected = !person.isSelected" data-ng-disabled=personnelCtrl.isIndividualConfDisabled(person)> <i class="fa fa-fw fa-lg" data-ng-class="person.isSelected ? \'fa-check-square-o\' : \'fa-square-o\'"><\/i> <\/button> <\/span> <span data-ng-if="::person.confSettings.noConfirmationReason && personnelCtrl.editPersonData.regOptionData.viewCompleted"> <span data-ng-if=personnelCtrl.isNoConfirmationReasonVisible(person)> {{::person.confSettings.noConfirmationReason}} <\/span> <\/span> <span data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewAll> <i class="fa fa-check" data-ng-class="person.hasInviteSent == \'Yes\' ? \'text-success-color\' : \'text-alert-color\'" data-tooltip="{{person.hasInviteSent == \'Yes\' ? (person.latestInviteDate ? \'Latest Invite Sent: \' + (person.latestInviteDate | date: \'medium\') : \'Invitation sent\') : person.hasInviteSent == \'No\' ? \'Last Invite Failed\' : \'\'}}" data-ng-if=person.hasInviteSent> <\/i> <\/span> <span data-ng-if="::personnelCtrl.editPersonData.regOptionData.viewCompleted && !person.isContact && !person.isGuest"> <i class="fa fa-check" data-ng-class="person.hasConfirmationSent == \'Yes\' ? \'text-success-color\' : \'text-alert-color\'" data-tooltip="{{person.hasConfirmationSent == \'Yes\' ? (person.latestConfirmationDate ? \'Latest Confirmation Sent: \' + (person.latestConfirmationDate | date: \'medium\') : \'Confirmation sent\') : person.hasConfirmationSent == \'No\' ? \'Last Confirmation Failed\' : \'\'}}" data-ng-if=person.hasConfirmationSent> <\/i> <\/span> <\/td> <\/tr> <tr data-ng-if=person.isEditing> <td colspan={{::personnelCtrl.adjustColSpan(personnelCtrl.personnelHeaderRowId)}} class="background-warning-color-lighter exl-padding-small"> <exl-personnel-profile-edit person=person data=personnelCtrl.editPersonData callback=personnelCtrl.personnelEventHandler data-ng-if="::personnelCtrl.editPersonData.regOptionData.viewAll && !person.isGuest"><\/exl-personnel-profile-edit> <div data-ng-if="::personnelCtrl.editPersonData.regOptionData.viewCompleted || person.isGuest"> <exl-wizard-task-layout layout=PersonnelSearch profile=person summary=true><\/exl-wizard-task-layout> <button type=button data-ng-click="::personnelCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.cancel, person)" data-ng-disabled=personnelCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_SUMMARY_CLOSE_BUTTON>Close<\/exl-static-text> <\/button> <\/div> <\/td> <\/tr> <\/tbody> <\/table> <div class=row data-ng-if=personnelCtrl.filteredPersonnel.length> <div class="medium-8 columns"> <pagination total-items=personnelCtrl.filteredPersonnel.length page=personnelCtrl.currentPage items-per-page=personnelCtrl.itemsPerPage max-size=::personnelCtrl.maxPagerSize class=pagination-sm previous-text="&lsaquo; Previous" next-text="Next &rsaquo;" first-text="&laquo; First" last-text="Last &raquo;" boundary-links=true rotate=false data-ng-if=personnelCtrl.hasPages> <\/pagination> <\/div> <div class="medium-4 columns text-right"> <exl-items-per-page items-per-page=personnelCtrl.itemsPerPage items-per-step=::personnelCtrl.itemsPerPageStep data-ng-if="personnelCtrl.filteredPersonnel.length > personnelCtrl.itemsPerPageStep"> <\/exl-items-per-page> <\/div> <\/div> <div> <\/div> <div data-ng-if=personnelCtrl.data.personnel> <div class=alert-box data-ng-if=!personnelCtrl.filteredPersonnel.length> <span data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewAll> <exl-static-text id-code=WEB_PERSONNEL_LIST_NO_RESULTS>No results<\/exl-static-text> <\/span> <span data-ng-if=::personnelCtrl.editPersonData.regOptionData.viewCompleted> <exl-static-text id-code=WEB_PERSONNEL_LIST_NO_COMPLETED_RESULTS>No results<\/exl-static-text> <\/span> <\/div> <\/div> ');n.put("App/Personnel/Views/PersonnelProfileAdd.html",'<exl-static-text id-code=WEB_PERSONNEL_PROFILE_ADD_TEXT_TOP><p>Please complete the following fields.<\/p><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <form name=personnelProfileAddCtrl.formProfile novalidate method=post action=javascript:void(0) exl-zipcode-lookup> <exl-static-text id-code=WEB_PERSONNEL_PROFILE_ADD_FIELDSET_OPENING><\/exl-static-text> <div class=row> <div class="medium-6 columns"> <exl-wizard-task-layout profile=personnelProfileAddCtrl.profile overrides=personnelProfileAddCtrl.overrides><\/exl-wizard-task-layout> <\/div> <div class="medium-6 columns"> <div data-ng-if="::personnelProfileAddCtrl.data.regOptions.length && (personnelProfileAddCtrl.data.isInviteIndividualEnabled || (personnelProfileAddCtrl.data.isHousingEnabled && personnelProfileAddCtrl.isHousingOpen && personnelProfileAddCtrl.data.isRegistrationEnabled && personnelProfileAddCtrl.isRegistrationOpen))"> <label> <i class="fa fa-asterisk text-alert-color"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_REG_OPTIONS>Options:<\/exl-static-text> <\/label> <exl-select-list name=regOptions ng-model=personnelProfileAddCtrl.regOptions itemlist=::personnelProfileAddCtrl.data.regOptions selecteditem=personnelProfileAddCtrl.data.selectedRegOption hide-filter=true gridcolumns=1 click-item=personnelProfileAddCtrl.setPersonNeeds ng-required=true tabindex=-1><\/exl-select-list> <div ng-if=personnelProfileAddCtrl.formProfile.regOptions.$touched ng-messages=personnelProfileAddCtrl.formProfile.regOptions.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_REG_OPTIONS_REQUIRED_ERROR>Option is required<\/exl-static-text> <\/div> <\/div> <\/div> <\/div> <\/div> <exl-static-text id-code=WEB_PERSONNEL_PROFILE_ADD_FIELDSET_CLOSING><\/exl-static-text> <div data-ng-if="::personnelProfileAddCtrl.data.isRegistrationEnabled && personnelProfileAddCtrl.isRegistrationOpen"> <div data-ng-if="personnelProfileAddCtrl.data.needsRegistration || personnelProfileAddCtrl.data.needsInviteIndividual"> <hr> <h3><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_REGISTRATION>Registration Required for Badge:<\/exl-static-text><\/h3> <div data-ng-if=::personnelProfileAddCtrl.isExhibitorRegEnabled> <button class="empty small tight" type=button data-ng-click=personnelProfileAddCtrl.showExhibitorAllotmentModal()> <i class="fa fa-info-circle"><\/i> <exl-static-text id-code=WEB_PERSONNEL_EXH_ALLOTMENT>Allotment Summary<\/exl-static-text> <\/button> <\/div> <label> <i class="fa fa-asterisk text-alert-color" data-ng-if=personnelProfileAddCtrl.isRegTypeRequired()><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_REGTYPE_FIELDLABEL>Reg Type:<\/exl-static-text> <exl-select-list-modal title="Select a Registration Type" ng-model=personnelProfileAddCtrl.regType name=regType itemlist=personnelProfileAddCtrl.data.registrationData.registrationTypes selecteditem=personnelProfileAddCtrl.data.registrationData.selectedRegType ng-required=personnelProfileAddCtrl.isRegTypeRequired() hide-filter=true tabindex=-1> <\/exl-select-list-modal> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_REGTYPE_FIELDLABEL_POST><\/exl-static-text> <\/label> <div ng-if=personnelProfileAddCtrl.formProfile.regType.$touched ng-messages=personnelProfileAddCtrl.formProfile.regType.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_REGTYPE_REQUIRED_ERROR>Reg Type is required<\/exl-static-text> <\/div> <\/div> <\/div> <\/div> <div data-ng-if="::personnelProfileAddCtrl.data.isHousingEnabled && personnelProfileAddCtrl.isHousingOpen && personnelProfileAddCtrl.data.housingRequirementsSatisfied"> <div data-ng-if="personnelProfileAddCtrl.data.needsHousing && !personnelProfileAddCtrl.hasNoHotelTypeSet()"> <hr> <h3><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_HOUSING>Required for Housing:<\/exl-static-text><\/h3> <div class=row> <div class="medium-6 columns"> <label> <i class="fa fa-asterisk text-alert-color"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_ARRIVALDATE_FIELDLABEL>Arrival<\/exl-static-text> <exl-date-picker model=personnelProfileAddCtrl.roomSearchCriteria.arrivalDate min=::personnelProfileAddCtrl.dateArriveMin max=personnelProfileAddCtrl.dateArriveMax is-required=true counterpart=personnelProfileAddCtrl.roomSearchCriteria.departureDate highlight-schedule-type-code=SF name=arrivalDate><\/exl-date-picker> <\/label> <div ng-if=personnelProfileAddCtrl.formProfile.arrivalDate.$touched ng-messages=personnelProfileAddCtrl.formProfile.arrivalDate.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_ARRIVALDATE_REQUIRED_ERROR>Arrival is required<\/exl-static-text> <\/div> <\/div> <\/div> <div class="medium-6 columns"> <label> <i class="fa fa-asterisk text-alert-color"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_DEPARTDATE_FIELDLABEL>Departure<\/exl-static-text> <exl-date-picker model=personnelProfileAddCtrl.roomSearchCriteria.departureDate min=personnelProfileAddCtrl.dateDepartMin max=::personnelProfileAddCtrl.dateDepartMax is-required=true counterpart=personnelProfileAddCtrl.roomSearchCriteria.arrivalDate highlight-schedule-type-code=SF name=departureDate><\/exl-date-picker> <\/label> <div ng-if=personnelProfileAddCtrl.formProfile.departureDate.$touched ng-messages=personnelProfileAddCtrl.formProfile.departureDate.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_DEPARTDATE_REQUIRED_ERROR>Departure is required<\/exl-static-text> <\/div> <\/div> <\/div> <\/div> <div class=row> <div class="medium-4 columns" data-ng-if=::personnelProfileAddCtrl.data.assignedHotels> <label> <i class="fa fa-asterisk text-alert-color"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_HOTEL_FIELDLABEL>Hotel Name<\/exl-static-text> <exl-select-list-modal title="Select a Hotel" ng-model=personnelProfileAddCtrl.hotelName name=hotelName itemlist=::personnelProfileAddCtrl.data.assignedHotels selecteditem=personnelProfileAddCtrl.selectedHotelName ng-required=true hide-filter=true tabindex=-1> <\/exl-select-list-modal> <\/label> <div ng-if=personnelProfileAddCtrl.formProfile.hotelName.$touched ng-messages=personnelProfileAddCtrl.formProfile.hotelName.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_HOTEL_REQUIRED_ERROR>Hotel Name is required<\/exl-static-text> <\/div> <\/div> <\/div> <div class="medium-4 columns"> <label> <i class="fa fa-asterisk text-alert-color"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_ROOMS_FIELDLABEL>Rooms<\/exl-static-text> <exl-spinner model=personnelProfileAddCtrl.roomSearchCriteria.numberOfRooms required=true min=1 max=::personnelProfileAddCtrl.maxNumOfRooms step=1 name=numberOfRooms><\/exl-spinner> <\/label> <div ng-if=personnelProfileAddCtrl.formProfile.numberOfRooms.$touched ng-messages=personnelProfileAddCtrl.formProfile.numberOfRooms.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_ROOMS_REQUIRED_ERROR>Rooms is required<\/exl-static-text> <\/div> <\/div> <\/div> <div class="medium-4 columns end"> <label> <i class="fa fa-asterisk text-alert-color"><\/i><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_GUEST_FIELDLABEL>Guests/Room<\/exl-static-text> <exl-spinner model=personnelProfileAddCtrl.roomSearchCriteria.numberOfGuests required=true min=1 max=6 step=1 name=numberOfGuests><\/exl-spinner> <\/label> <div ng-if=personnelProfileAddCtrl.formProfile.numberOfGuests.$touched ng-messages=personnelProfileAddCtrl.formProfile.numberOfGuests.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_GUEST_REQUIRED_ERROR>Guests/Room is required<\/exl-static-text> <\/div> <\/div> <\/div> <\/div> <\/div> <\/div> <div data-ng-if="::personnelProfileAddCtrl.data.isHousingEnabled && personnelProfileAddCtrl.isHousingOpen"> <div data-ng-if=personnelProfileAddCtrl.profile> <hr> <button type=button data-ng-click=personnelProfileAddCtrl.modalNoHotel()> <i class="fa fa-ban"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_BUTTON_NORESERVATION>No Reservations at this time.<\/exl-static-text> <\/button> <span class=exl-criteria> <span data-ng-class=class data-ng-click=personnelProfileAddCtrl.removeNoHotelTypeCode() data-ng-if="personnelProfileAddCtrl.profile.noHotelTypeCode != \'\'"> <i class="fa fa-remove text-alert-color"><\/i> {{personnelProfileAddCtrl.noHotelTypeDesc()}} <\/span> <\/span> <\/div> <\/div> <\/form> <div class=row> <hr> <div class="medium-12 columns"> <button type=button data-ng-click=personnelProfileAddCtrl.cancel() data-ng-disabled=personnelProfileAddCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_BUTTON_CANCEL>Cancel<\/exl-static-text> <\/button> <exl-submit-button click-button=personnelProfileAddCtrl.add() disable-button="!((personnelProfileAddCtrl.data.isRegistrationEnabled && personnelProfileAddCtrl.isRegistrationOpen) || (personnelProfileAddCtrl.data.isHousingEnabled && personnelProfileAddCtrl.isHousingOpen)) && !personnelProfileAddCtrl.allowAddNewWhenClosed"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_BUTTON_SUBMIT>Add<\/exl-static-text> <\/exl-submit-button> <\/div> <\/div> ');n.put("App/Personnel/Views/PersonnelProfileEdit.html",'<exl-static-text id-code=WEB_PERSONNEL_PROFILE_EDIT_TEXT_TOP><p>Update the information, and click <strong>Update<\/strong> to save your changes.<\/p><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <form name=personnelProfileEditCtrl.formProfile novalidate method=post action=javascript:void(0) exl-zipcode-lookup> <exl-static-text id-code=WEB_PERSONNEL_PROFILE_EDIT_FIELDSET_OPENING><\/exl-static-text> <div class=row> <div class="medium-6 columns"> <exl-wizard-task-layout profile=personnelProfileEditCtrl.profile overrides=personnelProfileEditCtrl.overrides><\/exl-wizard-task-layout> <\/div> <div class="medium-6 columns"> <div data-ng-if="::personnelProfileEditCtrl.data.regOptionData.isRegistrationEnabled && personnelProfileEditCtrl.isRegistrationOpen"> <div data-ng-if="personnelProfileEditCtrl.person.needsRegistration || personnelProfileEditCtrl.person.hasRegistration"> <h3><exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_EDIT_REGISTRATION>Registration Required for Badge:<\/exl-static-text><\/h3> <div data-ng-if=::personnelProfileEditCtrl.isExhibitorRegEnabled> <button class="empty small tight" type=button data-ng-click=personnelProfileEditCtrl.showExhibitorAllotmentModal()> <i class="fa fa-info-circle"><\/i> <exl-static-text id-code=WEB_PERSONNEL_EXH_ALLOTMENT>Allotment Summary<\/exl-static-text> <\/button> <\/div> <label> <i class="fa fa-asterisk text-alert-color"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_EDIT_REG_TYPE>Reg Type:<\/exl-static-text> <exl-select-list-modal title="Select a Registration Type" ng-model=personnelProfileEditCtrl.regType name=regType itemlist=personnelProfileEditCtrl.data.registrationData.registrationTypes selecteditem=personnelProfileEditCtrl.selectedRegType ng-required=true hide-filter=true tabindex=-1> <\/exl-select-list-modal> <exl-static-text id-code=WEB_PERSONNEL_PROFILE_EDIT_REG_TYPE_2><\/exl-static-text> <\/label> <div ng-if=personnelProfileEditCtrl.formProfile.regType.$touched ng-messages=personnelProfileEditCtrl.formProfile.regType.$error> <div ng-message=required class="alert label small"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_EDIT_REGTYPE_REQUIRED_ERROR>Reg Type is required<\/exl-static-text> <\/div> <\/div> <\/div> <\/div> <div data-ng-if="::personnelProfileEditCtrl.data.regOptionData.isHousingEnabled && personnelProfileEditCtrl.isHousingOpen && !personnelProfileEditCtrl.person.hasReservation"> <div data-ng-if=personnelProfileEditCtrl.profile> <hr> <button type=button data-ng-click=personnelProfileEditCtrl.modalNoHotel()> <i class="fa fa-ban"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_ADD_BUTTON_NORESERVATION>No Reservations at this time.<\/exl-static-text> <\/button> <span class=exl-criteria> <span data-ng-class=class data-ng-click=personnelProfileEditCtrl.removeNoHotelTypeCode() data-ng-if="personnelProfileEditCtrl.profile.noHotelTypeCode != \'\'"> <i class="fa fa-remove text-alert-color"><\/i> {{personnelProfileEditCtrl.noHotelTypeDesc()}} <\/span> <\/span> <\/div> <\/div> <\/div> <\/div> <exl-static-text id-code=WEB_PERSONNEL_PROFILE_EDIT_FIELDSET_CLOSING><\/exl-static-text> <\/form> <div class=row> <hr> <div class=columns> <button type=button data-ng-click=personnelProfileEditCtrl.cancel() data-ng-disabled=personnelProfileEditCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_EDIT_BUTTON_CANCEL>Cancel<\/exl-static-text> <\/button> <exl-submit-button click-button=personnelProfileEditCtrl.update() disable-button=personnelProfileEditCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_EDIT_BUTTON_SUBMIT>Update<\/exl-static-text> <\/exl-submit-button> <\/div> <\/div> ');n.put("App/Personnel/Views/PersonnelTask.html",'<div class=row> <div class="large-12 medium-12 columns"> <exl-static-text id-code=WEB_PERSONNEL_TASK_TEXT_TOP><\/exl-static-text> <\/div> <\/div> <accordion close-others=false> <accordion-group data-ng-if=!taskCtrl.isExhibitor> <accordion-heading id={{::taskCtrl.addNewAccordionHeaderId}}> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_ACCORDION_ADD_NEW_HEADER>Add New Person<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-personnel-profile-add data=taskCtrl.newPersonData callback=taskCtrl.personnelTaskEventHandler><\/exl-personnel-profile-add> <\/div> <\/accordion-group> <accordion-group data-ng-if=::taskCtrl.regOptionData.isRegistrationEnabled> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_ACCORDION_IMPORT_HEADER>Import Personnel<\/exl-static-text> <\/accordion-heading> <div class=content> <form novalidate class=simple-form name=formImport> <h3><exl-static-text id-code=WEB_PERSONNEL_IMPORT_STEP1_HEADER>Step 1: Get the Template<\/exl-static-text><\/h3> <p> <exl-static-text id-code=WEB_PERSONNEL_IMPORT_STEP1_INSTRUCTIONS><\/exl-static-text> <a class="button small" data-ng-click=taskCtrl.downloadTemplate() data-ng-disabled=::!taskCtrl.isRegistrationOpen> <i class="fa fa-fw fa-download"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_IMPORT_DOWNLOAD_TEMPLATE_LINK>Download Template<\/exl-static-text> <\/a> <\/p> <h3><exl-static-text allow-html=false id-code=WEB_PERSONNEL_IMPORT_STEP2_HEADER>Step 2: Upload your template file<\/exl-static-text><\/h3> <p> <exl-static-text id-code=WEB_PERSONNEL_IMPORT_STEP2_INSTRUCTIONS><\/exl-static-text> <input type=file name=file data-exl-file-model=taskCtrl.uploadModel.attachment data-ng-disabled=::!taskCtrl.isRegistrationOpen> <\/p> <h3><exl-static-text id-code=WEB_PERSONNEL_IMPORT_STEP3_HEADER>Step 3: Last Step!<\/exl-static-text><\/h3> <p> <exl-static-text id-code=WEB_PERSONNEL_IMPORT_STEP3_INSTRUCTIONS>Once the file is selected, click <strong>Upload Spreadsheet<\/strong> to submit your file. <em>You\'re not complete until you click this button.<\/em><\/exl-static-text> <button class="secondary small" data-ng-click=taskCtrl.reset()><exl-static-text id-code=WEB_PERSONNEL_IMPORT_BUTTON_CANCEL>Cancel<\/exl-static-text><\/button> <button class=small data-ng-click=taskCtrl.uploadList(taskCtrl.uploadModel) data-ng-disabled=::!taskCtrl.isRegistrationOpen><i class="fa fa-fw fa-upload"><\/i><exl-static-text id-code=WEB_PERSONNEL_IMPORT_BUTTON_UPLOAD>Upload Spreadsheet<\/exl-static-text><\/button> <\/p> <\/form> <\/div> <\/accordion-group> <accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_ACCORDION_EXPORT_HEADER>Export Personnel<\/exl-static-text> <\/accordion-heading> <div class=content> <form novalidate class=simple-form> <exl-static-text id-code=WEB_GROUP_EXPORT_INSTRUCTIONS_TOP><h3>Export Personnel<\/h3><\/exl-static-text> <p> <a class="button small" data-ng-click="taskCtrl.downloadExport(\'HOUSING\')" data-ng-if=::taskCtrl.regOptionData.isHousingEnabled> <i class="fa fa-fw fa-download"><\/i> <exl-static-text allow-html=false id-code=WEB_GROUP_EXPORT_LINKBUTTON_EXPORT_HOU>Housing Export<\/exl-static-text> <\/a> <a class="button small" data-ng-click="taskCtrl.downloadExport(\'REGISTRATION\')" data-ng-if=::taskCtrl.regOptionData.isRegistrationEnabled> <i class="fa fa-fw fa-download"><\/i> <exl-static-text allow-html=false id-code=WEB_GROUP_EXPORT_LINKBUTTON_EXPORT_REG>Registration Export<\/exl-static-text> <\/a> <a class="button small" data-ng-click="taskCtrl.downloadExport(\'CUSTOM\')"> <i class="fa fa-fw fa-download"><\/i> <exl-static-text allow-html=false id-code=WEB_GROUP_EXPORT_LINKBUTTON_EXPORT_CUSTOM>Registration & Housing Export<\/exl-static-text> <\/a>   <\/p> <\/form> <\/div> <\/accordion-group> <accordion-group data-ng-if=::taskCtrl.regOptionData.isInviteBookingURLEnabled> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_ACCORDION_BOOKING_INVITE_URL_HEADER>Group Invitation URL<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_ACCORDION_BOOKING_INVITE_URL_CONTENT>Use this URL to send to people who you would like to add themselves to your group.<\/exl-static-text> <p class="label info">{{::taskCtrl.bookingInviteURL}}<\/p> <\/div> <\/accordion-group> <accordion-group data-ng-if="taskCtrl.personnelData.personnel && taskCtrl.personnelData.personnel.length && !taskCtrl.isExhibitor"> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_ACCORDION_FILTER_HEADER>Filter<\/exl-static-text> <\/accordion-heading> <div class=content> <div class=row> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_REGID allow-html=false> {{::taskCtrl.filter.registrantId.title}} <\/exl-static-text> <\/label> <input name=filter.registrantId type=text ng-model=taskCtrl.filter.registrantId.value> <\/div> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_FIRSTNAME allow-html=false> {{::taskCtrl.filter.firstName.title}} <\/exl-static-text> <\/label> <input name=filter.firstName type=text ng-model=taskCtrl.filter.firstName.value> <\/div> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_LASTNAME allow-html=false> {{::taskCtrl.filter.lastName.title}} <\/exl-static-text> <\/label> <input name=filter.lastName type=text ng-model=taskCtrl.filter.lastName.value> <\/div> <\/div> <div class=row> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_EMAIL allow-html=false> {{::taskCtrl.filter.email.title}} <\/exl-static-text> <\/label> <input name=filter.email type=text ng-model=taskCtrl.filter.email.value> <\/div> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_COMPANY allow-html=false> {{::taskCtrl.filter.company.title}} <\/exl-static-text> <\/label> <input name=filter.company type=text ng-model=taskCtrl.filter.company.value> <\/div> <div class="medium-4 columns"> <\/div> <\/div> <div class=row data-ng-if=::taskCtrl.regOptionData.isRegistrationEnabled> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_REGTYPE allow-html=false> {{::taskCtrl.filter.regType.title}} <\/exl-static-text> <\/label> <exl-select-list-modal title="Select a Registration Type" ng-model=taskCtrl.filter.regType.value name=filter.regType itemlist=::taskCtrl.filterRegTypes selecteditem=taskCtrl.selectedFilterRegType hide-filter=true> <\/exl-select-list-modal> <\/div> <div class="medium-4 columns exl-top-padding"> <button type=button class="empty left small" data-ng-model=taskCtrl.filter.noReg.value btn-checkbox btn-checkbox-true=1 btn-checkbox-false data-ng-disabled=taskCtrl.filter.regType.value> <i class="fa fa-fw fa-lg" data-ng-class="taskCtrl.filter.noReg.value == \'1\' ? \'fa-check-square-o\' : \'fa-square-o\'" data-tooltip="{{taskCtrl.filter.regType.value ? \'Disabled\' : \'\'}}"> <\/i> <\/button> <exl-static-text id-code=WEB_PERSONNEL_FILTER_NO_REG allow-html=false> {{::taskCtrl.filter.noReg.title}} <\/exl-static-text> <\/div> <div class="medium-4 columns"> <\/div> <\/div> <div class=row data-ng-if=::taskCtrl.regOptionData.isHousingEnabled> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_PERSONNEL_FILTER_HOTEL allow-html=false> {{::taskCtrl.filter.hotel.title}} <\/exl-static-text> <\/label> <exl-select-list-modal title="Select a Hotel" ng-model=taskCtrl.filter.hotel.value name=filter.hotel itemlist=::taskCtrl.filterHotelItemList selecteditem=taskCtrl.selectedFilterHotelItem hide-filter=true> <\/exl-select-list-modal> <\/div> <div class="medium-4 columns exl-top-padding"> <button type=button class="empty small left" data-ng-model=taskCtrl.filter.noRes.value btn-checkbox btn-checkbox-true=1 btn-checkbox-false data-ng-disabled=taskCtrl.filter.hotel.value> <i class="fa fa-fw fa-lg" data-ng-class="taskCtrl.filter.noRes.value == \'1\' ? \'fa-check-square-o\' : \'fa-square-o\'" data-tooltip="{{taskCtrl.filter.hotel.value ? \'Disabled\' : \'\'}}"> <\/i> <\/button> <exl-static-text id-code=WEB_PERSONNEL_FILTER_NO_RES allow-html=false> {{::taskCtrl.filter.noRes.title}} <\/exl-static-text> <\/div> <div class="medium-4 columns exl-top-padding"> <button type=button class="empty small left" data-ng-model=taskCtrl.filter.waitlist.value btn-checkbox btn-checkbox-true=1 btn-checkbox-false data-ng-disabled=taskCtrl.filter.noRes.value> <i class="fa fa-fw fa-lg" data-ng-class="taskCtrl.filter.waitlist.value == \'1\' ? \'fa-check-square-o\' : \'fa-square-o\'" data-tooltip="{{taskCtrl.filter.noRes.value ? \'Disabled\' : \'\'}}"> <\/i> <\/button> <exl-static-text id-code=WEB_PERSONNEL_FILTER_WAITLIST allow-html=false> {{::taskCtrl.filter.waitlist.title}} <\/exl-static-text> <\/div> <\/div> <div class=row> <hr> <div class="medium-12 columns"> <button type=button data-ng-click=taskCtrl.clearFilters() data-ng-disabled=taskCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_FILTER_BUTTON_CLEAR_FILTERS>Clear all filters<\/exl-static-text> <\/button> <\/div> <\/div> <\/div> <\/accordion-group> <\/accordion> <span class=exl-tags data-ng-repeat="filterField in taskCtrl.selectedFilterFields"> <button type=button class=exl-tag data-ng-click=taskCtrl.removeFilterField(filterField)> {{::filterField.title}}: {{filterField.value}} <\/button> <\/span> <exl-personnel data=taskCtrl.personnelData edit-person-data=taskCtrl.editPersonData filter=taskCtrl.filter refresh=taskCtrl.personnelTaskEventHandler data-ng-if=!taskCtrl.isExhibitor><\/exl-personnel> <exl-quick-add-grid data=taskCtrl.personnelData edit-person-data=taskCtrl.editPersonData filter=taskCtrl.filter refresh=taskCtrl.personnelTaskEventHandler data-ng-if=taskCtrl.isExhibitor><\/exl-quick-add-grid> <h2 class=text-center data-ng-hide=::taskCtrl.isLoaded> <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Loading, please wait... <\/h2> <exl-wizard-nav hide-button-next=true hide-button-back=true><\/exl-wizard-nav> ');n.put("App/Personnel/Views/QuickAddGrid.html",'<div class=row data-ng-if=quickAddCtrl.filteredPersonnel.length> <div class="medium-6 columns"> <p> <exl-static-text id-code=WEB_PERSONNEL_FILTER_TOTAL_ITEMS> Results Total: <\/exl-static-text> {{quickAddCtrl.filteredPersonnel.length}} <\/p> <\/div> <div class="medium-6 columns text-right"> <exl-items-per-page items-per-page=quickAddCtrl.itemsPerPage items-per-step=::quickAddCtrl.itemsPerPageStep data-ng-if="quickAddCtrl.filteredPersonnel.length > quickAddCtrl.itemsPerPageStep"> <\/exl-items-per-page> <\/div> <\/div> <div class=row data-ng-if=quickAddCtrl.isContactConfVisible()> <div class="medium-12 columns text-right"> <button type=button class=empty data-tooltip="Send Contact confirmation" data-ng-click="quickAddCtrl.isContactConfSelected = !quickAddCtrl.isContactConfSelected"> <i class="fa fa-fw fa-lg" data-ng-class="quickAddCtrl.isContactConfSelected ? \'fa-check-square-o\' : \'fa-square-o\'"><\/i> <\/button> <i class="fa fa-check" data-ng-class="quickAddCtrl.confirmationsSent.hasContactConfirmationSent == \'Yes\' ? \'text-success-color\' : \'text-alert-color\'" data-tooltip="{{quickAddCtrl.confirmationsSent.hasContactConfirmationSent == \'Yes\' ? (quickAddCtrl.confirmationsSent.latestContactConfirmationDate ? \'Latest Confirmation Sent: \' + (quickAddCtrl.confirmationsSent.latestContactConfirmationDate | date: \'medium\') : \'Confirmation sent\') : quickAddCtrl.confirmationsSent.hasContactConfirmationSent == \'No\' ? \'Last Confirmation Failed\' : \'\'}}" data-ng-if=quickAddCtrl.confirmationsSent.hasContactConfirmationSent> <\/i> <span> <exl-static-text id-code=WEB_PERSONNEL_CONTACT_CONFIRMATION_CHECKBOX>Email Contact Confirmation<\/exl-static-text> <\/span> <\/div> <\/div> <div class=row data-ng-if=quickAddCtrl.filteredPersonnel.length> <div class="medium-8 columns"> <pagination total-items=quickAddCtrl.filteredPersonnel.length page=quickAddCtrl.currentPage items-per-page=quickAddCtrl.itemsPerPage max-size=::quickAddCtrl.maxPagerSize class=pagination-sm previous-text="&lsaquo; Previous" next-text="Next &rsaquo;" first-text="&laquo; First" last-text="Last &raquo;" boundary-links=true rotate=false num-pages=quickAddCtrl.numPages data-ng-if=quickAddCtrl.hasPages> <\/pagination> <\/div> <div class="medium-4 columns text-right"> <button type=button class=small data-ng-disabled=quickAddCtrl.disableInput data-ng-if=quickAddCtrl.isSendInviteVisible() data-ng-click=::quickAddCtrl.personnelEventHandler(quickAddCtrl.eventHandlerCodes.sendInvite)> <i class="fa fa-envelope"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_BUTTON_SEND_INVITES>Invite Selected<\/exl-static-text> <\/button> <button type=button class=small data-ng-disabled=quickAddCtrl.disableInput data-ng-if=quickAddCtrl.isSendConfVisible() data-ng-click=::quickAddCtrl.personnelEventHandler(quickAddCtrl.eventHandlerCodes.sendConfirmation)> <i class="fa fa-envelope"><\/i> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_BUTTON_SEND_CONFIRMATIONS>Send Confirmation(s)<\/exl-static-text> <\/button> <\/div> <\/div> <div class=row> <div class="medium-12 columns text-center"> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_SUMMARY_QUICK_ADD_INSTRUCTIONS><\/exl-static-text> <\/div> <\/div> <table style=width:100% class="table utility"> <thead> <tr id={{::quickAddCtrl.personnelHeaderRowId}}> <th>First Name<\/th> <th>Last Name<\/th> <th>Badge Company<\/th> <th>Email<\/th> <th>Exhibitor<\/th> <th>Volunteer<\/th> <th>Special Invited Guest<\/th> <th><\/th> <\/tr> <tr> <td><input type=text data-ng-model=quickAddCtrl.newPerson.firstName><\/td> <td><input type=text data-ng-model=quickAddCtrl.newPerson.lastName><\/td> <td><input type=text data-ng-model=quickAddCtrl.newPerson.badgeCompany><\/td> <td><input type=text data-ng-model=quickAddCtrl.newPerson.email><\/td> <td><input type=checkbox data-ng-model=quickAddCtrl.newPerson.categoryExhibitor><\/td> <td><input type=checkbox data-ng-model=quickAddCtrl.newPerson.categoryVolunteer><\/td> <td><input type=checkbox data-ng-model=quickAddCtrl.newPerson.categorySpecial><\/td> <td><input type=button value=add data-ng-click=quickAddCtrl.addPerson()><\/td> <\/tr> <\/thead> <tbody data-ng-repeat="person in quickAddCtrl.pagedPersonnel"> <tr> <td><input type=text data-ng-model=person.firstName><\/td> <td><input type=text data-ng-model=person.lastName><\/td> <td><input type=text data-ng-model=person.badgeCompany><\/td> <td><input type=text data-ng-model=person.email><\/td> <td><input type=checkbox data-ng-model=person.categoryExhibitor><\/td> <td><input type=checkbox data-ng-model=person.categoryVolunteer><\/td> <td><input type=checkbox data-ng-model=person.categorySpecial><\/td> <td> <button class="transparent icon-button" data-ng-click="quickAddCtrl.personnelEventHandler(quickAddCtrl.eventHandlerCodes.edit, person)" data-ng-disabled="quickAddCtrl.disableInput || quickAddCtrl.isEditing"> <i class="fa fa-pencil" data-ng-if=::quickAddCtrl.editPersonData.regOptionData.viewAll> <span class=exl-screen-reader-text>Edit<\/span> <\/i> <small>{{::person.registrantId}}<\/small> <\/button> <\/td> <\/tr> <tr data-ng-if=person.isEditing> <td colspan={{::quickAddCtrl.adjustColSpan(quickAddCtrl.personnelHeaderRowId)}} class="background-warning-color-lighter exl-padding-small"> <exl-personnel-profile-edit person=person data=quickAddCtrl.editPersonData callback=quickAddCtrl.personnelEventHandler data-ng-if="::quickAddCtrl.editPersonData.regOptionData.viewAll && !person.isGuest"><\/exl-personnel-profile-edit> <div data-ng-if="::quickAddCtrl.editPersonData.regOptionData.viewCompleted || person.isGuest"> <exl-wizard-task-layout layout=PersonnelSearch profile=person summary=true><\/exl-wizard-task-layout> <button type=button data-ng-click="::quickAddCtrl.personnelEventHandler(personnelCtrl.eventHandlerCodes.cancel, person)" data-ng-disabled=quickAddCtrl.disableInput> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_PROFILE_SUMMARY_CLOSE_BUTTON>Close<\/exl-static-text> <\/button> <\/div> <\/td> <\/tr> <\/tbody> <\/table> <div class="row exl-top-margin" data-ng-if=quickAddCtrl.filteredPersonnel.length> <div class="medium-12 columns text-center"> <button type=button class=empty data-tooltip=Update data-ng-click=quickAddCtrl.personnelEventHandler(quickAddCtrl.eventHandlerCodes.updateAll)>Save Updates<\/button> <\/div> <\/div> <div class=row data-ng-if=quickAddCtrl.filteredPersonnel.length> <div class="medium-8 columns"> <pagination total-items=quickAddCtrl.filteredPersonnel.length page=quickAddCtrl.currentPage items-per-page=quickAddCtrl.itemsPerPage max-size=::quickAddCtrl.maxPagerSize class=pagination-sm previous-text="&lsaquo; Previous" next-text="Next &rsaquo;" first-text="&laquo; First" last-text="Last &raquo;" boundary-links=true rotate=false data-ng-if=quickAddCtrl.hasPages> <\/pagination> <\/div> <div class="medium-4 columns text-right"> <exl-items-per-page items-per-page=quickAddCtrl.itemsPerPage items-per-step=::quickAddCtrl.itemsPerPageStep data-ng-if="quickAddCtrl.filteredPersonnel.length > quickAddCtrl.itemsPerPageStep"> <\/exl-items-per-page> <\/div> <\/div>');n.put("App/Personnel/Views/RegistrationSummary.html",'<div id={{::registrationSummaryCtrl.dropdownId}} class="f-dropdown f-dropdown-bump-down small content"> <exl-static-text id-code=WEB_PERSONNEL_REG_SUMMARY_HEADER><h3>Registration Summary<\/h3><\/exl-static-text> <div data-ng-if=::!registrationSummaryCtrl.data.isCancelled> <exl-static-text id-code=WEB_PERSONNEL_REG_SUMMARY_LABEL_REGTYPE><strong>Registration Type:<\/strong><\/exl-static-text> <br> <span>{{::registrationSummaryCtrl.data.regTypeCodeDesc}}<\/span> <\/div> <div data-ng-if=::registrationSummaryCtrl.data.isCancelled> <span class=text-alert-color><strong>Cancelled<\/strong><\/span> <button class="button small dark secondary" data-ng-click=registrationSummaryCtrl.addRegistration() data-ng-if=::!registrationSummaryCtrl.addRegDisabled> <exl-static-text allow-html=false id-code=WEB_PERSONNEL_REG_SUMMARY_BUTTON_REGISTER_AGAIN>Register Again<\/exl-static-text> <\/button> <\/div> <br><br> <exl-static-text id-code=WEB_PERSONNEL_REG_SUMMARY_LABEL_PURCHASES><strong>Purchases:<\/strong><\/exl-static-text> <br> <table class=table> <tbody> <tr data-ng-repeat="purchase in ::registrationSummaryCtrl.data.purchases"> <td class=text-left>{{::purchase.quantity}} x <\/td> <td class=text-left>{{::purchase.description}}<\/td> <td class=text-right data-ng-if=::!purchase.hideFee>{{::purchase.totalAmount | currency}}<\/td> <\/tr> <tr data-ng-hide="::!registrationSummaryCtrl.data.purchases || registrationSummaryCtrl.data.purchases.length"><td>None<\/td><\/tr> <\/tbody> <tfoot data-ng-if="::!(registrationSummaryCtrl.hideRegFees && registrationSummaryCtrl.hideShowItemFees)"> <tr> <th><exl-static-text allow-html=false id-code=WEB_PERSONNEL_REG_SUMMARY_PURCHASES_TOTAL>Total Registration<\/exl-static-text><\/th> <th class=text-right> {{::registrationSummaryCtrl.data.totalPurchases | currency}} <\/th> <\/tr> <tr> <th><exl-static-text allow-html=false id-code=WEB_PERSONNEL_REG_SUMMARY_PAID_TOTAL>Total Paid<\/exl-static-text><\/th> <th class=text-right> - {{::registrationSummaryCtrl.data.totalPaid | currency}} <\/th> <\/tr> <tr> <th><exl-static-text allow-html=false id-code=WEB_PERSONNEL_REG_SUMMARY_BALANCE_DUE>Balance Due<\/exl-static-text><\/th> <th class=text-right> <span data-ng-class="::registrationSummaryCtrl.data.regBalanceDue > 0 ? \'text-alert-color\' : \'\'">{{registrationSummaryCtrl.data.regBalanceDue | currency}}<\/span> <\/th> <\/tr> <\/tfoot> <\/table> <\/div> ');n.put("App/Profile/Views/GroupContactProfileTask.html",'<exl-static-text id-code=WEB_CONTACT_PROFILE_TASK_TEXT_TOP><p>Please complete the following fields.<\/p><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <form name=taskCtrl.formProfile novalidate method=post action=javascript:void(0) data-exl-zipcode-lookup> <exl-static-text id-code=WEB_CONTACT_PROFILE_TASK_LEGEND_TOP><\/exl-static-text> <exl-static-text id-code=WEB_CONTACT_PROFILE_TASK_FIELDSET_OPENING><\/exl-static-text> <accordion close-others=false> <accordion-group is-open=true> <accordion-heading> <span><i class="fa fa-fw fa-asterisk text-alert-color"><\/i>Contact Information<\/span> <\/accordion-heading> <exl-wizard-task-layout profile=taskCtrl.profile overrides=taskCtrl.overrides field-detail-data=taskCtrl.data layout=BookingContactProfileInfo><\/exl-wizard-task-layout> <\/accordion-group> <\/accordion> <accordion close-others=false data-ng-if=taskCtrl.isTeamFlow> <accordion-group is-open=false> <accordion-heading> <span><i class="fa fa-fw fa-asterisk text-alert-color"><\/i>Emergency Information (Click to Open/Close)<\/span> <\/accordion-heading> <exl-wizard-task-layout profile=taskCtrl.profile overrides=taskCtrl.overrides field-detail-data=taskCtrl.data layout=BookingContactEmergencyInfo><\/exl-wizard-task-layout> <\/accordion-group> <\/accordion> <accordion close-others=false data-ng-if=taskCtrl.isTeamFlow> <accordion-group is-open=false> <accordion-heading> <span><i class="fa fa-fw fa-asterisk text-alert-color"><\/i>Team Information (Click to Open/Close)<\/span> <\/accordion-heading> <exl-wizard-task-layout profile=taskCtrl.profile overrides=taskCtrl.overrides field-detail-data=taskCtrl.data layout=BookingContactTeamInfo><\/exl-wizard-task-layout> <\/accordion-group> <\/accordion> <exl-static-text id-code=WEB_CONTACT_PROFILE_FIELDSET_CLOSING><\/exl-static-text> <\/form> <exl-static-text id-code=WEB_CONTACT_PROFILE_TASK_TEXT_BOTTOM><\/exl-static-text> <label data-ng-show=taskCtrl.showDupeOverride class="exl-top-margin label warning"> <input type=checkbox data-ng-model=taskCtrl.profile.overrideDupeCheck> <exl-static-text id-code=WEB_CONTACT_PROFILE_TASK_BUTTON_OVERRIDE_DUPE><b>Override Duplicate Check<\/b><\/exl-static-text> <\/label> <exl-wizard-nav label-button-next=taskCtrl.labelButtonNext() click-button-next=taskCtrl.next() click-button-back=taskCtrl.back() always-enable-button-next=true hide-button-next=taskCtrl.hideButtonNext hide-button-back=taskCtrl.isGroupFlow><\/exl-wizard-nav> ');n.put("App/Profile/Views/ProfileTask.html",'<exl-static-text id-code=WEB_ATT_PROFILE_P1><p>Please complete the following fields.<\/p><\/exl-static-text> <exl-required-field-legend><\/exl-required-field-legend> <form name=taskCtrl.formProfile novalidate method=post action=javascript:void(0) exl-zipcode-lookup> <div data-ng-show=taskCtrl.marketingCodeVisible> <exl-marketing-code data-profile=taskCtrl.profile data-marketing-code-validation=taskCtrl.marketingCodeValidation><\/exl-marketing-code> <\/div> <exl-static-text id-code=WEB_ATT_PROFILE_FIELDSET_OPENING><\/exl-static-text> <exl-wizard-task-layout profile=taskCtrl.profile overrides=taskCtrl.overrides><\/exl-wizard-task-layout> <exl-static-text id-code=WEB_ATT_PROFILE_FIELDSET_CLOSING><\/exl-static-text> <div data-ng-if="::(!taskCtrl.isSelfReg && !taskCtrl.isGroupIndividual)"> <h2 class=groupheader> <exl-static-text allow-html=false id-code=WEB_ATT_PROFILE_LEGEND_PASSWORD>Password<\/exl-static-text> <\/h2> <exl-static-text id-code=WEB_ATT_PROFILE_PASSWORD><p>Choose a password so that you can return to edit or review.<\/p><\/exl-static-text> <div class=row> <div class="medium-{{::taskCtrl.colSize}} columns" ng-if=!taskCtrl.profile.hasPassword> <exl-password profile=taskCtrl.profile auto-complete=false><\/exl-password> <\/div> <div class="medium-{{::taskCtrl.colSize}} columns" ng-if=taskCtrl.profile.hasPassword> <exl-password-modal title="Change Your Password" data-reg-id={{taskCtrl.profile.registrantId}}><\/exl-password-modal> <\/div> <\/div> <\/div> <div ng-show=::taskCtrl.showBadgeFields> <h2 class=groupheader> <exl-static-text allow-html=false id-code=WEB_ATT_PROFILE_LEGEND_BADGE>Badge<\/exl-static-text> <\/h2> <exl-static-text id-code=WEB_ATT_PROFILE_P2><p>You may choose exactly how your name and company appear on your badge.<\/p><\/exl-static-text> <exl-wizard-task-layout layout=BADGE profile=taskCtrl.profile><\/exl-wizard-task-layout> <\/div> <div ng-show=::taskCtrl.showAdaFields> <h2 class=groupheader>Special Accommodations<\/h2> <div class=row> <div class=column> <span ng-show=taskCtrl.profile.isadaMobile>ADA Mobile<\/span> <span ng-show=taskCtrl.profile.isadaVisual>ADA Visual<\/span> <span ng-show=taskCtrl.profile.isadaAuditory>ADA Auditory<\/span> <span ng-show=taskCtrl.profile.specialAssistNote ng-bind=taskCtrl.profile.specialAssistNote><\/span> <\/div> <\/div> <exl-ada-modal profile=taskCtrl.profile modalcss=small title="Special Accommodations"> <\/exl-ada-modal> <\/div> <\/form> <label data-ng-if=taskCtrl.showDupeOverride class="exl-top-margin label warning"> <input type=checkbox data-ng-model=taskCtrl.profile.overrideDupeCheck> Override Duplicate Check <\/label> <exl-wizard-nav hide-button-back=taskCtrl.hideButtonBack click-button-next=taskCtrl.next()><\/exl-wizard-nav> ');n.put("App/RAB/Views/BlockRequestStatusDirective.html","<h3> <exl-static-text id-code=WEB_RAB_STATUS_HEADER> Block Request Details <\/exl-static-text> <\/h3> <table class=\"table utility stretch\"> <tbody> <tr> <td> <exl-static-text id-code=WEB_RAB_STATUS_ROWLABEL_CURRENT_STATUS> <strong>Status:<\/strong> <\/exl-static-text> <\/td> <td>{{::blockRequestStatusCtrl.statusText}}<\/td> <\/tr> <tr> <td> <exl-static-text id-code=WEB_RAB_STATUS_ROWLABEL_SUBMITTED> <strong>Submitted:<\/strong> <\/exl-static-text> <\/td> <td>{{::blockRequestStatusCtrl.submittedDate | date: 'medium'}}<\/td> <\/tr> <tr> <td> <exl-static-text id-code=WEB_RAB_STATUS_ROWLABEL_LASTUPDATED> <strong>Last Updated:<\/strong> <\/exl-static-text> <\/td> <td>{{::blockRequestStatusCtrl.lastUpdated | date: 'medium'}}<\/td> <\/tr> <\/tbody> <\/table> ");n.put("App/RAB/Views/RABAdditionalCriteriaTask.html",'<div> <exl-wizard-sub-nav task-filter=::taskCtrl.subNavTaskList><\/exl-wizard-sub-nav> <\/div> <exl-static-text id-code=WEB_RAB_ADDITIONAL_CRITERIA_TASK_TEXT_TOP><\/exl-static-text> <div data-ng-if=::taskCtrl.currentBlockRequest.selectionCriteriaCollection.length> <exl-static-text id-code=WEB_RAB_ADDITIONAL_CRITERIA_LIST_HEADER><h2>Additional Selection Criteria<\/h2><\/exl-static-text> <\/div> <div class=panel data-ng-repeat="selectionCriteria in taskCtrl.currentBlockRequest.selectionCriteriaCollection | orderBy:\'priority\'"> <div class="row collapse"> <div class="small-2 columns"> <button class="transparent icon-button" data-ng-click=taskCtrl.increaseSelectionCriteriaPriority(selectionCriteria) data-ng-disabled=taskCtrl.disableInput><i class="fa fa-lg fa-arrow-up"><span class=exl-screen-reader-text>Increase criteria<\/span><\/i><\/button> <button class="transparent icon-button" data-ng-click=taskCtrl.decreaseSelectionCriteriaPriority(selectionCriteria) data-ng-disabled=taskCtrl.disableInput><i class="fa fa-lg fa-arrow-down"><span class=exl-screen-reader-text>Decrease criteria<\/span><\/i><\/button> <\/div> <div class="small-10 columns"> {{selectionCriteria.priority}} {{::selectionCriteria.customCodeDescription}} <exl-static-text id-code="WEB_BLOCK_REQ_SELECTION_CRIT_CODE_{{::selectionCriteria.customCode | uppercase}}"><\/exl-static-text> <\/div> <\/div> <\/div> <exl-wizard-nav click-button-next=taskCtrl.next()><\/exl-wizard-nav> ');n.put("App/RAB/Views/RABGuaranteeTask.html",'<div class=row> <div class="small-5 columns end"> <exl-block-request-status><\/exl-block-request-status> <\/div> <\/div> <p> <\/p><h3> <exl-static-text id-code=WEB_RAB_GUARANTEE_TASK_HOTEL_INVENTORY_HEADER> Your Block Inventory Assignment <\/exl-static-text> <\/h3> <exl-hotel-item-inventory data=::taskCtrl.hotelItemInventory config-options=::taskCtrl.hotelItemInventoryConfig><\/exl-hotel-item-inventory> <p><\/p> <exl-static-text id-code=WEB_RAB_GUARANTEE_AGREEMENT_HEADER> <h1>Accept Block<\/h1> <\/exl-static-text> <exl-static-text id-code=WEB_RAB_GUARANTEE_AGREEMENT_CCG_TEXT data-ng-if=::taskCtrl.configPolicy.requireCCG> <h2>In order to guarantee your hotel block, indicate your acceptance below and provide a credit card guarantee.<\/h2> <\/exl-static-text> <exl-static-text id-code=WEB_RAB_GUARANTEE_AGREEMENT_TEXT data-ng-if=!taskCtrl.configPolicy.requireCCG> <h2>In order to guarantee your hotel block, indicate your acceptance below and click the Guarantee My Block button.<\/h2> <\/exl-static-text> <hr> <div data-ng-if=::taskCtrl.configPolicy.cancellationAgreement> <exl-static-text id-code=WEB_RAB_GUARANTEE_CANCELLATION_AGREEMENT_HEADER> <h3>Cancellation Policy<\/h3> <\/exl-static-text> <p>{{::taskCtrl.configPolicy.cancellationAgreement}}<\/p> <\/div> <div> <p> <label class=inline> <input name=chkAgreement type=checkbox data-ng-model=taskCtrl.agreement> <i class="fa fa-asterisk text-alert-color"><\/i> <exl-static-text id-code=WEB_RAB_GUARANTEE_AGREEMENT_CANCELLATION_CHECKBOX data-ng-if=::taskCtrl.configPolicy.cancellationAgreement> <strong>I accept my housing block assignment and agree to the cancellation policy.<\/strong> <\/exl-static-text> <exl-static-text id-code=WEB_RAB_GUARANTEE_AGREEMENT_CHECKBOX data-ng-if=!taskCtrl.configPolicy.cancellationAgreement> <strong>I accept my housing block assignment.<\/strong> <\/exl-static-text> <\/label> <\/p> <\/div> <div class=row data-ng-if=::taskCtrl.configPolicy.requireCCG> <div class="small-12 columns"> <exl-payment change-allow-payment=taskCtrl.changeAllowPayment(checked)><\/exl-payment> <\/div> <\/div> <hr> <div class=row> <div class="small-12 columns"> <exl-wizard-nav hide-button-back=true label-button-next=::taskCtrl.labelButtonNext click-button-next=taskCtrl.next()><\/exl-wizard-nav> <\/div> <\/div>');n.put("App/RAB/Views/RABHomeTask.html",'<div class="alert-box alert" data-ng-if=::taskCtrl.blockRequestStatus.isCancelled> <exl-static-text id-code=WEB_RAB_HOME_TASK_STATUS_CANCELLED_TEXT> Your previous request has been cancelled. Follow the steps below to create a new request. <\/exl-static-text> <\/div> <div class="row exl-bot-padding" data-ng-if=!taskCtrl.blockRequestStatus.isNew> <div class="small-5 columns end"> <exl-block-request-status><\/exl-block-request-status> <\/div> <\/div> <div class=row> <div class="small-12 columns"> <exl-static-text id-code=WEB_RAB_HOME_TASK_TEXT granularity=page> <p>Instructional text to inform user about block request process.<\/p> <p>Ready to request your hotel block? Click <strong>&quot;Begin.&quot;<\/strong><\/p> <\/exl-static-text> <\/div> <\/div> <div> <exl-wizard-nav label-button-next=::taskCtrl.labelButtonNext hide-button-next=taskCtrl.hasErrors click-button-next=taskCtrl.next()><\/exl-wizard-nav> <\/div> ');n.put("App/RAB/Views/RABHotelSelectionTask.html",'<div> <exl-wizard-sub-nav task-filter=::taskCtrl.subNavTaskList><\/exl-wizard-sub-nav> <\/div> <exl-static-text id-code=WEB_RAB_HOTEL_SELECT_TASK_TEXT_TOP><\/exl-static-text> <div class=row> <div class="large-7 columns"> <div data-ng-show=::taskCtrl.hotelItemChoices.length><exl-static-text id-code=WEB_RAB_HOTEL_SELECT_CHOICES_HEADER><h2>All Hotel Choices<\/h2><\/exl-static-text><\/div> <table class="table stretch"> <tr> <th><\/th> <th><exl-static-text id-code=WEB_RAB_HOTEL_SELECT_CHOICES_NAME_HEADER>Hotel/Category<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_RAB_HOTEL_SELECT_CHOICES_PRICE_HEADER>Price<\/exl-static-text><\/th> <\/tr> <tr data-ng-repeat="hotelItemChoice in ::taskCtrl.hotelItemChoices | orderBy : [\'hotelName\', \'categoryName\']"> <td><input type=checkbox data-ng-checked=taskCtrl.isHotelItemChoiceSelected(hotelItemChoice.hotelItemId) data-ng-click=taskCtrl.addHotelItemChoice(hotelItemChoice.hotelItemId) data-ng-disabled="taskCtrl.isHotelItemChoiceSelected(hotelItemChoice.hotelItemId) || taskCtrl.disableInput || taskCtrl.isMaxHotelLimitReached()"><\/td> <td><h3><a data-ng-click=taskCtrl.showHotelProfileModal(hotelItemChoice.facilityID)>{{::hotelItemChoice.hotelName}}<br><span class=text-secondary-color>{{::hotelItemChoice.categoryName}}<\/span><\/a><\/h3><\/td> <td> <span data-exl-facility-daily-rates="{hotelItemId: hotelItemChoice.hotelItemId, startDate: taskCtrl.inventoryStartDate, endDate: taskCtrl.inventoryEndDate, displayTotal: false}" data-ng-show=::hotelItemChoice.hotelItemRate.isVariableRate>variable rate<\/span> <span data-ng-show=::!hotelItemChoice.hotelItemRate.isVariableRate>{{::hotelItemChoice.hotelItemRate.singleRate | currency}} / {{::hotelItemChoice.hotelItemRate.doubleRate | currency}}<\/span> <\/td> <\/tr> <\/table> <\/div> <div class="large-5 columns"> <div><exl-static-text id-code=WEB_RAB_HOTEL_SELECT_PREFERENCES_HEADER><h2>Your Hotel Preferences<\/h2><\/exl-static-text><\/div> <div class="panel callout radius" data-ng-repeat="hotelItem in taskCtrl.currentBlockRequest.hotelItemCollection | orderBy:\'priority\'"> <div class="row collapse"> <div class="small-3 columns"> <button class="transparent icon-button" data-ng-click=taskCtrl.increaseHotelItemPriority(hotelItem) data-ng-disabled=taskCtrl.disableInput><i class="fa fa-arrow-up"><span class=exl-screen-reader-text>Increase Priority<\/span><\/i><\/button> <button class="transparent icon-button" data-ng-click=taskCtrl.decreaseHotelItemPriority(hotelItem) data-ng-disabled=taskCtrl.disableInput><i class="fa fa-arrow-down"><span class=exl-screen-reader-text>Decrease Priority<\/span><\/i><\/button> <\/div> <div class="small-8 columns"> <h3>{{hotelItem.priority}}. {{::hotelItem.hotelName}}<\/h3> <span class=text-secondary-color>{{::hotelItem.categoryName}}<\/span> <\/div> <div class="small-1 columns text-right"> <button class=empty data-ng-click=taskCtrl.removeHotelItemChoice(hotelItem) data-ng-disabled=taskCtrl.disableInput><i class="fa fa-remove text-alert-color"><span class=exl-screen-reader-text>Remove<\/span><\/i><\/button> <\/div> <\/div> <\/div> <div class="panel radius" data-ng-repeat="hotelItemSlot in taskCtrl.hotelItemSlots"> <p class=text-center>Hotel Choice #{{taskCtrl.currentBlockRequest.hotelItemCollection.length + $index + 1}} ({{hotelItemSlot.required ? "required" : "optional"}})<\/p> <\/div> <\/div> <\/div> <exl-official-provider><\/exl-official-provider> <exl-wizard-nav click-button-back=taskCtrl.back() click-button-next=taskCtrl.next()><\/exl-wizard-nav> ');n.put("App/RAB/Views/RABRoomNightsTask.html",'<div> <exl-wizard-sub-nav task-filter=::taskCtrl.subNavTaskList><\/exl-wizard-sub-nav> <\/div> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_TASK_TEXT_TOP><\/exl-static-text> <form name=frmRoomNights> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_HEADER><h2>Room Nights Criteria<\/h2><\/exl-static-text> <div class=row> <div class=columns> <label><exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_LABEL_PEAKNIGHTS>Main Event Nights:<\/exl-static-text><\/label> <div class=formvalue> {{::taskCtrl.peakStartDate | date: \'EEE, MMM d, y\'}} - {{::taskCtrl.peakEndDate | date: \'EEE, MMM d, y\'}}<\/div> <\/div> <\/div> <h3 class=exl-top-margin><exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_SELECT_DATES_HEADER>Select Your Block Dates<\/exl-static-text><\/h3> <div class=row data-ng-if=::taskCtrl.datesInitialized> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_FIELDLABEL_ARRIVAL>Arrival Date<\/exl-static-text> <exl-date-picker model=taskCtrl.roomNightStartDate min=::taskCtrl.dateStartMin max=taskCtrl.dateStartMax is-required=true counterpart=taskCtrl.roomNightEndDate highlight-schedule-type-code=SF><\/exl-date-picker> <\/label> <\/div> <div class="medium-4 columns"> <label> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_FIELDLABEL_DEPARTURE>Departure Date<\/exl-static-text> <exl-date-picker model=taskCtrl.roomNightEndDate min=taskCtrl.dateEndMin max=::taskCtrl.dateEndMax is-required=true counterpart=taskCtrl.roomNightStartDate highlight-schedule-type-code=SF><\/exl-date-picker> <\/label> <\/div> <div class="medium-4 columns"><\/div> <\/div> <div class=row data-ng-if=!taskCtrl.regGroupBlockConfigSettings.suggestedHistoricalRoomNightsActive> <div class="medium-12 columns exl-top-margin"> <h3> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_NUMBER_ROOMS_HEADER>How many rooms do you want on the main event nights?<\/exl-static-text> <\/h3> <label> <exl-spinner model=taskCtrl.regGroupBlockConfigSettings.suggestedPeakRoomCount required=true min=taskCtrl.minRoomsRequested(null) max=taskCtrl.maxRoomsRequested()><\/exl-spinner> <\/label> <div data-ng-if=::taskCtrl.isExhibitor> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_NUMBER_ROOMS_EXH_TEXT><p><em>If you exhibited with us at the last show, this number of rooms is pre-filled according to your previous block. You may change it as needed.<\/em><\/p><\/exl-static-text> <\/div> <div data-ng-if=::!taskCtrl.isExhibitor> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_NUMBER_ROOMS_ATT_TEXT><p><em>If you booked housing with us at the last show, this number of rooms is pre-filled according to your previous block. You may change it as needed.<\/em><\/p><\/exl-static-text> <\/div> <\/div> <\/div> <button data-ng-click=taskCtrl.apply() data-ng-disabled=frmRoomNights.$invalid> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_CRITERIA_NUMBER_ROOMS_BUTTON_SUBMIT>Apply<\/exl-static-text> <\/button> <\/form> <div data-ng-show=taskCtrl.currentBlockRequest.roomNightCollection.length> <hr> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_LIST_HEADER><h2>Room Nights<\/h2><\/exl-static-text> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_LIST_TEXT><p>The suggested distribution of room nights is shown below. You may make adjustments as needed.<\/p><\/exl-static-text> <table class="table exl-bot-margin"> <tr> <th><exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_LIST_DATE_HEADER>Date<\/exl-static-text><\/th> <th class=text-center><exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_LIST_ROOMS_QTY_HEADER>Rooms<\/exl-static-text><\/th> <\/tr> <tr data-ng-repeat="roomNight in taskCtrl.currentBlockRequest.roomNightCollection"> <td>{{roomNight.dayDate | date : \'EEE, MMM d yyyy\'}}<\/td> <td class=text-center> <span ng-hide=::taskCtrl.regGroupBlockConfigSettings.suggestedHistoricalRoomNightsActive>{{taskCtrl.getDistributionPercentage(roomNight) | number}}%<\/span> <exl-spinner model=roomNight.quantity required=true min=taskCtrl.minRoomsRequested(roomNight) max=taskCtrl.maxRoomsRequested() is-disabled=::!taskCtrl.configPolicy.allowDistributionEdit><\/exl-spinner> <\/td> <\/tr> <\/table> <\/div> <div data-ng-show=taskCtrl.currentBlockRequest.roomNightCollection.length> <div class=row> <div class="small-12 columns"> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_SPECIAL_REQUEST_HEADER><h2>Special Requests<\/h2><\/exl-static-text> <\/div> <\/div> <div class=row> <div class="small-12 columns"> <textarea ng-model=taskCtrl.currentBlockRequest.specialRequest maxlength=4000 data-exl-char-counter><\/textarea> <\/div> <\/div> <div class=row> <div class="small-12 columns"> <exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_SPECIAL_REQUEST_TEXT><em>Use this space to add any information that would be helpful in fulfilling your requested block.<\/em><\/exl-static-text> <\/div> <\/div> <\/div> <br><br> <exl-wizard-nav click-button-next=taskCtrl.next()><\/exl-wizard-nav>');n.put("App/RAB/Views/RABSummaryTask.html",'<div> <exl-wizard-sub-nav task-filter=::taskCtrl.subNavTaskList><\/exl-wizard-sub-nav> <\/div> <div data-ng-if=::taskCtrl.blockRequestStatus.isInProgress> <exl-static-text id-code=WEB_RAB_SUMMARY_TASK_INP_TEXT> <p>Please review the below information prior to submitting your block request. If you need to make any changes, use the edit button within that section.<\/p> <\/exl-static-text> <\/div> <div data-ng-if=!taskCtrl.blockRequestStatus.isInProgress> <exl-static-text id-code=WEB_RAB_SUMMARY_TASK_SUBMITTED_TEXT> <p>Below is a summary of your submitted block request. If you need to make any changes, use the edit button within that section.<\/p> <\/exl-static-text> <\/div> <div class=row> <div class="large-3 medium-3 columns"> <p> <button type=button class=small data-ng-if=!taskCtrl.blockRequestStatus.isInProgress data-ng-click=taskCtrl.sendConfirmation()> <i class="fa fa-envelope"><\/i> <exl-static-text allow-html=false id-code=WEB_RAB_SUMMARY_BUTTON_SEND_CONFIRMATION>Resend Block Request Confirmation<\/exl-static-text> <\/button> <\/p> <\/div> <div class="large-9 medium-9 columns"> <div class="alert-box warning" data-ng-if=taskCtrl.submittedBlockRequestUpdated> <exl-static-text id-code=WEB_RAB_SUMMARY_ALERTLABEL_RECENT_CHANGES> You have made recent changes to your block request. You may resend your updated block request confirmation at your convenience. <\/exl-static-text> <\/div> <\/div> <\/div> <div> <accordion close-others=false> <accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION1_HEADER>{{::taskCtrl.section1Title}}<\/exl-static-text> <\/accordion-heading> <div class=content> <button type=button class=right data-ng-click="taskCtrl.edit(\'S1\')" data-ng-disabled=::taskCtrl.isBlockRequestEditDisabled> Edit <\/button> <exl-static-text id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION1_CONTENT><p><em>(in order of importance)<\/em><\/p><\/exl-static-text> <table class="table exl-bot-margin"> <tr data-ng-repeat="hotelItem in ::taskCtrl.currentBlockRequest.hotelItemCollection | orderBy:\'priority\'"> <td>{{::hotelItem.priority}}.<\/td> <td>{{::hotelItem.hotelName}} ({{::hotelItem.categoryName}}<\/td> <\/tr> <\/table> <\/div> <\/accordion-group> <accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION2_HEADER>{{::taskCtrl.section2Title}}<\/exl-static-text> <\/accordion-heading> <div class=content> <button type=button class=right data-ng-click="taskCtrl.edit(\'S2\')" data-ng-disabled=::taskCtrl.isBlockRequestEditDisabled> Edit <\/button> <exl-static-text id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION2_CONTENT><p><em>(in order of importance)<\/em><\/p><\/exl-static-text> <table class="table exl-bot-margin"> <tr data-ng-repeat="selectionCriteria in ::taskCtrl.currentBlockRequest.selectionCriteriaCollection | orderBy:\'priority\'"> <td>{{::selectionCriteria.priority}}.<\/td> <td>{{::selectionCriteria.customCodeDescription}} <exl-static-text allow-html=false id-code=WEB_BLOCK_REQ_SELECTION_CRIT_CODE_{{::selectionCriteria.customCode}}><\/exl-static-text><\/td> <\/tr> <\/table> <\/div> <\/accordion-group> <accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION3_HEADER>{{::taskCtrl.section3Title}}<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION3_CONTENT><\/exl-static-text> <button type=button class=right data-ng-click="taskCtrl.edit(\'S3\')" data-ng-disabled=::taskCtrl.isBlockRequestEditDisabled> Edit <\/button> <table class="table exl-bot-margin"> <tr> <th><exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_LIST_DATE_HEADER>Date<\/exl-static-text><\/th> <th><exl-static-text id-code=WEB_RAB_ROOM_NIGHTS_LIST_ROOMS_QTY_HEADER>Rooms<\/exl-static-text><\/th> <\/tr> <tr data-ng-repeat="roomNight in ::taskCtrl.currentBlockRequest.roomNightCollection"> <td>{{::roomNight.dayDate | date : \'EEE, MMM d yyyy\'}}<\/td> <td>{{::roomNight.quantity}}<\/td> <\/tr> <\/table> <exl-static-text id-code=WEB_RAB_SUMMARY_ACCORDION_SECTION3_SPECIAL_REQUEST><h3>Special Requests<\/h3><\/exl-static-text> <p>{{::taskCtrl.currentBlockRequest.specialRequest}}<\/p> <\/div> <\/accordion-group> <\/accordion> <\/div> <div> <exl-wizard-nav hide-button-back=::taskCtrl.hideButtonBack label-button-next=::taskCtrl.labelButtonNext click-button-next=taskCtrl.next() hide-button-dashboard=true><\/exl-wizard-nav> <\/div> ');n.put("App/RegType/Views/RegTypeDirective.html",'<table class="itemtable {{(\'date-\' + regTypeCtrl.dateList.length)}}"> <tbody class=show-for-medium-up> <tr> <th colspan=2 class=datetime><\/th> <th ng-repeat="date in regTypeCtrl.dateList track by date.statusCode" ng-show=!regTypeCtrl.hideRegFees ng-class="\'fee-\' + date.dateType"> <exl-static-text id-code={{date.idCode}} granularity=page additional-label-text="Date Description" associated-field-name="{{date.statusCode + \' - \' + date.description}}"> <b>{{date.description}}<\/b><br>{{date.beginDate | date:\'MMM d\'}} - {{date.endDate | date:\'MMM d\'}} <\/exl-static-text> <\/th> <\/tr> <\/tbody> <tbody ng-repeat="regType in regTypeCtrl.regTypeList track by regType.regTypeCode"> <tr> <td class=item-select> <button class=empty type=button ng-click=regTypeCtrl.select(regType)> <i class=fa data-ng-class="{ \'disabled\': !regTypeCtrl.regTypeEnabled(regType), \'fa-circle-thin\': !regType.isSelected, \'fa-check-circle text-success-color\': regType.isSelected }"> <span class=exl-screen-reader-text> {{ regType.isSelected ? \'\' : \'Not\' }} Selected <\/span> <\/i> <\/button> <\/td> <td class=item-title> <h3> <button class=empty type=button ng-click=regTypeCtrl.select(regType)> {{regTypeCtrl.hideRegTypeCode ? regType.description : regType.regTypeCode + \' - \' + regType.description}} <\/button> <\/h3>  <exl-static-text class=text-left id-code={{regType.idCode}} granularity=page additional-label-text="Registration Description" associated-field-name="{{regType.regTypeCode + \' - \' + regType.description}}" is-visible=regType.showDescription> <\/exl-static-text> <div> <button class="empty small" data-ng-class="regType.showDescription ? \'exl-top-margin-small\' : \'\'" data-ng-click="regType.showDescription = !regType.showDescription" data-exl-static-text-toggle="{idCode: regType.idCode, granularity: \'page\'}"> <i class=fa data-ng-class="regType.showDescription ? \'fa-minus-circle\' : \'fa-plus-circle\'"><\/i> {{regType.showDescription ? \'Less\' : \'More\'}} Info <\/button> <\/div> <div data-ng-if="regType.isSelected && regTypeCtrl.profile.demographics"> <div data-ng-repeat="demo in ::regType.demographics"> <exl-field-detail item=demo profile=regTypeCtrl.profile.demographics is-demographic=::demo.isPick><\/exl-field-detail> <\/div> <\/div> <\/td> <td class="show-for-medium-up item-fee" ng-class="\'fee-\' + fee.dateType" ng-repeat="fee in regType.fees track by fee.statusCode" ng-show=!regTypeCtrl.hideRegFees> {{fee.amount | currency}} <div class=fee-original ng-if="::(fee.amount < fee.oAmt)">{{fee.oAmt | currency}}<\/div> <\/td> <td class="show-for-small-only item-fee" ng-class="\'fee-\' + fee.dateType" ng-repeat="fee in regType.fees track by fee.statusCode" ng-show=!regTypeCtrl.hideRegFees ng-if="fee.dateType === \'current\'"> <button type=button class=empty data-dropdown-toggle=#regTypeCurrencyDetails_{{regType.idCode}}_{{fee.dateType}}> {{fee.amount | currency}} <div class=fee-original ng-if="::(fee.amount < fee.oAmt)">{{fee.oAmt | currency}}<\/div> <\/button> <div id=regTypeCurrencyDetails_{{regType.idCode}}_{{fee.dateType}} class="medium f-dropdown exl-no-padding content"> <table class=table style="font-weight: normal;"> <tr> <td ng-repeat="date in regTypeCtrl.dateList track by date.statusCode" ng-class="\'fee-\' + date.dateType"> <exl-static-text id-code={{date.idCode}} granularity=page additional-label-text="Date Description" associated-field-name="{{date.statusCode + \' - \' + date.description}}"> <b>{{date.description}}<\/b><br>{{date.beginDate | date:\'MMM d\'}} - {{date.endDate | date:\'MMM d\'}} <\/exl-static-text> <\/td> <\/tr> <tr> <td ng-repeat="fee in regType.fees track by fee.statusCode" ng-class="\'fee-\' + date.dateType"> {{fee.amount | currency}} <div class=fee-original ng-if="::(fee.amount < fee.oAmt)">{{fee.oAmt | currency}}<\/div> <\/td> <\/tr> <\/table> <\/div> <\/td> <\/tr> <\/tbody> <\/table>');n.put("App/RegType/Views/RegTypeTask.html",'<exl-static-text id-code=WEB_ATT_REGTYPE_P2><p>Please select your registration type <\/p><\/exl-static-text> <div data-ng-form=frmRegType> <accordion close-others=false ng-if="taskCtrl.config.regTypeGroupDisplay && taskCtrl.config.regTypeGroupDisplay != \'NOACC\' && taskCtrl.regTypeInfo.regTypeGroups.length > 1"> <accordion-group ng-repeat="regTypeGroup in taskCtrl.regTypeInfo.regTypeGroups" is-open=regTypeGroup.isOpen> <accordion-heading> <exl-static-text id-code="{{\'LAYOUT_GROUP_HEADER_\' + regTypeGroup.layoutGroupId}}" granularity=page> <\/exl-static-text> <\/accordion-heading> <exl-reg-type date-list=taskCtrl.regTypeInfo.dateList reg-type-list=regTypeGroup.regTypeList hide-reg-fees=taskCtrl.config.hideRegFees hide-reg-type-code=taskCtrl.config.hideCodeInRegTypeControl on-select=taskCtrl.select(regType) is-reg-type-enabled=taskCtrl.isRegTypeEnabled(regType) profile=taskCtrl.profile> <\/exl-reg-type> <\/accordion-group> <\/accordion> <div ng-repeat="regTypeGroup in taskCtrl.regTypeInfo.regTypeGroups" ng-if="!taskCtrl.config.regTypeGroupDisplay || taskCtrl.config.regTypeGroupDisplay === \'NOACC\' || taskCtrl.regTypeInfo.regTypeGroups.length == 1"> <exl-static-text id-code="{{\'LAYOUT_GROUP_HEADER_\' + regTypeGroup.layoutGroupId}}" granularity=page><\/exl-static-text> <exl-reg-type date-list=taskCtrl.regTypeInfo.dateList reg-type-list=regTypeGroup.regTypeList hide-reg-fees=taskCtrl.config.hideRegFees hide-reg-type-code=taskCtrl.config.hideCodeInRegTypeControl on-select=taskCtrl.select(regType) is-reg-type-enabled=taskCtrl.isRegTypeEnabled(regType) profile=taskCtrl.profile> <\/exl-reg-type> <\/div> <\/div> <exl-wizard-nav click-button-next=taskCtrl.next()><\/exl-wizard-nav>');n.put("App/RegType/Views/RegTypeWarning.html",'<p class="label warning"><i class="fa fa-warning fa-fw"><\/i>Warning<\/p> <p> Are you sure you want to change your registration type? <\/p>');n.put("App/SelfReg/Views/SelfRegBadgePreviewTask.html",'<p class=text-center> <img style=max-height:360px; ng-src={{taskCtrl.badgeSrc}} alt="Badge Preview" title="Badge Preview"> <\/p> <p class=text-center> <button class="large selfregbutton dark" data-ng-show=taskCtrl.editRegFlowCode data-ng-click=taskCtrl.edit()><i class="fa fa-pencil"><\/i> Edit Registration<\/button> <button class="large selfregbutton dark" data-ng-click=taskCtrl.print()><i class="fa fa-print"><\/i> Print Badge<\/button> <\/p> <div> <exl-wizard-nav hide-button-next=true click-button-back=taskCtrl.back() always-enable-button-back=true><\/exl-wizard-nav> <\/div>');n.put("App/SelfReg/Views/SelfRegBadgePrintTask.html",'<exl-self-reg-meta id=SELFREG_PRINT><\/exl-self-reg-meta> <input type=hidden id=RegistrantIdSaved name=RegistrantIdSaved value={{taskCtrl.reg.registrantId}}> <div class=text-center style=margin-top:80px> <div data-ng-show=taskCtrl.badgePrinting> <exl-static-text id-code=SELF_BADGEPRINT_P1> <h2 class="exl-top-margin exl-bot-margin"> Your badge is now printing.<br><br>Please have your photo ID ready and wait for the attendant to call your name. <\/h2> <\/exl-static-text> <p data-ng-show=taskCtrl.badgePickupStation> Your badge is printing at badge pickup station: {{taskCtrl.badgePickupStation}} <\/p> <\/div> <div data-ng-show=taskCtrl.printLimitExceeded> <exl-static-text id-code=SELF_BADGEPRINT_P2> <h2 class="exl-top-margin exl-bot-margin">Your badge has already been printed, and can\'t be printed again.<\/h2> <\/exl-static-text> <\/div> <button class="large selfregbutton dark exl-top-margin" data-ng-click=taskCtrl.printAnother() data-ng-if=::taskCtrl.isExhibitor> Print Another Person <\/button> <button class="large selfregbutton dark exl-top-margin" data-ng-click=taskCtrl.logout()>Logout<\/button> <\/div> <div> <exl-wizard-nav hide-button-next=true click-button-back=taskCtrl.back() always-enable-button-back=true><\/exl-wizard-nav> <\/div>');n.put("App/SelfReg/Views/SelfRegExhibitorSelectTask.html",'<exl-static-text id-code=SELF_EXH_SELECT_LB1> <h2>If you wish to Print your badge or Edit your existing registration, please select yourself from the booth personnel listed below.<\/h2> <\/exl-static-text>  <div data-ng-show=taskCtrl.exhibitorList class=text-center> <div data-ng-show=taskCtrl.exhibitorList.length class=exl-top-margin> <exl-static-text id-code=SELF_EXH_SELECT_LB3> Registered Exhibitor Personnel <\/exl-static-text> <table class="table table-center exl-top-margin exl-bot-margin" style=width:70%;> <tr> <th><\/th> <th><a ng-click="predicate = \'lastName\'; reverse=!reverse">Last Name<\/a><\/th> <th><a ng-click="predicate = \'firstName\'; reverse=!reverse">First Name<\/a><\/th> <th><a ng-click="predicate = \'suffix\'; reverse=!reverse">Suffix<\/a><\/th> <\/tr> <tr data-ng-repeat="exhibitor in taskCtrl.exhibitorList | orderBy:predicate:reverse" style="border-bottom:1px solid #ccc"> <td> <button class="dark selfregbutton" data-ng-click=taskCtrl.select(exhibitor)>Select<\/button> <\/td> <td>{{exhibitor.lastName}}<\/td> <td>{{exhibitor.firstName}}<\/td> <td>{{exhibitor.suffix}}<\/td> <\/tr> <\/table> <\/div> <div data-ng-show="taskCtrl.exhibitorList.length <= 0" style=margin-top:60px> <exl-static-text id-code=SELF_EXH_SELECT_LB2> <h2>No existing Exhibitors were found for this company.<\/h2> <\/exl-static-text> <\/div> <\/div> <div> <exl-wizard-nav hide-button-next=true><\/exl-wizard-nav> <\/div>');n.put("App/SelfReg/Views/SelfRegFindRegResultsTask.html",'<div> <div data-ng-show=taskCtrl.results> <div data-ng-show="taskCtrl.results.length == 1"> <exl-static-text id-code=SELF_REGRESULTS_ONE> <h2 class="exl-top-margin exl-bot-margin">Is this you?<\/h2> <\/exl-static-text> <h1 class="exl-top-margin regresultname"> {{taskCtrl.results[0].firstName + " " + taskCtrl.results[0].lastName + " " + taskCtrl.results[0].suffix}} <br> {{taskCtrl.results[0].company + " " + taskCtrl.results[0].company2}}<br>  {{taskCtrl.results[0].city}}<span data-ng-if="taskCtrl.results[0].city && (taskCtrl.results[0].stateCode || taskCtrl.results[0].countryCode)">, <\/span> {{taskCtrl.results[0].stateCode}}<span data-ng-if="taskCtrl.results[0].stateCode && taskCtrl.results[0].countryCode">, <\/span> {{taskCtrl.results[0].countryCode}} {{taskCtrl.results[0].zipCode}}  <\/h1> <\/div> <div data-ng-show="taskCtrl.results.length <= 0" class=exl-top-margin style="padding:10px 0 40px;"> <exl-static-text id-code=SELF_REGRESULTS_NONE> <h2 class="text-alert-color exl-top-margin exl-bot-margin">Your registration was not found.<br><br>Please try again or proceed to a staffed registration counter for assistance.<\/h2> <\/exl-static-text> <\/div> <div data-ng-show="taskCtrl.results.length > 1"> <exl-static-text id-code=SELF_REGRESULTS_MULTIPLE> <h2>Please find yourself below and click Select.<\/h2> <\/exl-static-text> <table class="table table-center exl-top-margin exl-bot-margin"> <tr> <th><\/th> <th>First Name<\/th> <th>Last Name<\/th> <th>Suffix<\/th> <th>Company<\/th> <th>City<\/th> <th>State<\/th> <th>Country<\/th> <\/tr> <tr data-ng-repeat="result in taskCtrl.results" style="border-bottom:1px solid #ccc"> <td> <button class="dark selfregbutton" data-ng-click=taskCtrl.select(result)>Select<\/button> <\/td> <td>{{result.firstName}}<\/td> <td>{{result.lastName}}<\/td> <td>{{result.suffix}}<\/td> <td>{{result.company}}<\/td> <td>{{result.city}}<\/td> <td>{{result.stateCode}}<\/td> <td>{{result.countryCode}}<\/td> <\/tr> <\/table> <\/div> <\/div> <\/div> <p class="text-center exl-top-margin"> <button class="secondary large selfregbutton dark" data-ng-click=taskCtrl.back()> Try Again <\/button> <button class="large selfregbutton dark" data-ng-show="taskCtrl.results.length == 1" data-ng-click=taskCtrl.select(taskCtrl.results[0])> Yes <\/button> <\/p> ');n.put("App/SelfReg/Views/SelfRegFindRegTask.html",'<div data-ng-hide=taskCtrl.searchOption data-ng-init="focusBarcodeEarly=true;" class=FindRegHome> <exl-static-text id-code=SELF_FINDREG_P1> <\/exl-static-text> <div class=row style=padding-top:60px;> <div class="text-center medium-4 columns end"> <h2> Please Scan Your Barcode Now <\/h2> <button class=transparent data-ng-click="taskCtrl.setSearchOption(\'barcode\'); focusBarcode=true;"> <p> <img data-ng-src=RefFiles/scanbarcodeQR.png class=barcodeimg title=Barcode alt=Barcode> <\/p> <\/button> <form data-ng-submit=taskCtrl.searchByBarcode()> <input type=number style="opacity: 0;" min=0 exl-set-focus=focusBarcodeEarly data-ng-model=taskCtrl.inputBarcode> <\/form> <\/div> <div class="text-center medium-4 columns end" style=margin-top:100px;> <h2>&mdash;OR&mdash;<\/h2> <\/div> <div class="medium-4 columns end" style=margin-top:30px;> <button class="selfRegFind selfregbutton dark" data-ng-click="taskCtrl.setSearchOption(\'name\'); focusName=true;"> <h2>  <i class="fa fa-search fa-6"><\/i>&nbsp&nbsp Search By Name <\/h2> <\/button> <button class="selfRegFind selfregbutton dark" data-ng-click="taskCtrl.setSearchOption(\'id\'); focusId=true;"> <h2>  <i class="fa fa-search fa-6"><\/i>&nbsp&nbsp Search By ID <\/h2> <\/button> <\/div> <\/div> <\/div> <div data-ng-show="taskCtrl.searchOption == \'barcode\'"> <div> <exl-static-text id-code=SELF_BYBARCODE_P1> <h2>Please scan your barcode now.<\/h2> <\/exl-static-text> <p style=margin-top:40px> <img data-ng-src=RefFiles/scanbarcodeQR.png width=250 title=Scan alt=Scan> <\/p> <form data-ng-submit=taskCtrl.searchByBarcode()> <div class=row> <div class="medium-4 columns medium-centered"> <p><input type=number min=0 exl-set-focus=focusBarcode data-ng-model=taskCtrl.inputBarcode><\/p> <p> <button type=button class="large selfregbutton dark" data-ng-click=taskCtrl.searchByBarcode()> Find <\/button> <\/p> <\/div> <\/div> <\/form> <\/div> <\/div> <div data-ng-show="taskCtrl.searchOption == \'name\'"> <exl-static-text id-code=SELF_BYNAME_P1> <h2>Please enter your first initial and last name below.<\/h2> <\/exl-static-text> <div class="row exl-top-margin exl-bot-margin"> <div class="medium-3 columns medium-centered" style=min-width:220px> <form> <label> <exl-static-text allow-html=false id-code=SELF_BYNAME_LB1> First Initial: <\/exl-static-text> <\/label> <input type=text exl-set-focus=focusName data-ng-model=taskCtrl.inputFirstName maxlength=1> <label> <exl-static-text allow-html=false id-code=SELF_BYNAME_LB2> Last Name: <\/exl-static-text> <\/label> <input type=text data-ng-model=taskCtrl.inputLastName> <p class=exl-top-margin> <button class="large selfregbutton dark" data-ng-click=taskCtrl.searchByName()> Find <\/button> <\/p> <\/form> <\/div> <\/div> <\/div> <div data-ng-show="taskCtrl.searchOption == \'id\'"> <exl-static-text id-code=SELF_BYID_P1> <h2>Please enter your Registrant ID below.<\/h2> <\/exl-static-text> <div class="row exl-top-margin exl-bot-margin"> <div class="medium-3 columns medium-centered" style="padding:20px 0;"> <label> <exl-static-text allow-html=false id-code=SELF_BYID_LB1> Registrant ID: <\/exl-static-text> <\/label> <form data-ng-submit=taskCtrl.searchById()> <input type=number min=0 exl-set-focus=focusId data-ng-model=taskCtrl.inputId> <p class="text-center exl-top-margin"> <button type=button class="large selfregbutton dark" data-ng-click=taskCtrl.searchById()> Find <\/button> <\/p> <\/form> <\/div> <\/div> <\/div> <div> <exl-wizard-nav hide-button-next=true click-button-back="focusBarcodeEarly=true; taskCtrl.back();" always-enable-button-back=true><\/exl-wizard-nav> <\/div> ');n.put("App/SelfReg/Views/SelfRegIsRegisteredTask.html",'<h2 class=text-center style=margin-top:80px> <exl-static-text allow-html=false id-code=SELF_ISREGISTERED_P1> Have you pre-registered? <\/exl-static-text> <\/h2> <p class=text-center style=margin-top:40px;> <button class="large selfregbutton dark" data-ng-click=taskCtrl.onYes()> Yes<\/button> <button class="large selfregbutton dark" data-ng-click=taskCtrl.onNo()> No<\/button> <\/p> <div> <exl-wizard-nav hide-button-next=true click-button-back=taskCtrl.back() always-enable-button-back=true><\/exl-wizard-nav> <\/div>');n.put("App/SelfReg/Views/SelfRegPaymentTask.html",'<h2 class=text-center> <i class="fa fa-lg fa-spinner fa-pulse"><\/i> Processing, please wait... <\/h2> <div> <exl-wizard-nav hide-button-next=true><\/exl-wizard-nav> <\/div>');n.put("App/ShowItem/Views/ShowItemAddButtonDirective.html",'<div ng-init="showItem = ShowItemAddButton.showItem"> <button ng-if="::(showItem.maxQtyPerReg === 1 || showItem.showItemTypeCode === \'PKG\')" class="small radius expand" ng-click=ShowItemAddButton.processShowItem(showItem) ng-disabled="showItem.conflict || (showItem.qtyCOM === 1 && !showItem.isFree) || (showItem.limitQty && (showItem.usedQty >= showItem.limitQty)) || (ShowItemAddButton.isEmbedded && !ShowItemAddButton.isRegOpen)" ng-class="{\'dark\': !showItem.qtyINP && !showItem.qtyCOM, \'warning\': showItem.qtyINP, \'success\' : !showItem.qtyINP && showItem.qtyCOM}">  <span ng-if="!showItem.qtyINP && !showItem.qtyCOM">Add<\/span> <i class="fa fa-check" ng-if="showItem.qtyCOM && !showItem.qtyINP"><\/i> <i class="fa fa-shopping-cart" ng-if=showItem.qtyINP><\/i> <span ng-if="showItem.qtyINP || showItem.qtyCOM">{{showItem.qtyINP || showItem.qtyCOM}}<\/span> <\/button> <button ng-if="::(showItem.maxQtyPerReg !== 1 && showItem.showItemTypeCode !== \'PKG\')" type=button class="small radius expand" data-dropdown-toggle=#showItemAdd_{{::showItem.showItemId}} ng-click="showItem.data = { qty: showItem.qtyINP > 0 ? showItem.qtyINP : 1}" ng-disabled="showItem.conflict || (showItem.qtyCOM && (showItem.qtyCOM === showItem.maxQtyPerReg)) || (showItem.limitQty > 0 && (showItem.usedQty >= showItem.limitQty)) || (ShowItemAddButton.isEmbedded && !ShowItemAddButton.isRegOpen)" ng-class="{\'dark\': !showItem.qtyINP && !showItem.qtyCOM, \'warning\': showItem.qtyINP, \'success\' : !showItem.qtyINP && showItem.qtyCOM}">  <span ng-if="!showItem.qtyINP && !showItem.qtyCOM">Add<\/span> <i class="fa fa-check" ng-if="showItem.qtyCOM && !showItem.qtyINP"><\/i> <i class="fa fa-shopping-cart" ng-if=showItem.qtyINP><\/i> <span ng-if="showItem.qtyINP || showItem.qtyCOM">{{showItem.qtyINP || showItem.qtyCOM}}<\/span> <\/button> <div ng-if="::(showItem.maxQtyPerReg !== 1 && showItem.showItemTypeCode !== \'PKG\') && showItem.data" id=showItemAdd_{{::showItem.showItemId}} class="small f-dropdown content" style="z-index: 10000;" ng-click="ShowItemAddButton.stopPropagation(showItem, $event)"> <div ng-if=::showItem.maxQtyPerReg>{{::showItem.maxQtyPerReg}} allowed per person<\/div> <div ng-if="showItem.qtyCOM > 0">you have {{showItem.qtyCOM}} already<\/div> <exl-spinner min=0 max="showItem.maxQtyPerReg === 0 ? 100 : showItem.maxQtyPerReg - showItem.qtyCOM" model=showItem.data.qty><\/exl-spinner> <button type=button class="small dark radius" ng-click=ShowItemAddButton.clickAdd(showItem)> OK <\/button> <button type=button class="small secondary radius" ng-click=ShowItemAddButton.exitAddShowItem(showItem)> Cancel <\/button> <\/div> <\/div>');n.put("App/ShowItem/Views/ShowItemDemographic.html",'<a ng-if=ShowItemDemographic.enableDemographicModal ng-click=ShowItemDemographic.showDemographicModal()> <i class="fa fa-pencil"><\/i> <\/a> ');n.put("App/ShowItem/Views/ShowItemDemographicModal.html",'<div> <exl-static-text id-code=WEB_ATT_SHOWITEM_DEMOGRAPHIC_MODAL>Please answer the following questions.<\/exl-static-text> <form name=formShowItemDemographics novalidate ng-init=modalCtrl.setFormScope(this)> <div ng-repeat="fd in modalCtrl.fieldDetailList"> <exl-field-detail item=fd profile=modalCtrl.profile.demographics is-demographic=true><\/exl-field-detail> <\/div> <\/form> <\/div> ');n.put("App/ShowItem/Views/ShowItemDetail.html",'<div class=row ng-if="modalCtrl.showItem.startDate && modalCtrl.settings.detailVisible_Date"> <div class="medium-12 columns"> <h3 ng-if=modalCtrl.isMultiDay> {{modalCtrl.showItem.startDate | date:\'fullDate\'}} {{modalCtrl.showItem.startDate | date:\'shortTime\'}} - <br class=show-for-small-only> {{modalCtrl.showItem.endDate | date:\'fullDate\'}} {{modalCtrl.showItem.endDate | date:\'shortTime\'}} <\/h3> <h3 ng-if=!modalCtrl.isMultiDay> {{modalCtrl.showItem.startDate | date:\'fullDate\'}} {{modalCtrl.showItem.startDate | date:\'shortTime\'}} - {{modalCtrl.showItem.endDate | date:\'shortTime\'}} <\/h3> <\/div> <\/div> <div class=row> <div class="medium-4 columns"> <div class=vertDivide> <div ng-if="modalCtrl.showItem.speakers.length && modalCtrl.settings.detailVisible_Speaker"> <h3 class=infoheader>Speakers<\/h3> <p> <span ng-repeat="speaker in modalCtrl.showItem.speakers"> {{speaker.speakerName}}{{$last ? \'\' : \', \'}} <\/span> <\/p> <\/div>  <div class=show-for-medium-up> <div ng-if="modalCtrl.showItem.LimitQty > 0 && modalCtrl.settings.detailVisible_AvailableQty"> <p><strong>{{modalCtrl.showItem.UsedQty}} of {{modalCtrl.showItem.LimitQty}} sold<\/strong><\/p> <\/div> <div ng-if="modalCtrl.showItem.showItemTypeDescription && modalCtrl.settings.detailVisible_ShowItemTypeCode"> <h3 class=infoheader>Type<\/h3> <p>{{modalCtrl.showItem.showItemTypeDescription}}<\/p> <\/div> <div ng-if="modalCtrl.showItem.categories.length && modalCtrl.settings.detailVisible_Category"> <h3 class=infoheader>Categories<\/h3> <p> <span ng-repeat="category in modalCtrl.showItem.categories"> {{category.description4}}{{category.description4 ? \', \' : \'\'}}{{category.description3}}{{category.description3 ? \', \' : \'\'}}{{category.description2}}{{category.description2 ? \', \' : \'\'}}{{category.description1}} <\/span> <\/p> <\/div> <div ng-if="modalCtrl.showItem.tracks.length && modalCtrl.settings.detailVisible_Track"> <h3 class=infoheader>Tracks<\/h3> <p> <span ng-repeat="track in modalCtrl.showItem.tracks"> {{track.description}}{{$last ? \'\' : \', \'}} <\/span> <\/p> <\/div> <div ng-if="modalCtrl.showItem.maxQtyPerReg > 0 && modalCtrl.settings.detailVisible_MaxQtyPerReg"> <h3 class=infoheader>Max Qty Per Registrant<\/h3> <p>{{modalCtrl.showItem.maxQtyPerReg}}<\/p> <\/div> <\/div> <\/div> <\/div> <div class="medium-8 columns">  <exl-show-item-pricing inline=true ng-hide="(modalCtrl.registrant && modalCtrl.registrant.regTypeCode) || (modalCtrl.settings.hideShowItemFees)"><\/exl-show-item-pricing> <div ng-show="!modalCtrl.settings.hideShowItemFees && (modalCtrl.registrant || modalCtrl.pricingProfile)"> <h3 class=infoheader>Fees<\/h3> <p> <table class="table itemtable"> <tr> <th ng-repeat="date in modalCtrl.dateList" class=fee-{{date.dateType}}> <exl-static-text id-code={{date.id-code}}> <b>{{date.description}}<\/b><br>{{date.beginDate | date:\'MMM d\'}} - {{date.endDate | date:\'MMM d\'}} <\/exl-static-text> <\/th> <\/tr> <tr> <td ng-repeat="fee in modalCtrl.showItem.fees" class="item-fee fee-{{fee.dateType}}"> {{fee.amount | currency}} <div class=fee-original ng-if="::(fee.amount < fee.oAmt)">{{::fee.oAmt | currency}}<\/div> <\/td> <\/tr> <\/table> <\/p> <\/div>  <div ng-if="modalCtrl.settings.detailVisible_HTMLDescription && modalCtrl.showItem.htmlDescription"> <h3 class=infoheader>Description<\/h3> <span data-ng-bind-html=modalCtrl.showItem.htmlDescription><\/span> <\/div>  <div class=show-for-small-only> <div ng-if="modalCtrl.showItem.LimitQty > 0 && modalCtrl.settings.detailVisible_AvailableQty"> <p>{{modalCtrl.showItem.UsedQty}} of {{modalCtrl.showItem.LimitQty}} sold<\/p> <\/div> <div ng-if="modalCtrl.showItem.showItemTypeDescription && modalCtrl.settings.detailVisible_ShowItemTypeCode"> <h3 class=infoheader>Type<\/h3> <p><span>{{modalCtrl.showItem.showItemTypeDescription}}<\/span><\/p> <\/div> <div ng-if="modalCtrl.showItem.categories.length && modalCtrl.settings.detailVisible_Category"> <h3 class=infoheader>Categories<\/h3> <p> <span ng-repeat="category in modalCtrl.showItem.categories"> {{category.description4}} {{category.description4 ? \', \' : \'\'}} {{category.description3}} {{category.description3 ? \', \' : \'\'}} {{category.description2}} {{category.description2 ? \', \' : \'\'}} {{category.description1}} <\/span> <\/p> <\/div> <div ng-if="modalCtrl.showItem.tracks.length && modalCtrl.settings.detailVisible_Track"> <h3 class=infoheader>Tracks<\/h3> <p> <span ng-repeat="track in modalCtrl.showItem.tracks"> {{track.description}}, <\/span> <\/p> <\/div> <div ng-if="modalCtrl.showItem.maxQtyPerReg > 0 && modalCtrl.settings.detailVisible_MaxQtyPerReg"> <h3 class=infoheader>Max Qty Per Registrant<\/h3> <p>{{modalCtrl.showItem.maxQtyPerReg}}<\/p> <\/div> <\/div> <div class=row> <div class="small-8 medium-4 small-centered columns exl-top-padding exl-bot-padding"> <exl-show-item-add-button show-item=modalCtrl.showItem registrant=modalCtrl.registrant><\/exl-show-item-add-button> <\/div> <\/div> <\/div> <\/div> ');n.put("App/ShowItem/Views/ShowItemFilters.html",'<accordion close-others=false> <accordion-group ng-repeat="filter in modalCtrl.filters"> <accordion-heading> {{filter.displayName}} <span class="label success round right" ng-if=filter.selecteditems.length>{{filter.selecteditems.length}}<\/span> <\/accordion-heading> <exl-select-list itemlist=filter.filterItems selecteditems=filter.selecteditems gridcolumns={{filter.displayColumnCount}} hide-filter=!filter.isSpeakerFilter> <\/exl-select-list> <\/accordion-group> <\/accordion> ');n.put("App/ShowItem/Views/ShowItemList.html"," <div class=\"row small-collapse medium-uncollapse\"> <div class=columns> <table class=\"itemtable {{::('date-' + ShowItemList.dateList.length + (ShowItemList.settings.enableLikes ? '-like' : '' ))}}\"> <tbody ng-repeat=\"timeSlot in ShowItemList.group.timeSlots track by timeSlot.startDate + timeSlot.endDate\" ng-if=timeSlot.showItems.length>  <tr class=show-for-medium-up> <th colspan=2 class=datetime ng-if=::!timeSlot.isMultipleDay> {{::timeSlot.startDate | date:'fullDate'}} {{::timeSlot.startDate | date:'shortTime'}} {{::timeSlot.startDate ? '-' : ''}} {{::timeSlot.endDate | date:'shortTime'}} <\/th> <th colspan=2 class=datetime ng-if=::timeSlot.isMultipleDay> {{::timeSlot.startDate | date:'fullDate'}} {{::timeSlot.startDate | date:'shortTime'}} {{::timeSlot.startDate ? '-' : ''}} <br> {{::timeSlot.endDate | date:'fullDate'}} {{::timeSlot.endDate | date:'shortTime'}} <\/th> <th ng-repeat=\"date in ::ShowItemList.dateList track by date.statusCode\" ng-if=\"!ShowItemList.settings.hideShowItemFees && ((ShowItemList.registrant && ShowItemList.registrant.regTypeCode) || ShowItemList.pricingProfile)\" class=fee-{{::date.dateType}}> <exl-static-text id-code=\"{{::('WEB_SHOWITEM_DATESTATUS_HEADER_' + date.statusCode)}}\"> <b ng-bind=::date.description><\/b> <br> <span style=\"white-space: nowrap;\" ng-bind=\"::date.beginDate | date:'MMM d'\"><\/span> &ndash; <span style=\"white-space: nowrap;\" ng-bind=\"::date.endDate | date:'MMM d'\"><\/span> <\/exl-static-text> <\/th> <th class=text-center ng-if=::ShowItemList.settings.enableLikes>Favorite<\/th> <\/tr> <tr class=\"conflict show-for-medium-up hide-for-small\" ng-if=timeSlot.conflicts.length> <th colspan=\"{{::(3 + ShowItemList.dateList.length)}}\"> <span class=\"left exl-top-padding-tiny\"><exl-static-text allow-html=false id-code=SHOWITEM_TIMESLOT_CONFLICT>You already have item(s) during this timeslot:<\/exl-static-text><\/span> <div class=exl-criteria> <span ng-repeat=\"conflict in timeSlot.conflicts\">{{conflict.description}}<\/span> <\/div> <\/th> <\/tr> <tr class=show-for-small-only> <th colspan=\"{{::(3 + ShowItemList.dateList.length)}}\" ng-if=::!timeSlot.isMultipleDay class=show-for-small-only> <b ng-if=::timeSlot.startDate>{{::timeSlot.startDate | date:'fullDate'}} {{::timeSlot.startDate | date:'shortTime'}} - {{::timeSlot.endDate | date:'shortTime'}}<\/b> <\/th> <th colspan=\"{{::(3 + ShowItemList.dateList.length)}}\" ng-if=::timeSlot.isMultipleDay class=show-for-small-only> {{::timeSlot.startDate | date:'fullDate'}} {{::timeSlot.startDate | date:'shortTime'}} {{::timeSlot.startDate ? '-' : ''}} <br> {{::timeSlot.endDate | date:'fullDate'}} {{::timeSlot.endDate | date:'shortTime'}} <\/th> <\/tr> <tr class=\"conflict show-for-small-only\" ng-if=timeSlot.conflicts.length> <th colspan=4 class=show-for-small-only> <span class=\"left exl-top-padding-tiny\"> <exl-static-text allow-html=false id-code=SHOWITEM_TIMESLOT_CONFLICT>You filled this timeslot with:<\/exl-static-text><\/span> <div class=exl-criteria> <span ng-repeat=\"conflict in timeSlot.conflicts\">{{conflict.description}}<\/span> <\/div> <\/th> <\/tr> <tr ng-repeat=\"showItem in timeSlot.showItems track by showItem.showItemTreeId + showItem.showItemCode\" exl-show-item-row=\"\" show-item=showItem settings=::ShowItemList.settings enable-show-detail=::ShowItemList.enableShowDetail registrant=ShowItemList.registrant pricing-profile=ShowItemList.pricingProfile date-list=::ShowItemList.dateList hide-show-item-fees=::ShowItemList.settings.hideShowItemFees enable-likes=::ShowItemList.settings.enableLikes> <\/tr> <\/tbody> <\/table> <\/div> <\/div> ");n.put("App/ShowItem/Views/ShowItemPricingDirective.html",' <a class="button small transparent" ng-click=ShowItemPricing.click()> Pricing Options <i class="fa fa-fw fa-caret-down right"><\/i> <\/a> <div ng-if=ShowItemPricing.showInline> <exl-static-text id-code=WEB_ATT_SHOWITEM_PRICING>To view pricing for sessions and events, choose options below.<\/exl-static-text> <form name=formPricing novalidate ng-init=ShowItemPricing.setFormScope(this)> <div ng-repeat="fd in ShowItemPricing.fieldDetailList"> <exl-field-detail item=fd profile=ShowItemPricing.pricingProfile is-demographic=true><\/exl-field-detail> <\/div> <\/form> <button type=button ng-click=ShowItemPricing.savePricingProfile(true)>Save Pricing Options<\/button> <\/div> ');n.put("App/ShowItem/Views/ShowItemPricingModal.html",'<div> <exl-static-text id-code=WEB_ATT_SHOWITEM_PRICING_MODAL>We need more information to display prices.<\/exl-static-text> <form name=formPricing novalidate ng-init=modalCtrl.setFormScope(this)> <div ng-repeat="fd in modalCtrl.fieldDetailList"> <exl-field-detail item=fd profile=modalCtrl.pricingProfile is-demographic=true><\/exl-field-detail> <\/div> <\/form> <\/div> ');n.put("App/ShowItem/Views/ShowItemQuickSearchDirective.html","<button class=radius ng-class=\"{'active' : ShowItemQuickSearch.filter.isActive}\"> <img exl-ref-file-url={{ShowItemQuickSearch.filter.icon}}> <div class>{{ShowItemQuickSearch.filter.displayName}}<\/div> <\/button> ");n.put("App/ShowItem/Views/ShowItemRowDirective.html",'<td class=item-select ng-init="::showItem = ShowItemRow.showItem"> <exl-show-item-add-button show-item=::ShowItemRow.showItem registrant=::ShowItemRow.registrant><\/exl-show-item-add-button> <\/td> <td class=item-title> <h3 ng-if=::ShowItemRow.enableShowDetail> <a ng-click=ShowItemRow.showDetail(showItem)>{{::(ShowItemRow.settings.detailVisible_ShowItemCodeInHeader ? showItem.showItemCode + \' - \' + showItem.description : showItem.description)}}<\/a> <small class=sold-out ng-if="!showItem.qtyINP && (showItem.limitQty > 0 && (showItem.usedQty >= showItem.limitQty))"> <em>&mdash;Sold Out&mdash;<\/em><\/small> <exl-show-item-demographic show-item=showItem registrant=ShowItemRow.registrant><\/exl-show-item-demographic> <\/h3> <h3 ng-if=::!ShowItemRow.enableShowDetail> {{::(ShowItemRow.settings.detailVisible_ShowItemCodeInHeader ? showItem.showItemCode + \' - \' + showItem.description : showItem.description)}} <small class=sold-out ng-if="!showItem.qtyINP && (showItem.limitQty > 0 && (showItem.usedQty >= showItem.limitQty))"> <em>&mdash;Sold Out&mdash;<\/em><\/small> <exl-show-item-demographic show-item=showItem registrant=ShowItemRow.registrant><\/exl-show-item-demographic> <\/h3> <\/td> <td class="show-for-medium-up item-fee fee-{{::fee.dateType}}" ng-repeat="fee in ::showItem.fees track by showItem.showItemId + fee.statusCode" ng-show="::(!ShowItemRow.hideShowItemFees && ((ShowItemRow.registrant && ShowItemRow.registrant.regTypeCode) || ShowItemRow.pricingProfile))"> {{::fee.amount | currency}} <div class=fee-original ng-if="::(fee.amount < fee.oAmt)">{{::fee.oAmt | currency}} <\/div> <\/td> <td class="show-for-small-only item-fee fee-{{::showItem.currentFee.dateType}}" ng-show="::(!ShowItemRow.hideShowItemFees && (ShowItemRow.registrant || ShowItemRow.pricingProfile))"> <button type=button class=empty data-dropdown-toggle=#feeCurrencyDetails_{{::showItem.showItemId}}_{{::showItem.currentFee.dateType}} ng-click="showItem.feeToggle = true"> {{::showItem.currentFee.amount | currency}} <div class=fee-original ng-if="::(showItem.currentFee.amount < showItem.currentFee.oAmt)">{{::showItem.currentFee.oAmt | currency}}<\/div> <\/button> <div id=feeCurrencyDetails_{{::showItem.showItemId}}_{{::showItem.currentFee.dateType}} class="medium f-dropdown content"> <table class=table style="font-weight: normal;" ng-if=showItem.feeToggle> <tr> <td ng-repeat="date in ::ShowItemRow.dateList track by date.statusCode" class=fee-{{::date.dateType}}> <exl-static-text id-code={{::date.id-code}}> <b>{{::date.description}}<\/b><br>{{::date.beginDate | date:\'MMM d\'}} - {{::date.endDate | date:\'MMM d\'}} <\/exl-static-text> <\/td> <\/tr> <tr> <td ng-repeat="fee in ::showItem.fees track by showItem.showItemId + fee.statusCode" class=fee-{{::fee.dateType}}> {{::fee.amount | currency}} <div class=fee-original ng-if="::(fee.amount < fee.oAmt)">{{::fee.oAmt | currency}}<\/div> <\/td> <\/tr> <\/table> <\/div> <\/td> <td class="item-like text-center" ng-if=::ShowItemRow.enableLikes> <exl-registrant-like like-type-code=SHOWITEM like-type-id=::showItem.showItemId><\/exl-registrant-like> <\/td> ');n.put("App/ShowItem/Views/ShowItemTask.html",' <div ng-if=!taskCtrl.showItemInfo> <exl-loading-indicator><\/exl-loading-indicator> <\/div> <div ng-if=taskCtrl.showItemInfo> <exl-static-text id-code=WEB_ATT_SHOWITEM_P1 ng-if="taskCtrl.showItemInfo.settings.enableKeywordSearch || taskCtrl.showItemInfo.settings.enableShowItemFilters"><p>Search to find events you want to attend.<\/p><\/exl-static-text> <exl-static-text id-code=WEB_ATT_SHOWITEM_P2 ng-if="!taskCtrl.showItemInfo.settings.enableKeywordSearch && !taskCtrl.showItemInfo.settings.enableShowItemFilters"><\/exl-static-text> <div class=row> <div class="columns large-12">   <div class=row> <div class="small-12 columns hide-for-medium-up"> <div class=actionitems> <ul class=small-block-grid-3> <li ng-if=taskCtrl.config.enableLikes> <exl-registrant-like-totals like-type-code=SHOWITEM like-click="taskCtrl.likeToggle(active, cache)" like-active=taskCtrl.showLikes ng-if=taskCtrl.config.enableLikes> <\/exl-registrant-like-totals> <\/li> <li ng-repeat="qf in taskCtrl.filteredResults.quickSearchFilters" ng-if=taskCtrl.config.enableQuickSearch> <exl-show-item-quick-search filter=qf ng-click=taskCtrl.quickSearch(qf)> <\/exl-show-item-quick-search> <\/li> <\/ul> <\/div> <\/div> <\/div>  <div exl-sticky="{offset_top_selector: \'.user-bar\', disable_sticky: !taskCtrl.config.enableSearchFilterPinning}" ng-if="taskCtrl.config.enableLikes || taskCtrl.config.enableQuickSearch || taskCtrl.showItemInfo.settings.enableKeywordSearch || taskCtrl.showItemInfo.settings.enableShowItemFilters"> <div class=row> <div class="medium-8 hide-for-small columns">  <div class=actionitems> <ul class=small-block-grid-5> <li ng-if=taskCtrl.config.enableLikes> <exl-registrant-like-totals like-type-code=SHOWITEM like-click="taskCtrl.likeToggle(active, cache)" like-active=taskCtrl.showLikes ng-if=taskCtrl.config.enableLikes> <\/exl-registrant-like-totals> <\/li> <li ng-repeat="qf in taskCtrl.filteredResults.quickSearchFilters" ng-if=taskCtrl.config.enableQuickSearch> <exl-show-item-quick-search filter=qf ng-click=taskCtrl.quickSearch(qf)> <\/exl-show-item-quick-search> <\/li> <\/ul> <\/div> <\/div> <div class="medium-4 small-12 columns text-right"> <div ng-show=taskCtrl.showItemInfo.settings.enableKeywordSearch class=exl-search-box> <div class=fa-wrapper><i class="fa fa-search"><\/i><\/div> <input type=text placeholder="Type to search" ng-model=taskCtrl.keyword ng-model-options="{debounce: 500}"> <\/div> <\/div> <\/div> <div class=background-secondary-color-lighter> <div class="row collapse"> <div class="small-8 medium-10 columns"> <span class=exl-left-margin-small ng-if="taskCtrl.config.enableLikes || taskCtrl.config.enableQuickSearch || taskCtrl.showItemInfo.settings.enableKeywordSearch || taskCtrl.showItemInfo.settings.enableShowItemFilters"> <small><span class=text-alert-color ng-bind=taskCtrl.filteredCount><\/span> of <span class=text-alert-color ng-bind=taskCtrl.pageCount><\/span> items<\/small> <\/span> <\/div> <div class="small-4 medium-2 columns text-right" data-ng-class="{\'highlight\' : taskCtrl.isFiltered}"> <button class="button small transparent" ng-show="::taskCtrl.showItemInfo.settings.enableShowItemFilters && taskCtrl.showItemInfo.filters.length > 0" ng-click=taskCtrl.showFilters()> <i class="fa fa-filter"><\/i> Filter <\/button> <\/div> <\/div> <\/div> <div class="exl-bot-margin-tiny highlight"> <div class="row collapse"> <div class=columns>  <exl-filter-option ng-if=::taskCtrl.showItemInfo.settings.enableKeywordSearch title=Keyword model=taskCtrl.keyword ng-show=taskCtrl.keyword init> <\/exl-filter-option> <exl-filter-option ng-if=::taskCtrl.config.enableLikes title="Quick Search" model=taskCtrl.likeFilterText init ng-show=taskCtrl.showLikes click="taskCtrl.likeToggle(false, null)"> <\/exl-filter-option> <span data-ng-repeat="filter in taskCtrl.filteredResults.filters"> <div ng-switch=filter.filterTypeCode> <exl-filter-option ng-switch-when=QUICKSEARCH title="Quick Search" model=filter.displayName ng-show=filter.isActive init click="taskCtrl.removeFilter(null, filter)"> <\/exl-filter-option> <exl-filter-option ng-switch-default data-ng-repeat="item in filter.selecteditems" title={{filter.displayName}} model=item.text click="taskCtrl.removeFilter(item, filter)"> <\/exl-filter-option> <\/div> <\/span> <\/div> <\/div> <\/div> <\/div> <span ng-show="!taskCtrl.showItemInfo.settings.hideShowItemFees && (!taskCtrl.reg || !taskCtrl.reg.regTypeCode)"> <exl-show-item-pricing><\/exl-show-item-pricing> <\/span>   <div ng-if="::(taskCtrl.showItemInfo.settings.enableKeywordSearch || taskCtrl.showItemInfo.settings.enableShowItemFilters)"> <div class="div-tabs-table overflow exl-top-margin"> <table class=tabs-table> <tr> <td ng-if=taskCtrl.filteredResults.allDays ng-class="{\'active\': taskCtrl.viewAll}" ng-click=taskCtrl.tabChange()> <a class=text-center>View<br>All<\/a> <\/td> <td ng-repeat="day in taskCtrl.filteredResults.days track by day.day" ng-class="{\'active\': day.active}" ng-click=taskCtrl.tabChange(day)> <a ng-if=::day.day> {{::day.day | date:\'EEE\'}} <br> {{::day.day | date:\'MMM dd\'}} <\/a> <a ng-if=::!day.day> Others <br><br> <\/a> <\/td> <\/tr> <\/table> <\/div> <div ng-repeat="day in taskCtrl.filteredResults.days" ng-if=day.active> <div ng-repeat="group in day.groups"> <div class=exl-gutter-wrap-lr> <exl-static-text ng-show=group.hasShowItems id-code="{{::(\'SHOWITEM_GROUP_PRE_\' + group.groupOrder)}}"><\/exl-static-text> <\/div> <exl-show-item-list ng-if=day.active group=group date-list=taskCtrl.showItemInfo.dateList settings=taskCtrl.showItemInfo.settings registrant=taskCtrl.reg pricingprofile=taskCtrl.pricingProfile enable-show-detail=taskCtrl.enableShowDetail> <\/exl-show-item-list> <div class=exl-gutter-wrap-lr> <exl-static-text ng-show=group.hasShowItems id-code="{{::(\'SHOWITEM_GROUP_POST_\' + group.groupOrder)}}"><\/exl-static-text> <\/div> <\/div> <div ng-if="taskCtrl.filteredCount == 0"> <em>No items found for your search criteria.<\/em> <\/div> <button type=button class="small expand exl-top-margin-small exl-bot-margin-small" ng-if="taskCtrl.limitTo && taskCtrl.pageCount > taskCtrl.limitTo" ng-click=taskCtrl.loadMore(day)> <i class="fa fa-plus"><\/i> Load More Items <\/button> <\/div> <div ng-if=taskCtrl.viewAll> <div ng-repeat="group in taskCtrl.filteredResults.allDays.groups"> <div class=exl-gutter-wrap-lr> <exl-static-text ng-show=group.hasShowItems id-code="{{::(\'SHOWITEM_GROUP_PRE_\' + group.groupOrder)}}"><\/exl-static-text> <\/div> <exl-show-item-list ng-if=taskCtrl.viewAll group=group date-list=taskCtrl.showItemInfo.dateList settings=taskCtrl.showItemInfo.settings registrant=taskCtrl.reg pricing-profile=taskCtrl.pricingProfile enable-show-detail=taskCtrl.enableShowDetail> <\/exl-show-item-list> <div class=exl-gutter-wrap-lr> <exl-static-text ng-show=group.hasShowItems id-code="{{::(\'SHOWITEM_GROUP_POST_\' + group.groupOrder)}}"><\/exl-static-text> <\/div> <\/div> <button type=button class="small expand exl-top-margin-small exl-bot-margin-small" ng-if="taskCtrl.limitTo && taskCtrl.pageCount > taskCtrl.limitTo" ng-click=taskCtrl.loadMore(day)> <i class="fa fa-plus"><\/i> Load More Items <\/button> <\/div> <\/div>  <div ng-if="!(taskCtrl.showItemInfo.settings.enableKeywordSearch || taskCtrl.showItemInfo.settings.enableShowItemFilters)"> <div ng-repeat="group in taskCtrl.filteredResults.allDays.groups"> <exl-static-text id-code="{{::(\'SHOWITEM_GROUP_PRE_\' + group.groupOrder)}}"><\/exl-static-text> <exl-show-item-list group=group date-list=taskCtrl.showItemInfo.dateList settings=taskCtrl.showItemInfo.settings registrant=taskCtrl.reg pricingprofile=taskCtrl.pricingProfile enable-show-detail=taskCtrl.enableShowDetail> <\/exl-show-item-list> <exl-static-text id-code="{{::(\'SHOWITEM_GROUP_POST_\' + group.groupOrder)}}"><\/exl-static-text> <\/div> <button type=button class="small expand exl-top-margin-small exl-bot-margin-small" ng-if="taskCtrl.limitTo && taskCtrl.pageCount > taskCtrl.limitTo" ng-click=taskCtrl.loadMore(day)> <i class="fa fa-plus"><\/i> Load More Items <\/button> <\/div> <\/div> <\/div> <exl-wizard-nav data-ng-if="::!(taskCtrl.isGradualEngagement && taskCtrl.isEmbedded)"><\/exl-wizard-nav> <\/div> ');n.put("App/StaticText/Views/StaticTextAdminDirective.html",'<button type=button class="st-button alert" data-ng-click="staticTextAdminCtrl.isAdminVisible = true" data-ng-if=!staticTextAdminCtrl.isAdminVisible> <i class="fa fa-pencil"><\/i> <\/button> <div class=exl-static-text-admin data-ng-if=staticTextAdminCtrl.isAdminVisible> <button type=button class="alert left" data-tooltip=Close data-tooltip-placement=bottom data-ng-click="staticTextAdminCtrl.isAdminVisible = false"> <i class="fa fa-close"><\/i> <\/button> <div data-ng-if="staticTextAdminCtrl.canLogin && !staticTextAdminCtrl.isLoggedIn"> <form name=frmPassword data-ng-submit=staticTextAdminCtrl.login(frmPassword)> <div class=row> <div class="medium-4 columns"> <label> Password: <input type=password required data-ng-model=staticTextAdminCtrl.txtPassword> <\/label> <\/div> <div class="medium-8 columns"> <button class="small exl-top-margin" type=submit> <i class="fa fa-sign-in"><\/i> Login <\/button> <\/div> <\/div> <\/form> <\/div> <div data-ng-if="staticTextAdminCtrl.isUserAdmin || staticTextAdminCtrl.isLoggedIn"> <div class=row> <div class="small-4 columns"> <h3> Text Edit Mode: <button type=button class="empty has-tip" data-ng-class="staticTextAdminCtrl.isEditMode ? \'text-success-color\' : \'text-alert-color\'" data-ng-click=staticTextAdminCtrl.toggleEditMode() data-tooltip="Toggle On/Off" data-tooltip-placement=bottom> <i class="fa fa-lg" data-ng-class="staticTextAdminCtrl.isEditMode ? \'fa-toggle-on\' : \'fa-toggle-off\'"><\/i> <span data-ng-bind="staticTextAdminCtrl.isEditMode ? \'On\' : \'Off\'"><\/span> <\/button> <\/h3> <\/div> <div class="small-4 columns" data-ng-if="!staticTextAdminCtrl.isInModal && staticTextAdminCtrl.isUserAdmin"> <h3> Remote Editing Password: <button type=button class="empty has-tip" data-ng-click=staticTextAdminCtrl.togglePassword() data-tooltip="Toggle On/Off" data-tooltip-placement=bottom> <i class="fa fa-lg" data-ng-class="staticTextAdminCtrl.password ? \'fa-toggle-on\' : \'fa-toggle-off\'"><\/i> <span data-ng-bind="staticTextAdminCtrl.password ? \'On\' : \'Off\'"><\/span> <\/button> <span class=highlight data-ng-bind=staticTextAdminCtrl.password><\/span> <\/h3> <\/div> <div class="small-4 columns end text-right" data-ng-if="!staticTextAdminCtrl.isInModal && (staticTextAdminCtrl.isUserAdmin || (staticTextAdminCtrl.isLoggedIn && staticTextAdminCtrl.canPushRemote)) && staticTextAdminCtrl.canPush"> <button class="success tiny" type=button data-ng-click=staticTextAdminCtrl.pushToProd()> <i class="fa fa-upload"><\/i> Push Live <\/button> <\/div> <\/div> <\/div> <\/div>');n.put("App/StaticText/Views/StaticTextDirective.html","<span class=exl-static-text-content><\/span> <div class=text-right data-ng-if=staticTextCtrl.isEditMode> <span class=highlight data-ng-if=\"::staticTextCtrl.associatedFieldName || staticTextCtrl.additionalLabelText\"> <span data-ng-if=::staticTextCtrl.associatedFieldName data-ng-bind=::staticTextCtrl.associatedFieldName><\/span> <span data-ng-if=::staticTextCtrl.additionalLabelText data-ng-bind=::staticTextCtrl.additionalLabelText><\/span> <\/span> <span class=\"label st-label\" data-ng-bind=\"::(staticTextCtrl.granularity === 'none' ? 'global' : (staticTextCtrl.granularity || 'flow')) | uppercase\"><\/span> <\/div>");n.put("App/StaticText/Views/StaticTextEditModal.html","<div> <span class=label>ID Code:<\/span> <em data-ng-bind=\"::modalCtrl.idCode | uppercase\"><\/em> <\/div> <div> <span class=label>Granularity:<\/span> <em data-ng-bind=\"::(modalCtrl.granularity === 'none' ? 'global' : (modalCtrl.granularity || 'flow')) | uppercase\"><\/em> <\/div> <textarea data-ui-tinymce=::modalCtrl.tinymceOptions data-ng-model=::modalCtrl.content><\/textarea>");n.put("App/StaticText/Views/StaticTextEditModalFooter.html",'<button type=button class=secondary data-ng-click="modalCtrl.close({isSave: false})"> <i class="fa fa-undo"><\/i> Cancel <\/button> <button type=button class data-ng-click="modalCtrl.close({isSave: true, idCode: modalCtrl.idCode, content: modalCtrl.content})"> <i class="fa fa-save"><\/i> Save <\/button>');n.put("App/Summary/Views/GroupSummaryTask.html",'<exl-static-text id-code=WEB_GROUP_SUMMARY_P1><\/exl-static-text> <div class=row> <div class="medium-8 large-7 columns"> <div class="panel callout" data-ng-if="::(!taskCtrl.hasRegistration || taskCtrl.config.allowMultipleRegPerBooking) && taskCtrl.taskContact"> <div> <i class="fa fa-bullhorn"><\/i> <exl-static-text id-code=WEB_GROUP_SUMMARY_CONTACT_H1 allow-html=::false> Contact Person <\/exl-static-text> <\/div> <exl-static-text id-code=WEB_GROUP_SUMMARY_CONTACT_P1> <p>This person will receive correspondence and credentials for the group:<\/p> <\/exl-static-text> <exl-select-list-modal title="Choose Contact Person" itemlist=taskCtrl.selectListRegistrants selecteditem=taskCtrl.contactRegistrant is-disabled="!taskCtrl.selectListRegistrants.length || !taskCtrl.isFlowOpen" modalcss=small><\/exl-select-list-modal> <button type=button class=small data-ng-disabled=!taskCtrl.isFlowOpen data-ng-click=taskCtrl.goToContact()> <i class=fa data-ng-class="taskCtrl.contactRegistrant ? \'fa-pencil\' : \'fa-user-plus\'"><\/i> {{taskCtrl.contactRegistrant ? \'Edit Current\' : \'Add New\'}} Contact <\/button> <\/div> <div class=panel data-ng-repeat="registrant in taskCtrl.booking.registrants track by registrant.registrantId" data-ng-init="idxRegistrant = $index"> <div class="row collapse"> <div class="small-8 columns"> <button type=button class=empty data-ng-click=taskCtrl.goToDashboard(registrant.guestId) data-ng-disabled=!taskCtrl.isFlowOpen> <div> <i class="fa fa-home"><\/i> {{::registrant.bookingRegistrantName}} <\/div> <\/button> <span data-ng-show="registrant.registrantId === taskCtrl.booking.contactRegistrantId"> <i class="fa fa-bullhorn"><\/i> <\/span> <\/div> <div class="small-4 columns text-right"> <button type=button class="empty tight small" data-exl-pay-now="::{registrant: registrant, showIcon: true}">  <\/button> <\/div> <\/div> <div class="row collapse"> <div class="columns actionitems"> <ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-3">  <li data-ng-if=::taskCtrl.hasRegistration> <button type=button data-ng-click=taskCtrl.goToRegistration(registrant) data-ng-disabled=!taskCtrl.isRegOpen> <i class=fa data-ng-class="::registrant.balanceDue && (registrant.isCompleted || !registrant.nextRegTask) ? \'fa-money text-alert-color\' : registrant.isCompleted ? \'fa-check text-success-color\' : registrant.regDesc ? \'fa-warning text-warning-color\' : \'fa-plus\'"> <\/i> <div data-ng-if=::registrant.balanceDue> {{::registrant.balanceDue | currency}} <\/div> <div> {{::registrant.regDesc || \'Register\'}} <\/div> <\/button> <\/li> <li data-ng-if="::taskCtrl.hasRegistration && registrant.isInProgress && registrant.regDesc && !registrant.reservations.length"> <button type=button data-ng-click=taskCtrl.removeRegistrant(idxRegistrant) data-ng-disabled="!taskCtrl.isRegOpen || taskCtrl.loggedInRegId == registrant.registrantId"> <i class="fa fa-user-times"><\/i> <div>Remove Registration<\/div> <\/button> <\/li>  <li data-ng-if=::taskCtrl.hasHousing data-ng-repeat="reservation in ::registrant.reservations track by reservation.reservationId"> <button type=button data-ng-click=taskCtrl.goToReservation(reservation.reservationId) data-ng-disabled=!taskCtrl.isHousingOpen> <i class=fa data-ng-class="::reservation.statusTypeCode === \'COM\' ? \'fa-check text-success-color\' : \'fa-warning text-warning-color\'"><\/i> <div> {{::taskCtrl.facilityData.facility[reservation.facilityId][0].name}} <\/div> <\/button> <div class=text-center data-ng-if=::reservation.isWaitListed> <div data-dropdown-toggle=#ddWaitlistDates_reservation_{{::reservation.reservationId}}> <small> Waitlist Dates<i class="fa fa-fw fa-caret-down"><\/i><\/small> <\/div> <div id=ddWaitlistDates_reservation_{{::reservation.reservationId}} class="f-dropdown medium content text-left"> <exl-facility-waitlist-dates reservation-id=reservation.reservationId check-in-date=reservation.checkinDate check-out-date=reservation.checkoutDate><\/exl-facility-waitlist-dates> <\/div> <\/div> <div class=text-center> <small data-tooltip="{{::reservation.isCCG ? \'Credit Card Guarantee\' : \'Deposit\'}}"> <i class=fa data-ng-class="::reservation.isCCG ? \'fa-credit-card\' : \'fa-money\'"><\/i> {{::reservation.isCCG ? \'CCG\' : (reservation.depositeAmt | currency)}} <\/small> <\/div> <\/li> <li data-ng-if="::taskCtrl.hasHousing && !taskCtrl.booking.isMaxReservationLimitReached && taskCtrl.isHousingOpen" data-tooltip="{{::taskCtrl.hasRegistration && !taskCtrl.config.allowResBeforeReg && !registrant.regDesc ? \'This person must be registered before a room can be booked.\' : null}}"> <button type=button data-ng-click=taskCtrl.goToHousing(registrant.registrantId) data-ng-disabled="::taskCtrl.hasRegistration && !taskCtrl.config.allowResBeforeReg && !registrant.regDesc"> <i class="fa fa-plus"><\/i> <div>Add Room<\/div> <\/button> <\/li> <\/ul> <\/div> <\/div> <\/div> <button type=button class="expand exl-bot-margin" data-exl-add-another>  <\/button> <\/div> <div class="medium-4 large-5 columns"> <exl-widget-booking-financials><\/exl-widget-booking-financials> <button class="success expand" data-ng-click=taskCtrl.goToPayment() data-ng-show=::taskCtrl.finishButtonVisible> Finish <\/button> <\/div> <\/div> <exl-wizard-nav hide-button-next=true hide-button-dashboard=wizardFlowCtrl.hideDashboardButton><\/exl-wizard-nav> ');n.put("App/Summary/Views/RegistrantRemoveModal.html",'<div> <i class="fa fa-warning text-warning-color"><\/i> You are about to remove registrant "{{modalCtrl.registrant.bookingRegistrantName}}". If this person is the last person in this group, then you will be logged out of this session. <\/div> <p> Do you want to proceed and remove this registrant? <\/p>');n.put("App/Summary/Views/RegistrantRemoveModalFooter.html","<button type=button class=secondary data-ng-click=modalCtrl.close(false)> No, don't do this <\/button> <button type=button class data-ng-click=modalCtrl.close(true)> Yes <\/button>");n.put("App/Summary/Views/SummaryTask.html",'<div class=ng-hide ng-show=::taskCtrl.loadReady> <exl-static-text id-code=WEB_SUMMARY_P1><\/exl-static-text> <exl-shopping-cart><\/exl-shopping-cart> <div class="exl-top-margin exl-bot-margin"> <accordion> <accordion-group ng-if="taskCtrl.isReg && taskCtrl.profile.hasRegType"> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_SUMMARY_PROFILE_HEADING>Profile &amp; Badge<\/exl-static-text> <\/accordion-heading> <div class=content> <button class=small type=button ng-click=taskCtrl.editProfile()> <i class="fa fa-fw fa-pencil"><\/i><exl-static-text allow-html=false id-code=WEB_SUMMARY_EDIT_PROFILE>Edit Profile<\/exl-static-text> <\/button> <exl-wizard-task-layout layout=Profile profile=taskCtrl.profile summary=true><\/exl-wizard-task-layout> <exl-wizard-task-layout layout=BADGE profile=taskCtrl.profile summary=true ng-if=taskCtrl.showBadgeFields><\/exl-wizard-task-layout> <div class=row ng-if=taskCtrl.showAdaFields> <div class=column> <span ng-show=taskCtrl.profile.isadaMobile>ADA Mobile<\/span> <span ng-show=taskCtrl.profile.isadaVisual>ADA Visual<\/span> <span ng-show=taskCtrl.profile.isadaAuditory>ADA Auditory<\/span> <span ng-show=taskCtrl.profile.specialAssistNote ng-bind=taskCtrl.profile.specialAssistNote><\/span> <\/div> <\/div> <div class=exl-top-margin-small> <button class=small type=button ng-click=taskCtrl.editProfile()> <i class="fa fa-fw fa-pencil"><\/i><exl-static-text allow-html=false id-code=WEB_SUMMARY_EDIT_BADGE>Edit Badge<\/exl-static-text> <\/button> <button class=small type=button ng-click="taskCtrl.showBadgePreview = !taskCtrl.showBadgePreview">Preview My Badge<\/button> <\/div> <img ng-show=taskCtrl.showBadgePreview ng-src={{taskCtrl.badgeSrc}}> <\/div> <\/accordion-group> <accordion-group ng-if="taskCtrl.isReg && taskCtrl.profile.hasRegType && taskCtrl.hasDemoTask"> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_SUMMARY_SURVEY_HEADING>Survey<\/exl-static-text> <\/accordion-heading> <div class=content> <button class=small type=button ng-click=taskCtrl.editDemographics()> <i class="fa fa-fw fa-pencil"><\/i><exl-static-text allow-html=false id-code=WEB_SUMMARY_EDIT_DEMOGRAPHICS>Edit Survey<\/exl-static-text> <\/button> <exl-wizard-task-layout layout=DEMOGRAPHIC profile=taskCtrl.profile summary=true items-per-row=2><\/exl-wizard-task-layout> <\/div> <\/accordion-group> <accordion-group ng-if="taskCtrl.isReg && taskCtrl.profile.hasRegType && taskCtrl.hasGuestTask"> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_SUMMARY_GUESTS_HEADING><\/exl-static-text> <\/accordion-heading> <div class=content> <button class=small type=button ng-click=taskCtrl.navGuests() ng-disabled=::!taskCtrl.isRegOpen> <i class="fa fa-fw fa-pencil"><\/i><exl-static-text allow-html=false id-code=WEB_SUMMARY_GUESTS_BUTTON><\/exl-static-text> <\/button> <ul class="small-block-grid-1 medium-block-grid-3 exl-top-margin-small"> <li ng-repeat="guest in taskCtrl.registrant.guestArray">{{guest.firstName + \' \' + guest.lastName}}<\/li> <\/ul> <\/div> <\/accordion-group> <accordion-group ng-show="taskCtrl.allowMultipleRegPerBooking ? taskCtrl.notRegisteredList.length : taskCtrl.registeredList.length == 0" is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_SUMMARY_ADD_REGISTRATION_HEADING><\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code=WEB_SUMMARY_ADD_REGISTRATION_P1> <\/exl-static-text> <exl-select-list itemlist=taskCtrl.notRegisteredList selecteditem=taskCtrl.selectedOccupant><\/exl-select-list> <button type=button ng-click=taskCtrl.registerOccupant() data-ng-disabled="!taskCtrl.selectedOccupant || !taskCtrl.isRegOpen"> <i class="fa fa-ticket"><\/i> Register <\/button> <\/div> <\/accordion-group> <\/accordion> <\/div> <div data-ng-if=taskCtrl.addAnotherVisible> <p><exl-static-text id-code=WEB_SUMMARY_ADD_ANOTHER_TITLE><\/exl-static-text><\/p> <p><exl-static-text id-code=WEB_SUMMARY_ADD_ANOTHER_DESCRIPTION><\/exl-static-text><\/p> <p> <button type=button data-exl-add-another> <i class="fa fa-plus"><\/i> Add Another <\/button> <\/p> <\/div> <div ng-show="taskCtrl.checkOutInfo.showPayment && !taskCtrl.isSelfRegFlow"> <exl-static-text id-code=WEB_SUMMARY_PAY_HEADER><h2>Payment<\/h2><\/exl-static-text> <exl-payment change-allow-payment=taskCtrl.changeAllowPayment(checked) change-payment-method="taskCtrl.changePaymentMethod(paymentMethod, surplus)" multiple-payment-methods=true selected-amount=taskCtrl.checkOutInfo.payList.charges[0].balanceDue><\/exl-payment> <\/div> <p class=text-center data-ng-if=taskCtrl.selfRegPayNow> <button class="success large" data-ng-click=taskCtrl.next()>Pay Now <i class="fa fa-fw fa-chevron-right"><\/i><\/button> <\/p> <exl-wizard-nav click-button-next=taskCtrl.next() label-button-next=taskCtrl.nextLabel disable-button-next=taskCtrl.disableNext><\/exl-wizard-nav> <\/div>');n.put("App/TrafficBoost/Views/TrafficBoostTask.html","<div data-ng-include=taskCtrl.HtmlContentUrl><\/div> <div data-ng-show=taskCtrl.isQa> <p><em>Only available in production environment.<\/em><\/p> <\/div> <div data-ng-hide=taskCtrl.isQa> <a class=button href={{taskCtrl.BoostWebUrl}}>Let's Get Started!<\/a> <\/div> ");n.put("App/Widget/Views/AreaMapDirective.html",'<div> <accordion class=footer> <exl-collapse-on-small-accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_AREA_MAP_HEADER>Area Map<\/exl-static-text> <\/accordion-heading> <button class=empty type=button data-exl-area-map-modal="{title: widgetAreaMapCtrl.title, modalcss: widgetAreaMapCtrl.modalcss}"> <img exl-ref-file-url=areaMap.png style=width:100%;max-width:100%; alt="View Area Map" title="View Area Map"> <\/button> <\/exl-collapse-on-small-accordion-group> <\/accordion> <\/div>');n.put("App/Widget/Views/AreaMapModal.html",'<tabset> <tab> <tab-heading>Map<\/tab-heading> <exl-facility-map><\/exl-facility-map> <\/tab> <tab> <tab-heading>List View<\/tab-heading> <div class=content> <div data-ng-if=::modalCtrl.eventFacilities.length> <h3> <ng-pluralize count=::modalCtrl.eventFacilities.length when="{\'1\': \'Event Location\', \'other\': \'Event Locations\'}"><\/ng-pluralize> <\/h3> <ul class="medium-block-grid-3 small-block-grid-1"> <li data-ng-repeat="facility in ::modalCtrl.eventFacilities track by facility.id"> <img data-ng-src={{::facility.imgSource}}> <strong> {{::facility.name}} <\/strong> <exl-facility-features facility-id={{::facility.id}} include=::facility.features><\/exl-facility-features> <address data-ng-if=::facility.address1> {{::facility.address1}}<br data-ng-if=::facility.address1> {{::facility.address2}}<br data-ng-if=::facility.address2> {{::facility.address3}}<br data-ng-if=::facility.address3> {{::facility.city}}<span data-ng-if="::facility.city && (facility.stateCode || facility.countryCode)">, <\/span> {{::facility.stateCode}}<span data-ng-if="::facility.stateCode && facility.countryCode">, <\/span> {{::facility.countryCode}} {{::facility.zipCode}} <\/address> <\/li> <\/ul> <\/div> <div data-ng-if=::modalCtrl.bookingFacilities.length> <h3> <ng-pluralize count=::modalCtrl.bookingFacilities.length when="{\'1\': \'Hotel\', \'other\': \'Hotels\'}"><\/ng-pluralize> <\/h3> <ul class="medium-block-grid-3 small-block-grid-1"> <li data-ng-repeat="facility in ::modalCtrl.bookingFacilities track by facility.id"> <img id=ImgPin src="{{\'https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=\' + ($index + 1) + \'|59DE59|000000\'}}"> <a data-ng-click=modalCtrl.showHotelProfileModal(facility.id)> <strong>{{::facility.name}}<\/strong> <\/a> <exl-facility-features facility-id={{::facility.id}} include=::facility.features><\/exl-facility-features> <address data-ng-if=::facility.address1> {{::facility.address1}}<br data-ng-if=::facility.address1> {{::facility.address2}}<br data-ng-if=::facility.address2> {{::facility.address3}}<br data-ng-if=::facility.address3> {{::facility.city}}<span data-ng-if="::facility.city && (facility.stateCode || facility.countryCode)">, <\/span> {{::facility.stateCode}}<span data-ng-if="::facility.stateCode && facility.countryCode">, <\/span> {{::facility.countryCode}} {{::facility.zipCode}} <\/address> <\/li> <\/ul> <\/div> <\/div> <\/tab> <\/tabset>');n.put("App/Widget/Views/BookingFinancialsDirective.html",'<div data-ng-if="::bfc.hasFinancialSection && !bfc.hideAllFees"> <div class=exl-bot-margin data-ng-hide=bfc.hideWidget> <table class="table financial stretch"> <thead> <tr> <th colspan=2 class=background-secondary-color> <h3>Group Financial Summary<\/h3> <\/th> <\/tr> <\/thead> <tbody class=cart-items>  <tr data-ng-show="::bfc.hasRegistration && bfc.hasHousing && !bfc.hideRegFees && !bfc.hideShowItemFees"> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_REGISTRATION_TOTAL_HEADER allow-html=false> Registration Total <\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class=text-right> {{ bfc.bookingFinancials.totalRegCharges | currency }} <\/h3> <\/td> <\/tr>  <tr data-ng-show="::(bfc.hasRegistration && bfc.hasHousing) && !bfc.hideReservationFees"> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_HOUSING_TOTAL_HEADER allow-html=false> Room Total <\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class=text-right> <span data-ng-if="bfc.bookingFinancials.totalHousingCharges > 0 || !bfc.bookingFinancials.isccgNeeded"> {{bfc.bookingFinancials.totalHousingCharges | currency}} <\/span> <span data-ng-if="bfc.bookingFinancials.totalHousingCharges > 0 && bfc.bookingFinancials.isccgNeeded"> + <\/span> <span data-ng-if=bfc.bookingFinancials.isccgNeeded data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/h3> <\/td> <\/tr>  <tr> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BOOKING_TOTAL_HEADER allow-html=false>Booking Total<\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class=text-right> {{ bfc.bookingFinancials.totalBookingCharges | currency }} <\/h3> <\/td> <\/tr>  <tr> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_PAYMENTS_TOTAL_HEADER allow-html=false> Payments <\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class="text-right text-success-color"> <span data-ng-if="bfc.bookingFinancials.totalPayments < 0 || !bfc.bookingFinancials.isccgApplied"> {{ bfc.bookingFinancials.totalPayments | currency }} <\/span> <span data-ng-if="bfc.bookingFinancials.totalPayments < 0 && bfc.bookingFinancials.isccgApplied"> + <\/span> <span data-ng-if=bfc.bookingFinancials.isccgApplied data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/h3> <\/td> <\/tr>  <tr data-ng-show="bfc.bookingFinancials.totalPendingRefunds > 0"> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_PENDING_REFUNDS_HEADER allow-html=false> Pending Refunds <\/exl-static-text> <\/h3> <\/td> <td> <h3 class=text-right>{{ bfc.bookingFinancials.totalPendingRefunds | currency }}<\/h3> <\/td> <\/tr>  <tr data-ng-show="bfc.bookingFinancials.totalSettledRefunds > 0"> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_SETTLED_REFUNDS_HEADER allow-html=false> Settled Refunds <\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class=text-right>{{ bfc.bookingFinancials.totalSettledRefunds | currency }}<\/h3> <\/td> <\/tr>  <tr data-ng-show="bfc.bookingFinancials.bookingSurplus < 0"> <td> <h3> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_AVAILABLE_REFUNDS_HEADER allow-html=false> Available Refunds <\/exl-static-text> <\/h3> <\/td> <td class=highlight> <h3 class=text-right>{{ bfc.bookingFinancials.bookingSurplus | currency }}<\/h3> <\/td> <\/tr> <\/tbody> <tfoot data-ng-if="bfc.bookingFinancials.totalBalanceDue > 0 || bfc.bookingFinancials.isccgNeeded">  <tr class="xl-no-borders xl-thick-top-border"> <td> <h2 class=text-right data-ng-if=!bfc.bookingFinancials.isccgNeeded> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BALANCE_DUE_NO_CCG_HEADER allow-html=false additional-label-text="Balance Due Only (no CCG Needed)"> Balance Due <\/exl-static-text> <\/h2> <h2 class=text-right data-ng-if="bfc.bookingFinancials.totalBalanceDue > 0 && bfc.bookingFinancials.isccgNeeded"> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BALANCE_DUE_WITH_CCG_HEADER allow-html=false additional-label-text="Both Balance Due and CCG Needed"> Balance Due &amp; Confirm Room(s) <\/exl-static-text> <\/h2> <h2 class=text-right data-ng-if="bfc.bookingFinancials.totalBalanceDue <= 0 && bfc.bookingFinancials.isccgNeeded"> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_BALANCE_ONLY_CCG_HEADER allow-html=false additional-label-text="CCG Needed (no Balance Due)"> Confirm Room(s) <\/exl-static-text> <\/h2> <\/td> <td class=background-secondary-color-light> <h1 class="text-right text-alert-color"> <span data-ng-if="bfc.bookingFinancials.totalBalanceDue > 0 || !bfc.bookingFinancials.isccgNeeded"> {{bfc.bookingFinancials.totalBalanceDue | currency}} <\/span> <span data-ng-if="bfc.bookingFinancials.totalBalanceDue > 0 && bfc.bookingFinancials.isccgNeeded"> + <\/span> <span data-ng-if=bfc.bookingFinancials.isccgNeeded data-tooltip="Credit Card Guarantee - The provided credit card will be used to guarantee your hotel reservations(s)."> <i class="fa fa-credit-card"><\/i> CCG <\/span> <\/h1> <\/td> <\/tr> <\/tfoot> <\/table> <button class="success expand" data-ng-click=bfc.goToPayment() data-ng-show=::bfc.paymentButtonVisible> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_GOTOPAYMENT_BTN allow-html=false>Pay Now<\/exl-static-text> <\/button> <\/div> <div data-ng-show=::bfc.hideWidget> <exl-static-text id-code=WEB_WIDGET_BOOKINGFINANCIALS_NOTRANSMESSAGE> <p><em>You don\'t have any financial transactions yet.<\/em><\/p> <\/exl-static-text> <\/div> <\/div>');n.put("App/Widget/Views/BookingSelectionTopDirective.html","");n.put("App/Widget/Views/ContainerDirective1.html",'<div ng-controller="WidgetController as wc"> <div ng-repeat="item in ::wc.widgetInfo.placeHolder1"> <div ng-switch=item> <div ng-switch-when=eventcountdown><exl-widget-event-count-down><\/exl-widget-event-count-down><\/div> <\/div> <\/div> <\/div>');n.put("App/Widget/Views/ContainerDirective2.html",'<div ng-controller="WidgetController as wc"> <div ng-repeat="item in ::wc.widgetInfo.placeHolder2"> <div ng-switch=item> <div ng-switch-when=helpfullinks><exl-widget-helpful-links><\/exl-widget-helpful-links><\/div> <div ng-switch-when=sponsoredby><exl-widget-sponsored-by><\/exl-widget-sponsored-by><\/div> <div ng-switch-when=personnelquicksearch><exl-widget-personnel-quick-search><\/exl-widget-personnel-quick-search><\/div> <\/div> <\/div> <\/div>');n.put("App/Widget/Views/ContainerDirective3.html",'<div ng-controller="WidgetController as wc"> <div ng-repeat="item in ::wc.widgetInfo.placeHolder3" class=row> <div ng-switch=item class="large-12 columns"> <div ng-switch-when=socialnetworking><exl-widget-social-network><\/exl-widget-social-network><\/div> <div ng-switch-when=showinfo><exl-widget-show-info><\/exl-widget-show-info><\/div> <div ng-switch-when=cswebchat><exl-widget-cust-chat-info><\/exl-widget-cust-chat-info><\/div> <\/div> <\/div> <\/div>');n.put("App/Widget/Views/ContainerDirective4.html",'<div ng-controller="WidgetController as wc"> <div ng-repeat="item in ::wc.widgetInfo.placeHolder4"> <div ng-switch=item> <div ng-switch-when=areamap><exl-widget-area-map><\/exl-widget-area-map><\/div> <\/div> <\/div> <\/div>');n.put("App/Widget/Views/ContainerDirective5.html",'<div ng-controller="WidgetController as wc"> <div ng-repeat="item in ::wc.widgetInfo.placeHolder5"> <div ng-switch=item> <div ng-switch-when=needhelp><exl-widget-need-help><\/exl-widget-need-help><\/div> <div ng-switch-when=cswebchat><exl-widget-cust-chat-info><\/exl-widget-cust-chat-info><\/div> <div ng-switch-when=microsofttranslator><exl-widget-translate><\/exl-widget-translate><\/div> <\/div> <\/div> <\/div> ');n.put("App/Widget/Views/ContainerDirective6.html",' <div ng-controller="WidgetController as wc"> <div ng-repeat="item in ::wc.widgetInfo.placeHolder6" class=row> <div ng-switch=item> <div ng-switch-when=sponsoredby><exl-widget-sponsored-by><\/exl-widget-sponsored-by><\/div> <\/div> <\/div> <\/div>');n.put("App/Widget/Views/CustChatInfoDirective.html",'<div ng-hide=!csc.showChatInfo> <accordion class=footer> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_CUSTCHATINFO_HEADER>Questions?<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code=WEB_WIDGET_CUSTCHATINFO_P1> <\/exl-static-text> <button type=button class="small expand" data-ng-click=csc.goChat()> <exl-static-text id-code=WEB_WIDGET_CUSTCHATINFO_BTN> <i class="fa fa-comments"><\/i> Activate Live Chat <\/exl-static-text> <\/button> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion> <\/div>');n.put("App/Widget/Views/EventCountDownDirective.html",' <div class="exl-bot-margin-small countdown"> <p class=title><exl-static-text allow-html=false id-code=WEB_WIDGET_COUNTDOWN_L1>This awesome event is coming soon! Make your plans today.<\/exl-static-text><\/p> <hr> <timer ng-attr-end-time=eventCountDownCtrl.countDownDate> <div> <div class="section days"> <p class=value>{{days}}<\/p> <p class=label>days<\/p> <\/div> <div class="section sep"> <p class=value>:<\/p> <\/div> <div class="section hours"> <p class=value>{{hours}}<\/p> <p class=label>hours<\/p> <\/div> <div class="section sep"> <p class=value>:<\/p> <\/div> <div class="section minutes"> <p class=value>{{minutes}}<\/p> <p class=label>min<\/p> <\/div> <div class="section sep"> <p class=value>:<\/p> <\/div> <div class="section seconds"> <p class=value>{{seconds}}<\/p> <p class=label>sec<\/p> <\/div> <\/div> <\/timer> <\/div> ');n.put("App/Widget/Views/HelpfulLinksDirective.html",'<accordion class=footer data-ng-if=::hlc.helpfulLinks.isEnabled> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_HELPFULLINKS_HEADER>Helpful Links<\/exl-static-text> <\/accordion-heading> <div class=content> <ul class="large-block-grid-1 medium-block-grid-2 small-block-grid-1 toolbar"> <li data-ng-repeat="link in ::hlc.helpfulLinks.linkItems"> <span data-ng-switch=link.commandName> <span data-ng-switch-when=NEWWIN> <button data-ng-click=hlc.goToURL(link.commandArg) data-ng-disabled="!hlc.toggleEnabled(link.enableCondition, link.commandArg)"> <img data-ng-src={{::link.imageUrl}} title={{::link.text}} alt={{::link.text}}> {{::link.text}} <\/button> <\/span> <span data-ng-switch-when=TEXT> <exl-widget-static-text-modal data-id-code={{::link.staticTextIDCode}} data-default-text={{::link.text}} data-title={{::link.text}} data-modal-disabled="{{ hlc.toggleEnabled(link.enableCondition, link.commandArg) ? \'0\' : \'1\' }}"> <img data-ng-src={{::link.imageUrl}} title={{::link.text}} alt={{::link.text}}> {{::link.text}} <\/exl-widget-static-text-modal> <\/span> <span data-ng-switch-when=TASK> <button data-ng-click=hlc.goToTaskByName(link.commandArg) data-ng-disabled="!hlc.toggleEnabled(link.enableCondition, link.commandArg)"> <img data-ng-src={{::link.imageUrl}} title={{::link.text}} alt={{::link.text}}> Go to task {{::link.text}} <\/button> <\/span> <\/span> <\/li> <\/ul> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion>');n.put("App/Widget/Views/Interchange-SponsorLarge.html",'<exl-static-text id-code=WEB_WIDGET_SPONSOREDBY_LARGE> <p><img src=RefFiles/Ad-large.gif alt="Sponsor Ad" title="Sponsor Ad"><\/p> <\/exl-static-text> ');n.put("App/Widget/Views/Interchange-SponsorMedium.html",'<exl-static-text id-code=WEB_WIDGET_SPONSOREDBY_MEDIUM> <p><img src=RefFiles/Ad-medium.gif alt="Sponsor Ad" title="Sponsor Ad"><\/p> <\/exl-static-text> ');n.put("App/Widget/Views/Interchange-SponsorSmall.html",'<exl-static-text id-code=WEB_WIDGET_SPONSOREDBY_SMALL> <p><img src=RefFiles/Ad-small.gif alt="Sponsor Ad" title="Sponsor Ad"><\/p> <\/exl-static-text> ');n.put("App/Widget/Views/NeedHelpDirective.html","<div> <accordion class=footer> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_NEEDHELP_HEADER>Need Help?<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code=WEB_WIDGET_NEEDHELP_P1> <p>For help with this site, you may:<\/p> <ul> <li>Call Customer Service toll free at xxx-xxx-xxxx<br>International registrants, please call xxx-xxx-xxxx<\/li> <li>E-mail Customer Service at <a href=mailto:xxx@experient-inc.com>xxx@experient-inc.com<\/a><\/li> <\/ul> <\/exl-static-text> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion> <\/div>");n.put("App/Widget/Views/PersonnelQuickSearchDirective.html",'<form> <accordion> <accordion-group is-open=true> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_PERSONNELQUICKSEARCH_HEADER> Group Search <\/exl-static-text> <\/accordion-heading> <ul class="large-block-grid-1 medium-block-grid-4"> <li> <label> <exl-static-text allow-html=false id-code=WEB_WIDGET_PERSONNELQUICKSEARCH_FIRSTNAME> First Name <\/exl-static-text> <\/label> <input name=firstName id=firstName type=text ng-model=psc.firstName> <\/li> <li> <label> <exl-static-text allow-html=false id-code=WEB_WIDGET_PERSONNELQUICKSEARCH_LASTNAME> Last Name: <\/exl-static-text> <\/label> <input name=lastName id=lastName type=text ng-model=psc.lastName> <\/li> <li> <label class=show-for-medium-down>&nbsp;<\/label> <button type=button ng-click=psc.search()> <exl-static-text id-code=WEB_WIDGET_PERSONNELQUICKSEARCH_BUTTON_SEARCH> Search <\/exl-static-text> <\/button> <\/li> <\/ul> <\/accordion-group> <\/accordion> <\/form>');n.put("App/Widget/Views/RegistrantSummaryDirective.html",'<div data-ng-hide=rsc.hideSummary> <accordion class=footer> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_REGISTRANTSUMMARY_HEADER>Registrant Summary<\/exl-static-text> <\/accordion-heading> <div class=content> <ul class="large-block-grid-1 medium-block-grid-2 small-block-grid-1 toolbar"> <li data-ng-repeat="reg in rsc.registrantCollection"> <span data-ng-hide="!rsc.currentReg || reg.regId != rsc.currentReg.regId">>><\/span> <button data-ng-click=rsc.goToRegistration(reg) data-ng-hide="!(reg.regId == reg.guestId)"> {{reg.firstName}} {{reg.lastName}} <\/button> <span data-ng-hide="(reg.regId == reg.guestId)"> {{reg.firstName}} {{reg.lastName}} <\/span> <br> <span data-ng-hide="rsc.hideRegFees && rsc.hideShowItemFees">{{reg.balanceDue}}<\/span> <\/li> <\/ul> <button data-ng-click=rsc.goToSummary(rsc.currentReg) data-ng-hide="!(rsc.currentReg && rsc.currentReg.isCompleted)"> <exl-static-text id-code=WEB_WIDGET_REGISTRANTSUMMARY_GOTOSUMMARY_BTN>Go To Summary<\/exl-static-text> <\/button> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion> <\/div>');n.put("App/Widget/Views/ReservationSummaryDirective.html","");n.put("App/Widget/Views/ShowInfoDirective.html",'<div> <accordion class=footer data-ng-if=::!ShowInfo.isSelfRegLayout> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_SHOWINFO_HEADER>Show Information<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code=WEB_WIDGET_SHOWINFO_P1> <p>Real show info goes in here.<\/p><ul><li>First thing<\/li><li>Another thing<\/li><li>Important Date<\/li><\/ul> <\/exl-static-text> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion>  <div data-ng-if=::ShowInfo.isSelfRegLayout> <button class=empty><i class="fa fa-fw fa-info-circle"><\/i><\/button> <\/div> <\/div>');n.put("App/Widget/Views/SocialNetworkDirective.html",'<div> <accordion class=footer> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_SOCIALNETWORK_HEADER>Get Social!<\/exl-static-text> <\/accordion-heading> <div class="content social-network"> <exl-static-text id-code=WEB_WIDGET_SOCIALNETWORK_P1 granularity=none> <a href="//www.behance.net/" target=_blank><img src=RefFiles/iconbehance.png alt=Behance title=Behance><\/a> <a href=//www.blogger.com target=_blank><img src=RefFiles/iconblogger.png alt=Blogger title=Blogger><\/a> <a href="//dribbble.com/" target=_blank><img src=RefFiles/icondribble.png alt=Dribble title=Dribble><\/a> <a href=//www.dropbox.com target=_blank><img src=RefFiles/icondropbox.png alt=Dropbox title=Dropbox><\/a> <a href=//www.facebook.com target=_blank><img src=RefFiles/iconfacebook.png alt=Facebook title=Facebook><\/a> <a href="//www.flickr.com/" target=_blank><img src=RefFiles/iconflicker.png alt=Flickr title=Flickr><\/a> <a href="//plus.google.com/" target=_blank><img src=RefFiles/icongoogleplus.png alt="Google Plus" title="Google Plus"><\/a> <a href="//instagram.com/" target=_blank><img src=RefFiles/iconinstagram.png alt=Instagram title=Instagram><\/a> <a href=//www.linkedin.com target=_blank><img src=RefFiles/iconlinkedin.png alt=LinkedIn title=LinkedIn><\/a> <a href="//www.pinterest.com/" target=_blank><img src=RefFiles/iconpinterest.png alt=Pinterest title=Pinterest><\/a> <a href=//www.nasa.gov/rss/dyn/breaking_news.rss target=_blank><img src=RefFiles/iconrss.png alt="RSS Feed" title="RSS Feed"><\/a> <a href="//www.tumblr.com/" target=_blank><img src=RefFiles/icontumbler.png alt=Tumbler title=Tumbler><\/a> <a href="//twitter.com/" target=_blank><img src=RefFiles/icontwitter.png alt=Twitter title=Twitter><\/a> <a href=//vimeo.com target=_blank><img src=RefFiles/iconvimeo.png alt=Vimeo title=Vimeo><\/a> <a href="//windows.microsoft.com/" target=_blank><img src=RefFiles/iconwindows.png alt=Windows title=Windows><\/a> <a href=//wordpress.com target=_blank><img src=RefFiles/iconwordpress.png alt=WordPress title=WordPress><\/a> <a href="//www.yahoo.com/" target=_blank><img src=RefFiles/iconyahoo.png alt=Yahoo! title=Yahoo!><\/a> <a href="//www.youtube.com/" target=_blank><img src=RefFiles/iconyoutube.png alt=YouTube title=YouTube><\/a> <\/exl-static-text> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion> <\/div>');n.put("App/Widget/Views/SponsoredByDirective.html",'<div class="exl-top-margin exl-bot-margin"> <exl-static-text id-code=WEB_WIDGET_SPONSOREDBY_HEADER><small><em>Sponsored By<\/em><\/small><\/exl-static-text> <div class=text-center data-interchange="[App/Widget/Views/Interchange-SponsorSmall.html, (small)] , [App/Widget/Views/Interchange-SponsorMedium.html, (medium)] , [App/Widget/Views/Interchange-SponsorLarge.html, (large)]"><\/div> <\/div>');n.put("App/Widget/Views/StaticTextModalDirective.html","<div> <exl-static-text id-code={{::modalCtrl.idCode}} granularity=none> {{::modalCtrl.defaultText}} <\/exl-static-text> <\/div>");n.put("App/Widget/Views/TranslateDirective.html",'<div> <accordion class=footer data-ng-if=::!translate.isSelfRegLayout> <exl-collapse-on-small-accordion-group> <accordion-heading> <exl-static-text allow-html=false id-code=WEB_WIDGET_TRANSLATE_HEADER>International<\/exl-static-text> <\/accordion-heading> <div class=content> <exl-static-text id-code=WEB_WIDGET_TRANSLATE_P1><\/exl-static-text> <button type=button class="small expand" data-ng-click=translate.launch()> <exl-static-text id-code=WEB_WIDGET_TRANSLATE_BTN><i class="fa fa-globe"><\/i>Translate this site!<\/exl-static-text> <\/button> <\/div> <\/exl-collapse-on-small-accordion-group> <\/accordion> <span data-ng-if=::translate.isSelfRegLayout> <button type=button class=empty data-ng-click=translate.launch()> <i class="fa fa-fw fa-globe"><\/i> <\/button> <\/span> <\/div>')}])