{"version":3,"sources":["../../../pages/home/event_view.js"],"names":["doc","NUMTOLOAD","EventViewPage","sectionPrograms","app","$","progContainer","filterBoxArea","startDate","moment","format","endDate","add","btnLoadMore","btnLaunch","eventIdx","lastIdx","curMonthCode","bindFilterEvents","loadIndex","topOfFilterBox","getBoundingClientRect","top","bindLaunch","Form","fetch","credentials","body","roleId","then","rsp","success","document","classList","console","log","msg","btnClear","btnfilterClose","btnApply","tbStartDate","tbEndDate","addEventListener","remove","toggle","window","y","util","getWindowScrollPosition","lastEventItem","loadingEvents","innerHeight","offsetTop","loadList","errorMsg","value","disabled","innerHTML","obj","scrollTo","ddProvider","gradeArea","contentArea","searchStr","grades","contents","$$","forEach","el","filter","providerId","requestAnimationFrame","cleanContainer","length","cntr","neededEvents","insertMonthBefore","push","eventId","monthCode","events","displayEvents","i","evt","idxBefore","indexOf","cnt","e","monthHeadDisplay","createElement","textContent","monthDisplay","appendChild","oneEventContainer","html","a","EventItem","btnReg","cbFree","cbOpen","evtItems","evtRow","checked","cost","row","contains","parentElement","err","JSON","stringify","pg"],"mappings":"usBAAC,CAAE,UAAUA,GAAV,EAAgB;AAClB;;AAEG,QAAMC,YAAY,EAAlB,CAHe;;AAKTC,iBALS;;AAOX,iCAAc;AACV,iBAAKC,eAAL,GAAuBC,IAAIC,CAAJ,CAAO,WAAP,CAAvB;AACH,iBAAKC,aAAL,GAAqBF,IAAIC,CAAJ,CAAO,oBAAP,CAArB;AACG,iBAAKE,aAAL,GAAqBH,IAAIC,CAAJ,CAAO,kBAAP,CAArB;AACA,iBAAKG,SAAL,GAAiBC,SAASC,MAAT,CAAiB,YAAjB,CAAjB;AACA,iBAAKC,OAAL,GAAeF,SAASG,GAAT,CAAc,CAAd,EAAiB,GAAjB,EAAuBF,MAAvB,CAA+B,YAA/B,CAAf;AACH,iBAAKG,WAAL,GAAmBT,IAAIC,CAAJ,CAAO,gBAAP,CAAnB;AACA,iBAAKS,SAAL,GAAiBV,IAAIC,CAAJ,CAAO,iBAAP,CAAjB;AACG,iBAAKU,QAAL,GAAgB,EAAhB;AACA,iBAAKC,OAAL,GAAe,CAAC,CAAhB;AACA,iBAAKC,YAAL,GAAoB,EAApB;AACA,iBAAKC,gBAAL;AACA,iBAAKC,SAAL;AACA,iBAAKC,cAAL,GAAsB,KAAKb,aAAL,CAAmBc,qBAAnB,GAA2CC,GAAjE;AACA,iBAAKC,UAAL;AACH,SAtBU;;AAwBQ;AACf,oBAAInB,IAAIoB,IAAR,CAAc,KAAKjB,aAAnB;;AAEAH,oBAAIC,CAAJ,CAAMoB,KAAN,CAAa,iCAAb,EAAgD;AACrDC,iCAAa,SADwC;AAErDC,0BAAM;AACLC,gCAAQ,CADH,EAF+C,EAAhD;;AAKHC,oBALG,CAKE,eAAO;AACd,wBAAIC,IAAIC,OAAR,EAAiB;AAChBC,iCAASL,IAAT,CAAcM,SAAd,CAAwBrB,GAAxB,CAA4B,WAA5B;AACA,qBAFD,MAEO;AACNsB,gCAAQC,GAAR,CAAYL,IAAIM,GAAhB;AACA;AACD,iBAXK;;AAaH,oBAAMC,WAAWjC,IAAIC,CAAJ,CAAO,mBAAP,CAAjB;AACG,oBAAMiC,iBAAiBlC,IAAIC,CAAJ,CAAO,gBAAP,CAAvB;AACA,qBAAKkC,QAAL,GAAgBnC,IAAIC,CAAJ,CAAO,mBAAP,CAAhB;AACA,qBAAKmC,WAAL,GAAmBpC,IAAIC,CAAJ,CAAO,eAAP,CAAnB;AACA,qBAAKoC,SAAL,GAAiBrC,IAAIC,CAAJ,CAAO,aAAP,CAAjB;;AAEH,oBAAKiC,cAAL,EAAsB;AACrBA,mCAAeI,gBAAf,CAAiC,OAAjC,EAA0C,aAAK;AAC9C1C,4BAAI2B,IAAJ,CAASM,SAAT,CAAmBU,MAAnB,CAA2B,QAA3B;AACA3C,4BAAI2B,IAAJ,CAASM,SAAT,CAAmBW,MAAnB,CAA2B,WAA3B;AACA,qBAHD;AAIA;;AAEEC,uBAAOH,gBAAP,CAAyB,QAAzB,EAAmC,aAAK;AACpC,wBAAMI,IAAI1C,IAAI2C,IAAJ,CAASC,uBAAT,EAAV;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAK,MAAKC,aAAL,IAAsB,CAAC,MAAKC,aAAjC,EAAiD;AAC7C,4BAAKJ,IAAID,OAAOM,WAAX,IAA0B,MAAKF,aAAL,CAAmBG,SAAlD,EAA8D;AAC1D,kCAAKC,QAAL,CAAe,KAAf;AACH;AACJ;AACJ,iBArBD;;;AAwBA,oBAAK,KAAKxC,WAAV,EAAwB;AACpB,yBAAKA,WAAL,CAAiB6B,gBAAjB,CAAmC,OAAnC,EAA4C,aAAK;AAC7C,8BAAKW,QAAL,CAAc,KAAd;AACH,qBAFD;AAGH;;AAED,oBAAK,KAAKZ,SAAV,EAAsB;AAClB,yBAAKA,SAAL,CAAeC,gBAAf,CAAiC,MAAjC,EAAyC,aAAK;AAC1C,4BAAMY,WAAWlD,IAAIC,CAAJ,CAAO,YAAP,CAAjB;;AAEA,4BAAK,MAAKoC,SAAL,CAAec,KAAf,GAAuB,MAAKf,WAAL,CAAiBe,KAA7C,EAAqD;AACjDD,qCAASrB,SAAT,CAAmBU,MAAnB,CAA2B,QAA3B;AACA,kCAAKF,SAAL,CAAeR,SAAf,CAAyBrB,GAAzB,CAA8B,YAA9B;AACA,kCAAK2B,QAAL,CAAciB,QAAd,GAAyB,IAAzB;AACA,kCAAKjB,QAAL,CAAcN,SAAd,CAAwBrB,GAAxB,CAA6B,UAA7B;AACH,yBALD,MAKO;AACH0C,qCAASrB,SAAT,CAAmBrB,GAAnB,CAAwB,QAAxB;AACA,kCAAK6B,SAAL,CAAeR,SAAf,CAAyBU,MAAzB,CAAiC,YAAjC;AACA,kCAAKJ,QAAL,CAAciB,QAAd,GAAyB,KAAzB;AACA,kCAAKjB,QAAL,CAAcN,SAAd,CAAwBU,MAAxB,CAAgC,UAAhC;AACH;AACJ,qBAdD;AAeH;;AAED,oBAAKN,QAAL,EAAgB;;AAEZA,6BAASK,gBAAT,CAA2B,OAA3B,EAAoC,aAAK;AACrCtC,4BAAIC,CAAJ,CAAMoB,KAAN,CAAa,8BAAb,EAA6C,EAA7C,EAAiDI,IAAjD,CAAuD,eAAO;;AAE1D,gCAAKC,IAAIC,OAAT,EAAmB;AACf,sCAAKxB,aAAL,CAAmBkD,SAAnB,GAA+B3B,IAAI4B,GAAnC;AACA,sCAAKxC,gBAAL;AACA,sCAAKC,SAAL;AACH,6BAJD,MAIO;AACHe,wCAAQC,GAAR,CAAaL,IAAIM,GAAjB;AACH;;AAEDS,mCAAOc,QAAP,CAAiB,CAAjB,EAAoB,CAApB;AACH,yBAXD;;AAaH,qBAdD;AAeH;;AAED,oBAAK,KAAKpB,QAAV,EAAqB;;AAEjB,yBAAKA,QAAL,CAAcG,gBAAd,CAAgC,OAAhC,EAAyC,aAAK;AAC1C;;;AAGA,4BAAMkB,aAAaxD,IAAIC,CAAJ,CAAO,cAAP,CAAnB;AACMwD,oCAAYzD,IAAIC,CAAJ,CAAO,eAAP,CADlB;AAEMyD,sCAAc1D,IAAIC,CAAJ,CAAO,iBAAP,CAFpB;AAGM0D,oCAAY3D,IAAIC,CAAJ,CAAO,eAAP,CAHlB;;AAKA,4BAAI2D,SAAS,EAAb;AACIC,mCAAW,EADf;;AAGA7D,4BAAI8D,EAAJ,CAAO,gCAAP,EAAyCL,SAAzC,EAAoDM,OAApD,CAA4D,cAAM;AAC9DH,sCAAUI,GAAGb,KAAH,GAAW,GAArB;AACH,yBAFD;;AAIAnD,4BAAI8D,EAAJ,CAAO,gCAAP,EAAyCJ,WAAzC,EAAsDK,OAAtD,CAA8D,cAAM;AAChEF,wCAAYG,GAAGb,KAAH,GAAW,GAAvB;AACH,yBAFD;;AAIA,4BAAK,MAAKf,WAAL,CAAiBe,KAAjB,KAA2B,EAA3B,IAAiC,MAAKd,SAAL,CAAec,KAAf,KAAyB,EAA/D,EAAoE;AAChE,kCAAKf,WAAL,CAAiBe,KAAjB,GAAyB,MAAK/C,SAA9B;AACA,kCAAKiC,SAAL,CAAec,KAAf,GAAuB,MAAK5C,OAA5B;AACH;;AAED,4BAAM0D,SAAS;AACXC,wCAAYV,WAAWL,KADZ;AAEX/C,uCAAW,MAAKgC,WAAL,CAAiBe,KAFjB;AAGX5C,qCAAS,MAAK8B,SAAL,CAAec,KAHb;AAIXS,oCAAQA,MAJG;AAKXC,sCAAUA,QALC;AAMXF,uCAAWA,UAAUR,KANV,EAAf;;;AASAgB,8CAAuB,aAAK;AACxB,kCAAKpD,SAAL,CAAgBkD,MAAhB;AACArE,gCAAI2B,IAAJ,CAASM,SAAT,CAAmBU,MAAnB,CAA2B,WAA3B;AACAE,mCAAOc,QAAP,CAAiB,CAAjB,EAAoB,CAApB;AACH,yBAJD;;AAMH,qBAxCD;AAyCH;AACJ,aApKU;;AAsKDa,0BAtKC,EAsKgB;;AAEvB;AACA,oBAAK,KAAKxD,OAAL,GAAe,KAAKD,QAAL,CAAc0D,MAAlC,EAA2C;;AAEvC,wBAAIC,OAAO,CAAX;AACIC,mCAAe,EADnB;AAEIC,wCAAoB,EAFxB;;AAIA;AACA,2BAAQ,KAAK5D,OAAL,GAAe,KAAKD,QAAL,CAAc0D,MAAd,GAAuB,CAA9C,EAAkD;;AAE9C,6BAAKzD,OAAL,IAAgB,CAAhB;AACA2D,qCAAaE,IAAb,CAAmB,KAAK9D,QAAL,CAAc,KAAKC,OAAnB,EAA4B8D,OAA/C;;AAEA,4BAAK,KAAK/D,QAAL,CAAc,KAAKC,OAAnB,EAA4B+D,SAA5B,KAA0C,KAAK9D,YAApD,EAAmE;AAC/D2D,8CAAkBC,IAAlB,CAAwB,KAAK9D,QAAL,CAAc,KAAKC,OAAnB,EAA4B8D,OAApD;AACA,iCAAK7D,YAAL,GAAoB,KAAKF,QAAL,CAAc,KAAKC,OAAnB,EAA4B+D,SAAhD;AACH;AACDL,gCAAQ,CAAR;AACA,4BAAIA,OAAOzE,SAAX,EAAsB;AAClB;AACH;AACJ;AACD,wBAAK0E,aAAaF,MAAb,GAAsB,CAA3B,EAA+B;AAC9B,6BAAKvB,aAAL,GAAqB,IAArB;;AAEG,4BAAI;;AAEA9C,gCAAIC,CAAJ,CAAMoB,KAAN,CAAa,sBAAb,EAAqC;AACjCE,sCAAM;AACFqD,4CAAQL,YADN,EAD2B,EAArC;;AAIG9C,gCAJH,CAIS,eAAO;;AAEZ,oCAAKC,IAAIC,OAAT,EAAmB;AACf,wCAAMkD,gBAAgBnD,IAAI4B,GAA1B;;AAEA,wCAAKc,cAAL,EAAsB;AAClB,+CAAKlE,aAAL,CAAmBmD,SAAnB,GAA+B,EAA/B;AACH;;AAED,yCAAM,IAAIyB,IAAI,CAAd,EAAiBA,IAAID,cAAcR,MAAnC,EAA2CS,GAA3C,EAAiD;AAC7C,4CAAIC,MAAMF,cAAcC,CAAd,CAAV;AACA;AACA,4CAAIE,YAAYR,kBAAkBS,OAAlB,CAA2BF,IAAIL,OAA/B,CAAhB;;AAEA,4CAAKM,YAAY,CAAC,CAAlB,EAAsB;AAClB;;AAEA,iDAAM,IAAIE,MAAM,CAAhB,EAAmBA,MAAM,OAAKvE,QAAL,CAAc0D,MAAvC,EAA+Ca,KAA/C,EAAuD;AACnD,oDAAIC,IAAI,OAAKxE,QAAL,CAAcuE,GAAd,CAAR;AACA,oDAAKC,EAAET,OAAF,KAAcF,kBAAkBQ,SAAlB,CAAnB,EAAkD;AAC9C,wDAAII,mBAAmBxF,IAAIyF,aAAJ,CAAmB,KAAnB,CAAvB;AACAD,qEAAiBE,WAAjB,GAA+BH,EAAEI,YAAjC;AACAH,qEAAiBvD,SAAjB,CAA2BrB,GAA3B,CAAgC,uBAAhC;AACA,2DAAKN,aAAL,CAAmBsF,WAAnB,CAAgCJ,gBAAhC;AACA;AACH;AACJ;AACJ;;AAED;AACA,+CAAKK,iBAAL,GAAyB7F,IAAIyF,aAAJ,CAAmB,KAAnB,CAAzB;AACA,+CAAKI,iBAAL,CAAuBpC,SAAvB,GAAmC0B,IAAIW,IAAvC;AACA,+CAAKD,iBAAL,CAAuB5D,SAAvB,CAAiCrB,GAAjC,CAAsC,YAAtC;;AAEA,+CAAKN,aAAL,CAAmBsF,WAAnB,CAAgC,OAAKC,iBAArC;AACA,4CAAIE,IAAI,IAAI3F,IAAI4F,SAAR,CAAmBb,IAAIL,OAAvB,EAAgC,OAAKe,iBAArC,CAAR;AACA,4CAAKX,IAAI,CAAJ,KAAUD,cAAcR,MAA7B,EAAsC;AAClCF,kEAAuB,aAAK,CAAE,OAAKtB,aAAL,GAAqB,OAAK4C,iBAA1B,CAA8C,CAA5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAMI,SAAS7F,IAAI8D,EAAJ,CAAQ,aAAR,CAAf;AACA+B,mDAAO9B,OAAP,CAAgB,cAAM;AAClBC,mDAAGX,SAAH,GAAe,QAAf;AACH,6CAFD;AAGH;AACJ,qCAnDc,CAmDb;;AAEF,wCAAMyC,SAAS9F,IAAIC,CAAJ,CAAO,UAAP,CAAf;AACA,wCAAM8F,SAAS/F,IAAIC,CAAJ,CAAO,UAAP,CAAf;AACA,wCAAM+F,WAAWhG,IAAI8D,EAAJ,CAAQ,aAAR,CAAjB;AACA,wCAAMmC,SAASjG,IAAI8D,EAAJ,CAAQ,kBAAR,CAAf;;AAEA,wCAAKgC,OAAOI,OAAZ,EAAsB;AAClBF,iDAASjC,OAAT,CAAkB,eAAO;AACrB,gDAAMoC,OAAOnG,IAAIC,CAAJ,CAAO,WAAP,EAAoB8E,GAApB,CAAb;;AAEA,gDAAKoB,KAAKb,WAAL,KAAqB,OAArB,IAAgCa,KAAKb,WAAL,KAAqB,MAA1D,EAAmE;AAC/DP,oDAAIlD,SAAJ,CAAcrB,GAAd,CAAmB,MAAnB;AACH,6CAFD,MAEO;AACHuE,oDAAIlD,SAAJ,CAAcrB,GAAd,CAAmB,UAAnB;AACH;AACJ,yCARD;AASH;;AAED,wCAAKuF,OAAOG,OAAZ,EAAsB;AAClBD,+CAAOlC,OAAP,CAAgB,eAAO;AACnB,gDAAKqC,IAAIvE,SAAJ,CAAcwE,QAAd,CAAwB,QAAxB,CAAL,EAA0C;AACtCD,oDAAIE,aAAJ,CAAkBzE,SAAlB,CAA4BrB,GAA5B,CAAiC,QAAjC;AACH;AACJ,yCAJD;AAKH;;AAED,2CAAKC,WAAL,CAAiBoB,SAAjB,CAA2BU,MAA3B,CAAmC,QAAnC;;AAEH,iCAhFD,MAgFO;AACHT,4CAAQC,GAAR,CAAaL,IAAIM,GAAjB;AACH;;AAED,uCAAKc,aAAL,GAAqB,KAArB;;AAEH,6BA5FD;;AA8FH;AACD,+BAAQyD,GAAR,EAAc;AACV,iCAAKrG,aAAL,CAAmBmD,SAAnB,GAA+B,0FAA/B;AACA,iCAAKP,aAAL,GAAqB,KAArB;AACAhB,oCAAQC,GAAR,CAAawE,GAAb;AACH;AACJ;;AAED,wBAAKhC,aAAaF,MAAb,GAAsBxE,SAA3B,EAAuC;AACnC,6BAAKY,WAAL,CAAiBoB,SAAjB,CAA2BrB,GAA3B,CAAgC,QAAhC;AACH;;AAEJ,iBApID,MAoIO;AACH,yBAAKC,WAAL,CAAiBoB,SAAjB,CAA2BrB,GAA3B,CAAgC,QAAhC;AACH;AACJ,aAhTU;;AAkTS;;AAEnB,aApTU;;AAsTAyD,kBAtTA,EAsTS;;AAEhB,oBAAK,CAACA,MAAN,EAAe;AACXA,6BAAS;AACLC,oCAAY,CAAC,CADR;AAEL9D,mCAAW,KAAKA,SAFX;AAGLG,iCAAS,KAAKA,OAHT;AAILqD,gCAAQ,EAJH;AAKLC,kCAAU,EALL;AAMLF,mCAAW,EANN,EAAT;;AAQH;;AAED,qBAAKlD,WAAL,CAAiBoB,SAAjB,CAA2BrB,GAA3B,CAAgC,QAAhC;AACD;AACC,qBAAKK,YAAL,GAAoB,EAApB;;AAEAb,oBAAIC,CAAJ,CAAMoB,KAAN,CAAa,uBAAb,EAAsC;AAClCE,0BAAM;AACF0C,gCAAQuC,KAAKC,SAAL,CAAgBxC,MAAhB,CADN,EAD4B,EAAtC;;AAIGxC,oBAJH,CAIS,eAAO;AACZ,wBAAKC,IAAIC,OAAT,EAAmB;AACf,+BAAKf,OAAL,GAAe,CAAC,CAAhB;AACA,+BAAKD,QAAL,GAAgBe,IAAI4B,GAApB;;AAEA,4BAAK,OAAK3C,QAAL,CAAc0D,MAAd,GAAuB,CAA5B,EAAgC;AAC5B,mCAAKnE,aAAL,CAAmBmD,SAAnB,GAA+B,oIAA/B;AACA,mCAAKJ,QAAL,CAAe,IAAf;AACH,yBAHD;AAIK;AACD,mCAAK/C,aAAL,CAAmBmD,SAAnB,GAA+B,gCAA/B;AACH;;AAEJ,qBAZD,MAYO;AACHvB,gCAAQC,GAAR,CAAaL,IAAIM,GAAjB;AACH;AACJ,iBApBD;AAqBH,aA5VU;;AA8VE;AACZ,oBAAK,KAAKtB,SAAV,EAAsB;AACrB,yBAAKA,SAAL,CAAe4B,gBAAf,CAAiC,OAAjC,EAA0C,aAAK;AAC9C1C,4BAAI2B,IAAJ,CAASM,SAAT,CAAmBW,MAAnB,CAA2B,WAA3B;AACA,qBAFD;AAGA;AACD,aApWU;;;AAuWf,QAAIkE,KAAK,IAAI5G,aAAJ,EAAT;;AAEH,CAzWA,EAyWG8B,QAzWH","file":"event_view.js","sourcesContent":["( function( doc ) {\r\n\t'use strict';\r\n\r\n const NUMTOLOAD = 10;\r\n\r\n class EventViewPage {\r\n\r\n constructor() {\r\n this.sectionPrograms = app.$( '.programs' );\r\n \tthis.progContainer = app.$( '#program-container' );\r\n this.filterBoxArea = app.$( '#filter-box-area' );\r\n this.startDate = moment().format( 'MM/DD/YYYY' );\r\n this.endDate = moment().add( 6, 'M' ).format( 'MM/DD/YYYY' );\r\n \tthis.btnLoadMore = app.$( '#btn-load-more' );\r\n \tthis.btnLaunch = app.$( '#bt-open-filter' );\r\n this.eventIdx = [];\r\n this.lastIdx = -1;\r\n this.curMonthCode = '';\r\n this.bindFilterEvents();\r\n this.loadIndex();\r\n this.topOfFilterBox = this.filterBoxArea.getBoundingClientRect().top; \r\n this.bindLaunch();\r\n }\r\n\r\n bindFilterEvents() {\r\n new app.Form( this.filterBoxArea );\r\n\r\n app.$.fetch( 'api/membership/userAuthenticate', {\r\n \t\t\tcredentials: 'include',\r\n \t\t\tbody: {\r\n \t\t\t\troleId: 2\r\n \t\t\t}\r\n \t\t}).then(rsp => {\r\n \t\t\tif (rsp.success) {\r\n \t\t\t\tdocument.body.classList.add('logged-in');\r\n \t\t\t} else {\r\n \t\t\t\tconsole.log(rsp.msg);\r\n \t\t\t}\r\n \t\t});\r\n\r\n \tconst btnClear = app.$( '#btn-clear-filter' );\r\n const btnfilterClose = app.$( '#btn-box-close' );\r\n this.btnApply = app.$( '#btn-apply-filter' );\r\n this.tbStartDate = app.$( '#tb-startDate' );\r\n this.tbEndDate = app.$( '#tb-endDate' );\r\n\r\n \tif ( btnfilterClose ) {\r\n \t\tbtnfilterClose.addEventListener( 'click', e => {\r\n \t\t\tdoc.body.classList.remove( 'nav-in' );\r\n \t\t\tdoc.body.classList.toggle( 'filter-in' );\r\n \t\t} );\r\n \t}\r\n \r\n window.addEventListener( 'scroll', e => {\r\n const y = app.util.getWindowScrollPosition();\r\n\r\n //let newTopMargin = y - this.topOfFilterBox;\r\n\r\n //if ( newTopMargin < 0 ) {\r\n // newTopMargin = 0;\r\n //}\r\n\r\n //if ( newTopMargin > 0 && this.progContainer.offsetHeight > this.filterBoxArea.offsetHeight ) {\r\n // this.filterBoxArea.classList.add( 'fixed' );\r\n //} else {\r\n // this.filterBoxArea.classList.remove( 'fixed' );\r\n //}\r\n \r\n // Auto load more content on scroll\r\n if ( this.lastEventItem && !this.loadingEvents ) {\r\n if ( y + window.innerHeight >= this.lastEventItem.offsetTop ) {\r\n this.loadList( false );\r\n }\r\n }\r\n } );\r\n\r\n\r\n if ( this.btnLoadMore ) {\r\n this.btnLoadMore.addEventListener( 'click', e => {\r\n this.loadList(false);\r\n });\r\n }\r\n\r\n if ( this.tbEndDate ) {\r\n this.tbEndDate.addEventListener( 'blur', e => {\r\n const errorMsg = app.$( '.error-msg' );\r\n \r\n if ( this.tbEndDate.value < this.tbStartDate.value ) {\r\n errorMsg.classList.remove( 'hidden' );\r\n this.tbEndDate.classList.add( 'form-error' );\r\n this.btnApply.disabled = true;\r\n this.btnApply.classList.add( 'btn-fail' );\r\n } else {\r\n errorMsg.classList.add( 'hidden' );\r\n this.tbEndDate.classList.remove( 'form-error' );\r\n this.btnApply.disabled = false;\r\n this.btnApply.classList.remove( 'btn-fail' );\r\n }\r\n } );\r\n }\r\n\r\n if ( btnClear ) {\r\n\r\n btnClear.addEventListener( 'click', e => {\r\n app.$.fetch( 'api/programEventFitlerBoxGet', {}).then( rsp => {\r\n\r\n if ( rsp.success ) {\r\n this.filterBoxArea.innerHTML = rsp.obj;\r\n this.bindFilterEvents();\r\n this.loadIndex();\r\n } else {\r\n console.log( rsp.msg );\r\n }\r\n\r\n window.scrollTo( 0, 0 );\r\n });\r\n\r\n });\r\n }\r\n\r\n if ( this.btnApply ) {\r\n\r\n this.btnApply.addEventListener( 'click', e => {\r\n //collect filter settings\r\n\r\n\r\n const ddProvider = app.$( '#dd-provider' ),\r\n gradeArea = app.$( '#grade-filter' ),\r\n contentArea = app.$( '#content-filter' ),\r\n searchStr = app.$( '#tb-searchStr' );\r\n\r\n let grades = '',\r\n contents = '';\r\n\r\n app.$$('input[type=\"checkbox\"]:checked', gradeArea).forEach(el => { \r\n grades += el.value + ',';\r\n });\r\n\r\n app.$$('input[type=\"checkbox\"]:checked', contentArea).forEach(el => {\r\n contents += el.value + ',';\r\n } );\r\n\r\n if ( this.tbStartDate.value === '' || this.tbEndDate.value === '' ) {\r\n this.tbStartDate.value = this.startDate;\r\n this.tbEndDate.value = this.endDate;\r\n }\r\n \r\n const filter = {\r\n providerId: ddProvider.value,\r\n startDate: this.tbStartDate.value,\r\n endDate: this.tbEndDate.value,\r\n grades: grades,\r\n contents: contents,\r\n searchStr: searchStr.value\r\n };\r\n\r\n requestAnimationFrame( _ => {\r\n this.loadIndex( filter );\r\n doc.body.classList.remove( 'filter-in' );\r\n window.scrollTo( 0, 0 );\r\n } );\r\n\r\n });\r\n }\r\n }\r\n\r\n loadList( cleanContainer ) {\r\n\r\n //First we need to build a list of the next needed events\r\n if ( this.lastIdx < this.eventIdx.length ) {\r\n\r\n let cntr = 1,\r\n neededEvents = [],\r\n insertMonthBefore = [];\r\n\r\n //Build list of needed events to pass to web service\r\n while ( this.lastIdx < this.eventIdx.length - 1 ) {\r\n\r\n this.lastIdx += 1;\r\n neededEvents.push( this.eventIdx[this.lastIdx].eventId );\r\n\r\n if ( this.eventIdx[this.lastIdx].monthCode !== this.curMonthCode ) {\r\n insertMonthBefore.push( this.eventIdx[this.lastIdx].eventId );\r\n this.curMonthCode = this.eventIdx[this.lastIdx].monthCode;\r\n }\r\n cntr += 1;\r\n if (cntr > NUMTOLOAD) {\r\n break;\r\n }\r\n }\r\n if ( neededEvents.length > 0 ) {\r\n \tthis.loadingEvents = true;\r\n\r\n try {\r\n\r\n app.$.fetch( 'api/eventsGetForView', {\r\n body: {\r\n events: neededEvents\r\n }\r\n }).then( rsp => {\r\n\r\n if ( rsp.success ) {\r\n const displayEvents = rsp.obj;\r\n\r\n if ( cleanContainer ) {\r\n this.progContainer.innerHTML = '';\r\n }\r\n\r\n for ( let i = 0; i < displayEvents.length; i++ ) {\r\n let evt = displayEvents[i];\r\n //Check to see if we need to insert the Month before current event\r\n let idxBefore = insertMonthBefore.indexOf( evt.eventId );\r\n\r\n if ( idxBefore > -1 ) {\r\n // need to insert month header, find the event in the EventList to get month display string.\r\n\r\n for ( let cnt = 0; cnt < this.eventIdx.length; cnt++ ) {\r\n let e = this.eventIdx[cnt];\r\n if ( e.eventId === insertMonthBefore[idxBefore] ) {\r\n let monthHeadDisplay = doc.createElement( 'div' );\r\n monthHeadDisplay.textContent = e.monthDisplay;\r\n monthHeadDisplay.classList.add( 'event-view-month-head' );\r\n this.progContainer.appendChild( monthHeadDisplay );\r\n //break;\r\n }\r\n }\r\n }\r\n\r\n //dislay the event on page\r\n this.oneEventContainer = doc.createElement( 'div' );\r\n this.oneEventContainer.innerHTML = evt.html;\r\n this.oneEventContainer.classList.add( 'event-item' );\r\n\r\n this.progContainer.appendChild( this.oneEventContainer );\r\n let a = new app.EventItem( evt.eventId, this.oneEventContainer );\r\n if ( i + 1 === displayEvents.length ) {\r\n requestAnimationFrame( _ => { this.lastEventItem = this.oneEventContainer; });\r\n\r\n // Display FREE when they enter 0 as Cost\r\n //const costValue = app.$$( '.cost-val' );\r\n //costValue.forEach( el => {\r\n // if ( el.innerHTML.indexOf( '$0' ) === 0 || el.innerHTML.indexOf( '0' ) === 0 ) {\r\n // el.innerHTML = 'FREE';\r\n // }\r\n //} );\r\n\r\n // Toggle usages of Registration button based on Max Sites and Deadline\r\n const btnReg = app.$$( '.reg-closed' );\r\n btnReg.forEach( el => {\r\n el.innerHTML = 'Closed';\r\n } ); \r\n }\r\n } // end of event list loop\r\n\r\n const cbFree = app.$( '#cb-free' );\r\n const cbOpen = app.$( '#cb-open' );\r\n const evtItems = app.$$( '.event-item' );\r\n const evtRow = app.$$( '.event-view-row ' );\r\n \r\n if ( cbFree.checked ) {\r\n evtItems.forEach( evt => {\r\n const cost = app.$( '.cost-val', evt );\r\n \r\n if ( cost.textContent === '$FREE' || cost.textContent === 'FREE' ) {\r\n evt.classList.add( 'free' );\r\n } else {\r\n evt.classList.add( 'not-free' );\r\n }\r\n } );\r\n }\r\n\r\n if ( cbOpen.checked ) {\r\n evtRow.forEach( row => {\r\n if ( row.classList.contains( 'closed' ) ) {\r\n row.parentElement.classList.add( 'hidden' );\r\n } \r\n } );\r\n }\r\n\r\n this.btnLoadMore.classList.remove( 'hidden' );\r\n\r\n } else {\r\n console.log( rsp.msg );\r\n }\r\n\r\n this.loadingEvents = false;\r\n\r\n });\r\n\r\n }\r\n catch ( err ) {\r\n this.progContainer.innerHTML = 'Load Error. Refresh page or hit the \"Apply\" filter button again to correct the problem.';\r\n this.loadingEvents = false;\r\n console.log( err );\r\n }\r\n }\r\n\r\n if ( neededEvents.length < NUMTOLOAD ) {\r\n this.btnLoadMore.classList.add( 'hidden' );\r\n }\r\n\r\n } else {\r\n this.btnLoadMore.classList.add( 'hidden' );\r\n }\r\n }\r\n\r\n toggleRegisterBtn() {\r\n \t\r\n }\r\n\r\n loadIndex( filter ) {\r\n\r\n if ( !filter ) {\r\n filter = {\r\n providerId: -1,\r\n startDate: this.startDate,\r\n endDate: this.endDate,\r\n grades: '',\r\n contents: '',\r\n searchStr: ''\r\n };\r\n }\r\n\r\n this.btnLoadMore.classList.add( 'hidden' );\r\n // this.progContainer.innerHTML = '
';\r\n this.curMonthCode = '';\r\n\r\n app.$.fetch( 'api/eventsGetFiltered', {\r\n body: {\r\n filter: JSON.stringify( filter )\r\n }\r\n }).then( rsp => {\r\n if ( rsp.success ) {\r\n this.lastIdx = -1;\r\n this.eventIdx = rsp.obj; \r\n\r\n if ( this.eventIdx.length > 0 ) {\r\n this.progContainer.innerHTML = '
';\r\n this.loadList( true );\r\n }\r\n else {\r\n this.progContainer.innerHTML = 'No scheduled events available.';\r\n }\r\n \r\n } else {\r\n console.log( rsp.msg );\r\n }\r\n });\r\n }\r\n\r\n bindLaunch() {\r\n \tif ( this.btnLaunch ) {\r\n \t\tthis.btnLaunch.addEventListener( 'click', e => {\r\n \t\t\tdoc.body.classList.toggle( 'filter-in' );\r\n \t\t} );\r\n \t}\r\n }\r\n }\r\n\r\n let pg = new EventViewPage();\r\n\r\n})( document );"]}