{"version":3,"file":"library/js/build/main.js","mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I,8BAA8B;AAC5K,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B,4DAA4D,aAAa,uBAAuB;AAChG;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,qBAAqB;AACrF,8BAA8B,OAAO;AACrC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,cAAc,2BAA2B;AACzC,KAAK;AACL;AACA,cAAc,kBAAkB;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,cAAc;AACd;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG,aAAa;AAChB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC,OAAO;AACP;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF,wEAAwE,WAAW,QAAQ,mBAAmB;AAC9G;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH,WAAW;AACX;AACA;AACA,GAAG;AACH,WAAW;AACX;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,yBAAyB;AAC3C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,QAAQ,EAAE;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qBAAqB;AACjF;AACA;AACA;AACA,kEAAkE,2EAA2E,0CAA0C;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uCAAuC,GAAG,QAAQ,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,gEAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,4DAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE;AACN;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,mBAAO,CAAC,kFAA+B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE,UAAU,IAAI,UAAU,IAAI;AACpE,uCAAuC,EAAE,UAAU,IAAI,UAAU,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA,WAAW;AACX;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G,sFAAsF,mBAAmB,WAAW;AAChO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iDAAiD,0CAA0C;AACtJ;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,2DAA2D,gDAAgD,0CAA0C;AACrJ;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2DAA2D,0BAA0B,0BAA0B,mBAAmB;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0CAA0C;AAC5G;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,qDAAqD,0CAA0C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,0BAA0B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT;AACA,uFAAuF,2CAA2C,0CAA0C;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,gBAAgB;AAChB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;ACngID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,UAAU,IAAI,UAAU,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA,qCAAqC,gCAAgC;AACrE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,gBAAgB;AAChB,kBAAkB;AAClB,mBAAmB;AACnB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,8CAA8C,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,yFAAyF;AACrG,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,2BAA2B,+CAA+C;AAC1E;AACA;AACA;AACA,gEAAgE,+CAA+C,OAAO,2BAA2B,sBAAsB;AACvK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;;;;;;;;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK,cAAc,EAAE;AAC7C,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE;AAC7B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,MAAM;AACX;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yLAAyL,2CAA2C;AACpO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sOAAsO,gCAAgC;AACtQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,mBAAmB,4CAA4C,gBAAgB;AAC1I;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gEAAgE;AAClH;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,+BAA+B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0BAA0B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;ACvnCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2DAA2D,+CAA+C,OAAO,2BAA2B,sBAAsB;AAClK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,wCAAwC,sCAAsC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4CAA4C,2BAA2B,sBAAsB;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,2BAA2B,sBAAsB;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACv7BD;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;;;;;;GAMG;;;EAGA;AAE6C;AAEhD,CAAC,CAAC,QAAQ,CAAC;KACR,EAAE;AACD,YAAY;AACZ,OAAO,EACP,GAAG,EACH,UAAmC,KAAiB;IAClD,MAAM,cAAc,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAErD,0DAA0D;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC9E,OAAO;KACR;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC1H,CAAC,CAAC,qDAAW,CAAC,mBAAmB,CAAC,eAAe;QACjD,CAAC,CAAC,qDAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC;IAEpD,wDAAwD;IACxD,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAExB,MAAM,CAAC,iBAAiB,CAAC;QACvB,aAAa,EAAE,UAAU;QACzB,YAAY,EAAE,qDAAW,CAAC,mBAAmB,CAAC,WAAW;QACzD,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,0BAA0B;KACrC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC,CAAC;AAEP,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,qDAAW,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACxE,OAAO,KAAK,CAAC;KACd;SAAM;QACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qDAAW,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxF,IACE,qDAAW,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;mBACzE,CACD,MAAM,GAAG,qDAAW,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ;uBACvE,MAAM,GAAG,qDAAW,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,CAC9E,EACD;gBACA,OAAO,KAAK,CAAC;aACd;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,CAAC,CAAC;IACA,MAAM,CAAC,wBAAwB,CAC7B,0BAA0B,EAC1B;QACE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,GAAG,EAAE;YACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAClC;aAAM;YACL,GAAG,CAAC,KAAK,EAAE,CAAC;SACb;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;ACrDH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBA;AACA;AAOA;IACA;IACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;KACA;IACA;QACA;YACA;YACA;YACA;YACA;YACA;SACA;IACA;IACA;QACA;YACA;gBACA;aACA;YAEA;QACA;QAEA;YACA;QACA;QAEA;YACA;gBACA;YACA;SACA;IACA;IACA;QACA;YACA;QACA;KACA;IACA;QACA;YACA;gBACA;gBACA;gBACA;aACA;QACA;KACA;IACA;QACA;YACA;YACA;gBACA;gBACA;gBACA;oBACA;oBACA;wBACA;qBACA;yBAAA;wBACA;qBACA;oBACA;gBACA;aACA;YAEA;QACA;QACA;YACA;YACA;gBACA;aACA;YAEA;QACA;QACA;YACA;YACA;gBACA,oCACA,iBACA,kEACA,oDACA,aACA;aACA;YACA;YAEA;gBACA;oBACA;gBACA;aACA;iBAAA;gBACA;aACA;QACA;KACA;CACA;;;;;;;;;;;;;;;;;AC1JA;;;;;;GAMA;;;;;;;;;;;;;EAaA;AAEA;AAKA;IACA;IACA;QACA;QACA;QACA;KACA;IACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;QACA;YACA;YACA;SACA;KACA;IACA;QACA;YACA;gBACA;aACA;iBAAA;gBACA;aACA;QACA;QAEA;YACA;QACA;QACA;YACA;QACA;IACA;IACA;QACA;YACA;YACA;YACA;YACA;YACA;SACA;IACA;IACA;QACA;YACA;YACA;YACA;gBACA;aACA;YACA;gBACA;aACA;YAEA;gBACA;aACA;YACA;QACA;QACA;YACA;gBACA;gBACA;gBACA;gBACA;aACA;QACA;QACA;YACA;gBACA;aACA;QACA;KACA;IACA;QACA;YACA;gBACA;gBACA;gBAEA;oBACA;gBACA;aAEA;iBAAA;gBACA;gBACA;oBACA;oBACA;iBACA;aACA;QACA;KACA;IACA;QACA;YACA;gBACA;oBACA;iBACA;qBAAA;oBACA;iBACA;aACA;QACA;QAEA;YACA;YACA;gBACA;aACA;YAEA;QACA;KACA;CACA;;;;;;;;;;;;;;;;;;ACxKA;;;;;;GAMA;;;;;;;;;EASA;AAEA;AACA;AAuBA;IACA;IACA;IACA;QACA;YACA;QACA;QAEA;YACA;gBACA;gBACA;aACA;QACA;IACA;IACA;QACA;YACA;YACA;YACA;YACA;YACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;aACA;SACA;IACA;IACA;QACA;YACA;gBACA;oBACA;wBACA;qBACA;oBAEA;oBACA;gBACA;aACA;QACA;QACA;YACA;gBACA;oBACA;oBAEA;wBACA;qBACA;oBAEA;wBACA;4BACA;wBACA;qBACA;gBACA;aACA;QACA;KACA;IACA;QACA;YACA;gBACA;gBACA;gBAEA;aACA;YAEA;QACA;QACA;YACA;QACA;KACA;IACA;QACA;YACA;gBACA;gBACA;aACA;iBAAA;gBACA;aACA;iBAAA;gBACA;aACA;QACA;QACA;YACA;gBACA;oBACA;iBACA;qBAAA;oBACA;iBACA;aACA;YACA;QACA;QAEA;YACA;gBACA;gBACA;oBACA;wBACA;wBACA;4BACA;4BACA;yBACA;wBACA;qBACA;oBACA;oBACA;wBACA;qBACA;yBAAA;wBACA;qBACA;iBACA;gBAAA;oBACA;oBACA;oBACA;iBACA;wBAAA;oBACA;oBACA;iBACA;aACA;QACA;KACA;CACA;;;;;;;;;;;;;;;;;;;;AC9L0G;AACvC;AACL;AAC9D,CAAmG;;;AAGnG;AAC6F;AAC7F,gBAAgB,uGAAU;AAC1B,EAAE,qFAAM;AACR,EAAE,mGAAM;AACR,EAAE,4GAAe;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe;;;;;;;;;;;;;;;;;;;ACvC2F;AACvC;AACL;AAC9D,CAAmG;;;AAGnG;AACgG;AAChG,gBAAgB,uGAAU;AAC1B,EAAE,qFAAM;AACR,EAAE,mGAAM;AACR,EAAE,4GAAe;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe;;;;;;;;;;;;;;;;;;;ACvC4F;AACvC;AACL;AAC/D,CAAoG;;;AAGpG;AACgG;AAChG,gBAAgB,uGAAU;AAC1B,EAAE,sFAAM;AACR,EAAE,oGAAM;AACR,EAAE,6GAAe;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCgL,CAAC,iEAAe,6LAAG,EAAC;;;;;;;;;;;;;;;;ACAd,CAAC,iEAAe,6LAAG,EAAC;;;;;;;;;;;;;;;;ACAnB,CAAC,iEAAe,8LAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA1N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAkB,wCAAwC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAoD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAAwD;AACzE;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iCAAiC;AACtD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAgE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE,uBAAuB;AACvB;AACA,mBAAmB;AACnB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrDA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACnDkC;AACyC;AACa;AACzF;AACA,mBAAO,CAAC,iEAA4B;AACpC,mBAAO,CAAC,mEAA6B;AACrC;AACA,mBAAO,CAAC,+CAAmB;AAC3B;AACA,wDAAG,gCAAgC,mFAAgB;AACnD,wDAAG,kCAAkC,+FAAiB;AACtD;AACA,oCAAoC,wDAAG;AACvC;AACA;AACA,kCAAkC,wDAAG;AACrC;;;;;;UChBA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEhDA;UACA;UACA;UACA;UACA;UACA","sources":["webpack://peppermillreno_com_dev/./library/js/main.js","webpack://peppermillreno_com_dev/./library/js/pepDateFunctions.js","webpack://peppermillreno_com_dev/./library/js/pepHelperFunctions.js","webpack://peppermillreno_com_dev/./library/js/pepvalidate-3.js","webpack://peppermillreno_com_dev/./library/js/preferred-club.js","webpack://peppermillreno_com_dev/./library/js/components/CookieDisclosure.vue?50ce","webpack://peppermillreno_com_dev/./library/js/components/peppermill/PeppermillDialog.vue?3556","webpack://peppermillreno_com_dev/./library/js/components/peppermill/ShowOverlayDialog.vue?50fb","webpack://peppermillreno_com_dev/./webpack-main.css","webpack://peppermillreno_com_dev/./library/js/helpers/ExternalLinkWarning.ts","webpack://peppermillreno_com_dev/library/js/components/CookieDisclosure.vue","webpack://peppermillreno_com_dev/library/js/components/peppermill/PeppermillDialog.vue","webpack://peppermillreno_com_dev/library/js/components/peppermill/ShowOverlayDialog.vue","webpack://peppermillreno_com_dev/./library/js/components/CookieDisclosure.vue","webpack://peppermillreno_com_dev/./library/js/components/peppermill/PeppermillDialog.vue","webpack://peppermillreno_com_dev/./library/js/components/peppermill/ShowOverlayDialog.vue","webpack://peppermillreno_com_dev/./library/js/components/CookieDisclosure.vue?0f7e","webpack://peppermillreno_com_dev/./library/js/components/peppermill/PeppermillDialog.vue?9c04","webpack://peppermillreno_com_dev/./library/js/components/peppermill/ShowOverlayDialog.vue?2b69","webpack://peppermillreno_com_dev/./library/js/components/CookieDisclosure.vue?a54e","webpack://peppermillreno_com_dev/./library/js/components/peppermill/PeppermillDialog.vue?2f04","webpack://peppermillreno_com_dev/./library/js/components/peppermill/ShowOverlayDialog.vue?359e","webpack://peppermillreno_com_dev/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://peppermillreno_com_dev/./site.options.js","webpack://peppermillreno_com_dev/./webpack-main.js","webpack://peppermillreno_com_dev/webpack/bootstrap","webpack://peppermillreno_com_dev/webpack/runtime/chunk loaded","webpack://peppermillreno_com_dev/webpack/runtime/define property getters","webpack://peppermillreno_com_dev/webpack/runtime/global","webpack://peppermillreno_com_dev/webpack/runtime/hasOwnProperty shorthand","webpack://peppermillreno_com_dev/webpack/runtime/make namespace object","webpack://peppermillreno_com_dev/webpack/runtime/jsonp chunk loading","webpack://peppermillreno_com_dev/webpack/before-startup","webpack://peppermillreno_com_dev/webpack/startup","webpack://peppermillreno_com_dev/webpack/after-startup"],"sourcesContent":["/*! modernizr 3.6.0 (Custom Build) | MIT *\r\n * https://modernizr.com/download/?-cssanimations-cssgrid_cssgridlegacy-csspositionsticky-csstransforms-csstransitions-hashchange-localstorage-postmessage-svgasimg-touchevents-prefixed-prefixedcss-setclasses !*/\r\n!function (e, t, n) {\r\n function r(e, t) {\r\n return typeof e === t\r\n }\r\n\r\n function o() {\r\n var e, t, n, o, i, s, a;\r\n for (var u in w) if (w.hasOwnProperty(u)) {\r\n if (e = [], t = w[u], t.name && (e.push(t.name.toLowerCase()), t.options && t.options.aliases && t.options.aliases.length)) for (n = 0; n < t.options.aliases.length; n++) e.push(t.options.aliases[n].toLowerCase());\r\n for (o = r(t.fn, \"function\") ? t.fn() : t.fn, i = 0; i < e.length; i++) s = e[i], a = s.split(\".\"), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), C.push((o ? \"\" : \"no-\") + a.join(\"-\"))\r\n }\r\n }\r\n\r\n function i(e) {\r\n var t = T.className, n = Modernizr._config.classPrefix || \"\";\r\n if (b && (t = t.baseVal), Modernizr._config.enableJSClass) {\r\n var r = new RegExp(\"(^|\\\\s)\" + n + \"no-js(\\\\s|$)\");\r\n t = t.replace(r, \"$1\" + n + \"js$2\")\r\n }\r\n Modernizr._config.enableClasses && (t += \" \" + n + e.join(\" \" + n), b ? T.className.baseVal = t : T.className = t)\r\n }\r\n\r\n function s() {\r\n return \"function\" != typeof t.createElement ? t.createElement(arguments[0]) : b ? t.createElementNS.call(t, \"http://www.w3.org/2000/svg\", arguments[0]) : t.createElement.apply(t, arguments)\r\n }\r\n\r\n function a(e) {\r\n return e.replace(/([a-z])-([a-z])/g, function (e, t, n) {\r\n return t + n.toUpperCase()\r\n }).replace(/^-/, \"\")\r\n }\r\n\r\n function u(e) {\r\n return e.replace(/([A-Z])/g, function (e, t) {\r\n return \"-\" + t.toLowerCase()\r\n }).replace(/^ms-/, \"-ms-\")\r\n }\r\n\r\n function l(e, t) {\r\n if (\"object\" == typeof e) for (var n in e) P(e, n) && l(n, e[n]); else {\r\n e = e.toLowerCase();\r\n var r = e.split(\".\"), o = Modernizr[r[0]];\r\n if (2 == r.length && (o = o[r[1]]), \"undefined\" != typeof o) return Modernizr;\r\n t = \"function\" == typeof t ? t() : t, 1 == r.length ? Modernizr[r[0]] = t : (!Modernizr[r[0]] || Modernizr[r[0]] instanceof Boolean || (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])), Modernizr[r[0]][r[1]] = t), i([(t && 0 != t ? \"\" : \"no-\") + r.join(\"-\")]), Modernizr._trigger(e, t)\r\n }\r\n return Modernizr\r\n }\r\n\r\n function f(e, t) {\r\n return !!~(\"\" + e).indexOf(t)\r\n }\r\n\r\n function c(e, t) {\r\n return function () {\r\n return e.apply(t, arguments)\r\n }\r\n }\r\n\r\n function d(e, t, n) {\r\n var o;\r\n for (var i in e) if (e[i] in t) return n === !1 ? e[i] : (o = t[e[i]], r(o, \"function\") ? c(o, n || t) : o);\r\n return !1\r\n }\r\n\r\n function p() {\r\n var e = t.body;\r\n return e || (e = s(b ? \"svg\" : \"body\"), e.fake = !0), e\r\n }\r\n\r\n function m(e, n, r, o) {\r\n var i, a, u, l, f = \"modernizr\", c = s(\"div\"), d = p();\r\n if (parseInt(r, 10)) for (; r--;) u = s(\"div\"), u.id = o ? o[r] : f + (r + 1), c.appendChild(u);\r\n return i = s(\"style\"), i.type = \"text/css\", i.id = \"s\" + f, (d.fake ? d : c).appendChild(i), d.appendChild(c), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(t.createTextNode(e)), c.id = f, d.fake && (d.style.background = \"\", d.style.overflow = \"hidden\", l = T.style.overflow, T.style.overflow = \"hidden\", T.appendChild(d)), a = n(c, e), d.fake ? (d.parentNode.removeChild(d), T.style.overflow = l, T.offsetHeight) : c.parentNode.removeChild(c), !!a\r\n }\r\n\r\n function g(t, n, r) {\r\n var o;\r\n if (\"getComputedStyle\" in e) {\r\n o = getComputedStyle.call(e, t, n);\r\n var i = e.console;\r\n if (null !== o) r && (o = o.getPropertyValue(r)); else if (i) {\r\n var s = i.error ? \"error\" : \"log\";\r\n i[s].call(i, \"getComputedStyle returning null, its possible modernizr test results are inaccurate\")\r\n }\r\n } else o = !n && t.currentStyle && t.currentStyle[r];\r\n return o\r\n }\r\n\r\n function h(t, r) {\r\n var o = t.length;\r\n if (\"CSS\" in e && \"supports\" in e.CSS) {\r\n for (; o--;) if (e.CSS.supports(u(t[o]), r)) return !0;\r\n return !1\r\n }\r\n if (\"CSSSupportsRule\" in e) {\r\n for (var i = []; o--;) i.push(\"(\" + u(t[o]) + \":\" + r + \")\");\r\n return i = i.join(\" or \"), m(\"@supports (\" + i + \") { #modernizr { position: absolute; } }\", function (e) {\r\n return \"absolute\" == g(e, null, \"position\")\r\n })\r\n }\r\n return n\r\n }\r\n\r\n function v(e, t, o, i) {\r\n function u() {\r\n c && (delete L.style, delete L.modElem)\r\n }\r\n\r\n if (i = r(i, \"undefined\") ? !1 : i, !r(o, \"undefined\")) {\r\n var l = h(e, o);\r\n if (!r(l, \"undefined\")) return l\r\n }\r\n for (var c, d, p, m, g, v = [\"modernizr\", \"tspan\", \"samp\"]; !L.style && v.length;) c = !0, L.modElem = s(v.shift()), L.style = L.modElem.style;\r\n for (p = e.length, d = 0; p > d; d++) if (m = e[d], g = L.style[m], f(m, \"-\") && (m = a(m)), L.style[m] !== n) {\r\n if (i || r(o, \"undefined\")) return u(), \"pfx\" == t ? m : !0;\r\n try {\r\n L.style[m] = o\r\n } catch (y) {\r\n }\r\n if (L.style[m] != g) return u(), \"pfx\" == t ? m : !0\r\n }\r\n return u(), !1\r\n }\r\n\r\n function y(e, t, n, o, i) {\r\n var s = e.charAt(0).toUpperCase() + e.slice(1), a = (e + \" \" + j.join(s + \" \") + s).split(\" \");\r\n return r(t, \"string\") || r(t, \"undefined\") ? v(a, t, o, i) : (a = (e + \" \" + N.join(s + \" \") + s).split(\" \"), d(a, t, n))\r\n }\r\n\r\n function _(e, t, r) {\r\n return y(e, n, n, t, r)\r\n }\r\n\r\n var C = [], w = [], S = {\r\n _version: \"3.6.0\",\r\n _config: {classPrefix: \"\", enableClasses: !0, enableJSClass: !0, usePrefixes: !0},\r\n _q: [],\r\n on: function (e, t) {\r\n var n = this;\r\n setTimeout(function () {\r\n t(n[e])\r\n }, 0)\r\n },\r\n addTest: function (e, t, n) {\r\n w.push({name: e, fn: t, options: n})\r\n },\r\n addAsyncTest: function (e) {\r\n w.push({name: null, fn: e})\r\n }\r\n }, Modernizr = function () {\r\n };\r\n Modernizr.prototype = S, Modernizr = new Modernizr, Modernizr.addTest(\"postmessage\", \"postMessage\" in e);\r\n var x = S._config.usePrefixes ? \" -webkit- -moz- -o- -ms- \".split(\" \") : [\"\", \"\"];\r\n S._prefixes = x;\r\n var T = t.documentElement, b = \"svg\" === T.nodeName.toLowerCase();\r\n Modernizr.addTest(\"csspositionsticky\", function () {\r\n var e = \"position:\", t = \"sticky\", n = s(\"a\"), r = n.style;\r\n return r.cssText = e + x.join(t + \";\" + e).slice(0, -e.length), -1 !== r.position.indexOf(t)\r\n });\r\n var z = function () {\r\n function e(e, t) {\r\n var o;\r\n return e ? (t && \"string\" != typeof t || (t = s(t || \"div\")), e = \"on\" + e, o = e in t, !o && r && (t.setAttribute || (t = s(\"div\")), t.setAttribute(e, \"\"), o = \"function\" == typeof t[e], t[e] !== n && (t[e] = n), t.removeAttribute(e)), o) : !1\r\n }\r\n\r\n var r = !(\"onblur\" in t.documentElement);\r\n return e\r\n }();\r\n S.hasEvent = z, Modernizr.addTest(\"hashchange\", function () {\r\n return z(\"hashchange\", e) === !1 ? !1 : t.documentMode === n || t.documentMode > 7\r\n }), Modernizr.addTest(\"localstorage\", function () {\r\n var e = \"modernizr\";\r\n try {\r\n return localStorage.setItem(e, e), localStorage.removeItem(e), !0\r\n } catch (t) {\r\n return !1\r\n }\r\n });\r\n var P;\r\n !function () {\r\n var e = {}.hasOwnProperty;\r\n P = r(e, \"undefined\") || r(e.call, \"undefined\") ? function (e, t) {\r\n return t in e && r(e.constructor.prototype[t], \"undefined\")\r\n } : function (t, n) {\r\n return e.call(t, n)\r\n }\r\n }(), S._l = {}, S.on = function (e, t) {\r\n this._l[e] || (this._l[e] = []), this._l[e].push(t), Modernizr.hasOwnProperty(e) && setTimeout(function () {\r\n Modernizr._trigger(e, Modernizr[e])\r\n }, 0)\r\n }, S._trigger = function (e, t) {\r\n if (this._l[e]) {\r\n var n = this._l[e];\r\n setTimeout(function () {\r\n var e, r;\r\n for (e = 0; e < n.length; e++) (r = n[e])(t)\r\n }, 0), delete this._l[e]\r\n }\r\n }, Modernizr._q.push(function () {\r\n S.addTest = l\r\n }), Modernizr.addTest(\"svgasimg\", t.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\"));\r\n var E = \"Moz O ms Webkit\", j = S._config.usePrefixes ? E.split(\" \") : [];\r\n S._cssomPrefixes = j;\r\n var A = function (t) {\r\n var r, o = x.length, i = e.CSSRule;\r\n if (\"undefined\" == typeof i) return n;\r\n if (!t) return !1;\r\n if (t = t.replace(/^@/, \"\"), r = t.replace(/-/g, \"_\").toUpperCase() + \"_RULE\", r in i) return \"@\" + t;\r\n for (var s = 0; o > s; s++) {\r\n var a = x[s], u = a.toUpperCase() + \"_\" + r;\r\n if (u in i) return \"@-\" + a.toLowerCase() + \"-\" + t\r\n }\r\n return !1\r\n };\r\n S.atRule = A;\r\n var N = S._config.usePrefixes ? E.toLowerCase().split(\" \") : [];\r\n S._domPrefixes = N;\r\n var O = S.testStyles = m;\r\n Modernizr.addTest(\"touchevents\", function () {\r\n var n;\r\n if (\"ontouchstart\" in e || e.DocumentTouch && t instanceof DocumentTouch) n = !0; else {\r\n var r = [\"@media (\", x.join(\"touch-enabled),(\"), \"heartz\", \")\", \"{#modernizr{top:9px;position:absolute}}\"].join(\"\");\r\n O(r, function (e) {\r\n n = 9 === e.offsetTop\r\n })\r\n }\r\n return n\r\n });\r\n var k = {elem: s(\"modernizr\")};\r\n Modernizr._q.push(function () {\r\n delete k.elem\r\n });\r\n var L = {style: k.elem.style};\r\n Modernizr._q.unshift(function () {\r\n delete L.style\r\n }), S.testAllProps = y;\r\n var R = S.prefixed = function (e, t, n) {\r\n return 0 === e.indexOf(\"@\") ? A(e) : (-1 != e.indexOf(\"-\") && (e = a(e)), t ? y(e, t, n) : y(e, \"pfx\"))\r\n };\r\n S.prefixedCSS = function (e) {\r\n var t = R(e);\r\n return t && u(t)\r\n };\r\n S.testAllProps = _, Modernizr.addTest(\"cssanimations\", _(\"animationName\", \"a\", !0)), Modernizr.addTest(\"cssgridlegacy\", _(\"grid-columns\", \"10px\", !0)), Modernizr.addTest(\"cssgrid\", _(\"grid-template-rows\", \"none\", !0)), Modernizr.addTest(\"csstransforms\", function () {\r\n return -1 === navigator.userAgent.indexOf(\"Android 2.\") && _(\"transform\", \"scale(1)\", !0)\r\n }), Modernizr.addTest(\"csstransitions\", _(\"transition\", \"all\", !0)), o(), i(C), delete S.addTest, delete S.addAsyncTest;\r\n for (var q = 0; q < Modernizr._q.length; q++) Modernizr._q[q]();\r\n e.Modernizr = Modernizr\r\n}(window, document);\r\n\r\n\r\n/**\r\n * Tracks JS errors and sends a report to the server.\r\n */\r\n(function ($, window) {\r\n\r\n function trackError(error, fieldsObj) {\r\n\r\n var errorDefaults = {\r\n event_category: 'Script',\r\n event_action: 'error',\r\n description: (error && error.stack) || '(not set)',\r\n nonInteraction: true\r\n },\r\n options = $.extend(errorDefaults, fieldsObj);\r\n\r\n if (typeof gtag !== 'undefined') gtag('event', 'exception', options);\r\n\r\n }\r\n\r\n function trackErrors() {\r\n\r\n var loadErrorEvents = window.__e && window.__e.q || [],\r\n fieldsObj = {\r\n event_action: 'uncaught error'\r\n };\r\n\r\n // Replay any stored load error events.\r\n for (var index in loadErrorEvents) {\r\n\r\n trackError(loadErrorEvents[index].error, fieldsObj);\r\n\r\n }\r\n\r\n // Add a new listener to track event immediately.\r\n window.addEventListener('error', function (event) {\r\n\r\n trackError(event.error, fieldsObj);\r\n\r\n });\r\n\r\n }\r\n\r\n $(trackErrors);\r\n\r\n window.onerror = function (message, source, lineno, colno, error) {\r\n\r\n if (typeof message === 'undefined') var message = '';\r\n if (typeof source === 'undefined') var source = '';\r\n if (typeof lineno === 'undefined') var lineno = 0;\r\n if (typeof colno === 'undefined') var colno = 0;\r\n\r\n var stack = '';\r\n\r\n if (typeof error === 'object' && typeof error.stack === 'string') stack = error.stack;\r\n\r\n $.ajax({\r\n url: '/library/api/capture-js-error.php',\r\n type: 'post',\r\n dataType: 'json',\r\n data: {\r\n je_message: message,\r\n je_source: source,\r\n je_lineno: lineno,\r\n je_colno: colno,\r\n je_url: window.location.href,\r\n je_stack: stack\r\n }\r\n });\r\n\r\n };\r\n\r\n})(jQuery, window);\r\n\r\n\r\n//add global easing method\r\njQuery.easing['jswing'] = jQuery.easing['swing'];\r\njQuery.extend(jQuery.easing,\r\n {\r\n easeInCubic: function (x, t, b, c, d) {\r\n return c * (t /= d) * t * t + b;\r\n },\r\n easeOutCubic: function (x, t, b, c, d) {\r\n return c * ((t = t / d - 1) * t * t + 1) + b;\r\n },\r\n easeInOutCubic: function (x, t, b, c, d) {\r\n if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;\r\n return c / 2 * ((t -= 2) * t * t + 2) + b;\r\n },\r\n easeInQuad: function (x, t, b, c, d) {\r\n return c * (t /= d) * t + b;\r\n },\r\n easeOutQuad: function (x, t, b, c, d) {\r\n return -c * (t /= d) * (t - 2) + b;\r\n },\r\n easeInOutQuad: function (x, t, b, c, d) {\r\n if ((t /= d / 2) < 1) return c / 2 * t * t + b;\r\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\r\n }\r\n });\r\n\r\n\r\nif (!('onCSSTransitionEnd' in $.fn)) {\r\n\r\n (function ($, window, document, undefined) {\r\n\r\n if (typeof $.fn.onCSSTransitionEnd === 'function') return;\r\n\r\n var s = document.body || document.documentElement, s = s.style, prefixAnimation = '', prefixTransition = '',\r\n eventAnimation = 'animationend', eventTransition = 'transitionend',\r\n transEndEventNames = {\r\n 'WebkitTransition': 'webkitTransitionEnd',\r\n 'MozTransition': 'transitionend',\r\n 'transition': 'transitionend'\r\n },\r\n transEndEventName = transEndEventNames[Modernizr.prefixed('transition')],\r\n transCSS = Modernizr.prefixedCSS('transition');\r\n\r\n $.fn.extend({\r\n onCSSAnimationEnd: function (callback) {\r\n\r\n var $this = $(this);\r\n\r\n $this.one(eventAnimation, callback);\r\n\r\n if ((prefixAnimation == '' && !('animation' in s)) || $this.css(prefixAnimation + 'animation-duration') == '0s') $.each($this, callback);\r\n\r\n return this;\r\n\r\n },\r\n onCSSTransitionEnd: function (callback) {\r\n\r\n var $this = $(this);\r\n\r\n if (typeof transEndEventName !== 'string' || ($this.css(transCSS + '-duration') === '0s' && $this.css(transCSS + '-delay') === '0s')) {\r\n\r\n $.each($this, callback);\r\n\r\n } else {\r\n\r\n $this.one(eventTransition, callback);\r\n\r\n }\r\n\r\n return this;\r\n\r\n }\r\n });\r\n })(jQuery, window, document);\r\n\r\n}\r\n\r\n\r\n/*!\r\n * Copyright (C) 2013-2024, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n * PeppermillReno.com Custom JS - 3/4/2013\r\n * Version: 1.6.0\r\n * Changes:\r\n *\t\t2016-02-25\r\n *\t\t\t- Initial Install\r\n *\r\n *\t\t2016-08-02\r\n *\t\t\t- Added code for fullscreen button in the gallery.\r\n *\r\n *\t\t2016-08-03\r\n *\t\t\t- Gallery images now don't display larger than their actual size.\r\n *\t\t\t- Query-string data is now discarded when checking if URLs patch when changing pages.\r\n *\r\n *\t\t2017-01-06 (1.1.1)\r\n *\t\t\t- When using PRIVLINE offer code in Reservation Widget, a company code is required to be forwarded to ResNet.\r\n *\t\t\t\t- A dialog is used to gather this information.\r\n *\t\t\t- Fixed GA Linker for links that point to /offers and /choose-a-room as well as the Header Reseration Widget\r\n *\r\n *\t\t2017-01-17 (1.1.2)\r\n *\t\t\t- If a menu iframe does not load in 10 seconds, a dialog will appear asking if the user wants to directly download the PDF.\r\n *\t\t\t\t- This is to get around the corporate network blocking Google Drive.\r\n *\r\n *\t\t2017-01-23 (1.1.3)\r\n *\t\t\t- Videos are paused when the reservations/login/menu overlays are visible.\r\n *\r\n *\t\t2017-01-25 (1.1.4)\r\n *\t\t\t- Menus are now loaded as a PDF by default for non touch-enabled devices and for devices on the corporate network.\r\n *\t\t\t- The Outlet Hours API is not hit unless there are potential .item matches on the page.\r\n *\t\t\t- Dialogs shown with pepvalidate-v3 forms will now correctly submit the dialog rather than the pepvalidate-v3 form when is pressed inside an input or textarea.\r\n *\r\n *\t\t2017-01-30 (1.1.5)\r\n *\t\t\t- Removed CSRF_TOKEN and honeypot from search queries.\r\n *\r\n *\t\t2017-01-31 (1.1.6)\r\n *\t\t\t- Added code to handle table pagination.\r\n *\r\n *\t\t2017-02-14 (1.1.7)\r\n *\t\t\t- Passport Header login successes and failures now send event tracking beacons.\r\n *\r\n *\t\t2017-02-21 (1.1.8)\r\n *\t\t\t- Updated Confirmation Dialogs for better accessibility via tabindex.\r\n *\t\t\t- Fixed various bugs in page link filters.\r\n *\t\t\t- Page link filters now adjust the count for each option when opening a flyout menu.\r\n *\r\n *\t\t2017-03-03 (1.1.9)\r\n *\t\t\t- Updated video controls.\r\n *\t\t\t- Fixed positioning of artwork dot overlays when not shown full-width.\r\n *\r\n *\t\t2017-03-06 (1.1.10)\r\n *\t\t\t- Flash video tech now loads in wmode transparent with a transparent background so there's no flash of black before the video plays.\r\n *\r\n *\t\t2017-03-31 (1.1.11)\r\n *\t\t\t- Fixed outlet hours not appending to .item h3 titles because the .clip span had been removed.\r\n *\r\n *\t\t2017-06-27 (1.1.12)\r\n *\t\t\t- Fixed issue with the footer opacity as it's first being shown.\r\n *\r\n *\t\t2017-07-11 (1.1.13)\r\n *\t\t\t- Changes to inputs in the reservation widget in the header are now saved across page loads for 30 minutes.\r\n *\r\n *\t\t2017-07-18 (1.1.14)\r\n *\t\t\t- Added code to redirect to WiFi portal for wifi nav link.\r\n *\r\n *\t\t2017-09-12 (1.1.15)\r\n *\t\t\t- Updated .page-link-subnav link clicks to reset focus on section header for accessibility.\r\n *\t\t\t- Do not show outlet hour notifications for .related-event page links.\r\n *\t\t\t- Fixed issue with related event iframes not being resized in Firefox.\r\n *\r\n *\t\t2018-01-11 (1.1.16)\r\n *\t\t\t- Subnav link clicks are now tracked in GA.\r\n *\r\n *\t\t2018-02-21 (1.1.17)\r\n *\t\t\t- Default check-in date is now today, rather than tomorrow.\r\n *\r\n *\t\t2018-05-11 (1.1.18)\r\n *\t\t\t- Fixed styling of input in popup for booking a PRIVLINE offer via the header.\r\n *\r\n *\t\t2018-06-11 (1.1.19)\r\n *\t\t\t- Added back-to-top code.\r\n *\r\n *\t\t2018-12-04 (1.1.20)\r\n *\t\t\t- Fixed loading spinner for #artwork play/pause buttons so mobile devices don't show the spinner before interacting with the widget.\r\n *\r\n *\t\t2019-02-18 (1.1.21)\r\n *\t\t\t- Updated to VideoJS 7.5.0.\r\n *\r\n *\t\t2019-04-03 (1.1.22)\r\n *\t\t\t- Created new pepSlideshow object to handle multiple slideshows on a page.\r\n *\t\t\t- Slideshow videos now play/pause if they go into our out of view due to scrolling.\r\n *\r\n *\t\t2019-05-17 (1.1.23)\r\n *\t\t\t- Added resolution tracking in GA for HLS videos.\r\n *\r\n *\t\t2019-06-13 (1.1.24)\r\n *\t\t\t- Fixed bug with SVG sprites not loading when the pepsprites cookie existed but had a blank value.\r\n *\r\n *\t\t2019-08-19 (1.1.25)\r\n *\t\t\t- Page link group expanded state is now saved across page loads.\r\n *\t\t\t- Videos now use the Vimeo Player SDK rather than VideoJS.\r\n *\r\n *\t\t2020-02-13 (1.1.26)\r\n *\t\t\t- Removed wifi nav link code.\r\n *\r\n *\t\t2020-08-05 (1.1.27)\r\n *\t\t\t- Updated window.getReservationSelections() to not return invalid check in/out dates.\r\n *\t\t\t- Replaced Modernizr.localstorage checks with 'localStorage' in window.\r\n *\r\n *\t\t2021-01-12 (1.1.28)\r\n *\t\t\t- Updated window.pepHelperFunctions.getParameterByName to return an array of values when the parameter is a GET array.\r\n *\r\n *\t\t2021-10-15 (1.2.0)\r\n *\t\t\t- All references to pepvalidate functions are preceded by \"window.\"\r\n *\r\n *\t\t2021-10-27 (1.2.1)\r\n *\t\t\t- window.getReservationSelections() now correctly calculates date differences.\r\n *\t\t\t- All references to pepvalidate functions are preceded by \"window.\"\r\n *\r\n *\t\t2021-11-04 (1.2.2) (zsahs)\r\n *\t\t\t-Created function to target buttons with href=\"manage-reservations\" and append ga data to their href value.\r\n *\r\n *\t\t2022-02-08 (1.2.3) (zsahs)\r\n * \t\t\t-Function created to target buttons in 1.2.2 has been converted to a click event handler.\r\n *\t\t\t GA information is only gathered and appended to URL when button is clicked.\r\n *\r\n *\t\t2022-08-05 (1.3.0)\r\n *\t\t\t- Refactor window.getReservationSelections() to hotelRoomsVueApp.getReservationSelections().\r\n *\t\t\t- Refactor window.saveReservationSelections() to hotelRoomsVueApp.saveReservationSelections().\r\n *\t\t\t- Save offsetTop and height for page link items in dataset as well as $.data().\r\n *\r\n *\t\t2023-05-25 (1.4.0) (jhoward)\r\n *\t\t\t- Migrate main.js to gtag() from ga().\r\n *\r\n *\t\t2023-07-13 (1.4.1) (jhoward)\r\n *\t\t\t- Setup pepTracking.getGA4LinkerParam() helper method to get GA4 linker parameter.\r\n *\r\n *\t\t2023-11-22 (1.5.0) (jhoward)\r\n *\t\t\t- Refactor pepDateFunctions and pepHelperFunctions from main.js to their own JS files.\r\n *\r\n *\t\t2024-06-10 (1.6.0) (jhoward)\r\n *\t\t\t- Remove unused code from main.js.\r\n *\t\t\t- Refactor dialog code from main.js to Vue component.\r\n *\t\t\t- Refactor external link warning code from main.js to Vue component.\r\n *\t\t\t- Add aria and role attributes to toast notifications in main.js.\r\n *\t\t\t- Accessibility modifications to footer award logo slideshow in main.js.\r\n */\r\n\r\nwindow.pepWindowLoad = false;\r\njQuery(window).on(\"load\", function () {\r\n window.pepWindowLoad = true;\r\n});\r\n\r\n(function ($) {\r\n\r\n let maxHeaderHeight = {\r\n mobile: 60,\r\n desktop: 75\r\n };\r\n let lastRenderedScroll;\r\n\r\n function savePageSetting(settingKey, settingValue) {\r\n\r\n var pageID = $('body').data('i');\r\n\r\n if (pageID && parseInt(pageID, 10)) {\r\n\r\n var settings = getPageSettings();\t//store for 16 hours max\r\n\r\n if ('object' !== typeof settings) {\r\n\r\n settings = {};\r\n\r\n }\r\n\r\n settings[settingKey] = settingValue;\r\n\r\n pepHelperFunctions.setCachedData('page-settings-' + pageID, JSON.stringify(settings));\r\n\r\n }\r\n\r\n return false;\r\n\r\n }\r\n\r\n function getPageSettings() {\r\n\r\n var pageID = $('body').data('i');\r\n\r\n if (pageID && parseInt(pageID, 10)) {\r\n\r\n var settings = pepHelperFunctions.getCachedData('page-settings-' + pageID, 57600000);\t//store for 16 hours max\r\n\r\n if ('object' === typeof settings && 'DATA' in settings) {\r\n\r\n if ('string' === typeof settings.DATA && '{' === settings.DATA.substr(0, 1)) {\r\n\r\n try {\r\n\r\n settings.DATA = JSON.parse(settings.DATA);\r\n\r\n } catch (e) {\r\n }\r\n\r\n }\r\n\r\n return settings.DATA;\r\n\r\n }\r\n\r\n }\r\n\r\n return {};\r\n\r\n }\r\n\r\n\r\n window.pepSlideshow = {\r\n\r\n //ELEMENTS\r\n $ele: $(),\r\n slides: $(),\r\n dots: $(),\r\n dotOverlays: $(),\r\n captions: $(),\r\n\r\n //TIMERS\r\n //slideTimer\t\t:\t-1,\r\n transitionTimer: -1,\r\n dotTimer: -1,\r\n dotResetTimer: -1,\r\n renderTimer: -1,\r\n startTimer: -1,\r\n videoTimer: -1,\r\n videoStartTimer: -1,\r\n\r\n //SETTINGS\r\n index: 0,\r\n windowIsActive: true,\r\n slideshowIsActive: false,\r\n throttleTimeout: 250,\r\n currentSlide: 0,\r\n slideshowWidth: 0,\r\n slideshowHeight: 0,\r\n slideshowOffsetTop: 0,\r\n lastSlideStartTime: 0,\r\n transitionDuration: 925,\r\n dotResetDuration: 125,\r\n transitionInProgress: false,\r\n slidesShown: 0,\r\n supportTransitions: true,\r\n supportTouch: false,\r\n videoStartTimeout: 1000,\r\n dotDashOffset: 76,\r\n\r\n //FUNCTIONS\r\n getSlide: function (index) {\r\n\r\n return this.slides.eq(index);\r\n\r\n },\r\n getCaption: function (index) {\r\n\r\n return this.captions.filter(function () {\r\n return parseInt($(this).data('index'), 10) === index;\r\n });\r\n\r\n },\r\n getDot: function (index) {\r\n\r\n return this.dots.filter(function () {\r\n return parseInt($(this).data('index'), 10) === index;\r\n });\r\n\r\n },\r\n getNextSlideIndex: function (direction) {\r\n\r\n if (typeof direction !== 'number') var direction = 1;\r\n\r\n var newIndex = this.currentSlide + direction;\r\n\r\n if (direction < 0 && newIndex < 0) {\r\n\r\n newIndex = this.slides.length - 1;\r\n\r\n } else if (direction > 0 && newIndex > this.slides.length - 1) {\r\n\r\n newIndex = 0;\r\n\r\n }\r\n\r\n return newIndex;\r\n\r\n },\r\n calcVideoDims: function (videoData) {\r\n\r\n var newHeight = (videoData.sizing === 'contain')\r\n ? this.slideshowHeight\r\n : this.slideshowWidth * videoData.height / videoData.width,\r\n newTop = (videoData.sizing === 'contain')\r\n ? 0\r\n : (newHeight - this.slideshowHeight) * -1 * videoData.focalY / 100,\r\n newLeft = 0;\r\n\r\n if (newHeight + newTop < this.slideshowHeight) {\r\n\r\n newTop = 0;\r\n newHeight = this.slideshowHeight;\r\n this.slideshowWidth = videoData.width * newHeight / videoData.height;\r\n newLeft = (this.slideshowWidth - allSlideshows[0].$ele.outerWidth()) * -1 * videoData.focalX / 100;\r\n\r\n }\r\n\r\n return {\r\n width: this.slideshowWidth,\r\n height: newHeight,\r\n left: newLeft,\r\n top: newTop\r\n };\r\n\r\n },\r\n checkIfActive: function () {\r\n //determine if this slideshow is active\r\n this.slideshowIsActive = !this.$ele.is(':hidden');\r\n\r\n return this.slideshowIsActive;\r\n\r\n },\r\n renderSlideshow: function () {\r\n\r\n var slideshowOBJ = this;\r\n var wasActive = this.slideshowIsActive;\r\n var isActive = this.checkIfActive();\r\n var $currentSlide = null;\r\n\r\n this.slideshowWidth = this.$ele.outerWidth();\r\n this.slideshowHeight = this.$ele.outerHeight();\r\n this.slideshowOffsetTop = this.$ele.offset().top;\r\n\r\n if (this.$ele.data('transform-y')) this.slideshowOffsetTop -= this.$ele.data('transform-y');\r\n\r\n $.each(this.slides.filter('.video'), function () {\r\n\r\n var slideData = $(this).data();\r\n\r\n if (typeof slideData.videoPlayer === 'object') {\r\n\r\n $(this)\r\n .find('.video-player')\r\n .css(slideshowOBJ.calcVideoDims(slideData.videoData));\r\n\r\n }\r\n\r\n });\r\n\r\n if (!isActive) {\r\n\r\n //let's see if any other slideshows are active, otherwise indicate to the page that there aren't any\r\n var foundActiveSlideshow = false;\r\n\r\n for (var i = 0, l = allSlideshows.length; i < l; i++) {\r\n\r\n if (true === allSlideshows[i].slideshowIsActive) {\r\n\r\n foundActiveSlideshow = true;\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n if (true === foundActiveSlideshow) {\r\n\r\n $container\r\n .removeClass('no-artwork');\r\n\r\n } else {\r\n\r\n $container\r\n .addClass('no-artwork');\r\n\r\n }\r\n\r\n } else if (wasActive && !isActive) {\r\n\r\n //pause the show since it's not active but it was\r\n $.each(this.slides.filter('.video'), function () {\r\n\r\n //pause videos\r\n if ($(this).data('playing') && typeof $(this).data('videoPlayer') === 'object') {\r\n\r\n $(this)\r\n .data('videoPlayer')\r\n .pause();\r\n\r\n }\r\n\r\n //stop slides from changing\r\n clearTimeout(slideshowOBJ.showTimer);\r\n\r\n });\r\n\r\n } else if (!wasActive && isActive) {\r\n\r\n this.changeSlide(this.currentSlide);\r\n\r\n //we know that this slideshow is displaying, so at least one is\r\n $container\r\n .removeClass('no-artwork');\r\n\r\n }\r\n\r\n },\r\n startSlideshow: function () {\r\n\r\n var nextSlide = 0;\r\n var $slide = null;\r\n var slideCMSData = {};\r\n var slideshowOBJ = this;\r\n\r\n if (!this.checkIfActive()) return;\r\n\r\n clearTimeout(this.startTimer);\r\n\r\n this.changeSlide(this.currentSlide);\r\n\r\n //verify the dot thumbs are loaded if not on touch device\r\n if (!this.supportTouch) {\r\n\r\n $.each(this.dots, function () {\r\n\r\n var $dotOverlay = $(this).children('.dot-overlay');\r\n\r\n if ($dotOverlay.length && !$dotOverlay.children('img').length) {\r\n\r\n $dotOverlay\r\n .html('\"'')\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n /*$slide\t\t\t=\tthis.getSlide(this.currentSlide);\r\n\t\t\t\tslideCMSData\t=\t$slide.data('cms-data');\r\n\r\n\t\t\t\tnextSlide\t\t=\tthis.currentSlide + 1;*/\r\n\r\n },\r\n setupSlideshow: function ($slideshowContainer, slideshowIndex) {\r\n\r\n var slideshowOBJ = this;\r\n\r\n this.index = slideshowIndex;\r\n this.$ele = $slideshowContainer;\r\n this.slides = this.$ele.children('.content');\r\n this.dots = this.$ele.children('.thumb-dots').children('.dot');\r\n this.dotOverlays = this.$ele.children('.thumb-dots').children('.dot-overlay');\r\n this.captions = this.$ele.children('.slide-caps').children('.caption');\r\n\r\n this.supportTransitions = Modernizr.csstransitions;\r\n this.supportTouch = Modernizr.touchevents;\r\n\r\n if ($('#container').hasClass('content-page') || $('#container').hasClass('hotel-tower-page')) {\r\n\r\n this.$ele\r\n .addClass('position-static');\r\n\r\n }\r\n\r\n //check to make sure the show shouldn't be running in 10 seconds\r\n $(function () {\r\n\r\n slideshowOBJ.startTimer = setTimeout(function () {\r\n\r\n slideshowOBJ.startSlideshow();\r\n\r\n }, 10000);\r\n\r\n });\r\n\r\n $(window)\r\n .on('resize.artwork' + this.index, function () {\r\n\r\n clearTimeout(slideshowOBJ.renderTimer);\r\n slideshowOBJ.renderTimer = setTimeout(function () {\r\n\r\n slideshowOBJ.renderSlideshow();\r\n\r\n }, slideshowOBJ.throttleTimeout);\r\n\r\n })\r\n .on('load.artwork' + this.index, function () {\r\n\r\n clearTimeout(slideshowOBJ.renderTimer);\r\n slideshowOBJ.renderTimer = setTimeout(function () {\r\n\r\n slideshowOBJ.renderSlideshow();\r\n\r\n }, slideshowOBJ.throttleTimeout);\r\n\r\n slideshowOBJ\r\n .$ele\r\n .addClass('loaded');\r\n\r\n if (slideshowOBJ.checkIfActive()) {\r\n\r\n slideshowOBJ.startSlideshow();\r\n\r\n }\r\n\r\n })\r\n .on('blur.artwork' + this.index, function () {\r\n\r\n slideshowOBJ.windowIsActive = false;\r\n\r\n var $currentSlide = slideshowOBJ.getSlide(slideshowOBJ.currentSlide);\r\n\r\n if ($currentSlide.hasClass('video') && typeof $currentSlide.data('videoPlayer') === 'object') {\r\n\r\n $currentSlide\r\n .data('videoPlayer')\r\n .pause();\r\n\r\n }\r\n\r\n })\r\n .on('focus.artwork' + this.index, function (event) {\r\n\r\n slideshowOBJ.windowIsActive = true;\r\n\r\n var $currentSlide = slideshowOBJ.getSlide(slideshowOBJ.currentSlide);\r\n\r\n if ($currentSlide.hasClass('video') && $currentSlide.data('playing') && typeof $currentSlide.data('videoPlayer') === 'object') {\r\n //console.log('focus play');\r\n $currentSlide\r\n .data('videoPlayer')\r\n .play();\r\n\r\n }\r\n\r\n });\r\n\r\n this.$ele\r\n .children('.mobile-nav-arrow')\r\n .filter('.left')\r\n .on('click', function (event) {\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n slideshowOBJ.changeSlide(slideshowOBJ.getNextSlideIndex(-1));\r\n\r\n })\r\n .end()\r\n .filter('.right')\r\n .on('click', function (event) {\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n slideshowOBJ.changeSlide(slideshowOBJ.getNextSlideIndex(1));\r\n\r\n });\r\n\r\n this.dots\r\n .on('click', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n $(this)\r\n .trigger('mouseleave');\r\n\r\n slideshowOBJ.changeSlide(parseInt($(this).data('index'), 10));\r\n\r\n }).on('mouseleave', function () {\r\n\r\n if (!Modernizr.touchevents) {\r\n\r\n slideshowOBJ.dotTimer = setTimeout(function () {\r\n\r\n slideshowOBJ.dots\r\n .removeClass('hover');\r\n\r\n }, 75);\r\n\r\n }\r\n\r\n }).on('mouseenter', function () {\r\n\r\n clearTimeout(slideshowOBJ.dotTimer);\r\n\r\n if (!Modernizr.touchevents) {\r\n\r\n //hide all dot overlays, select the one associated with this dot, set the position for the selected overlay, then fade it into view\r\n slideshowOBJ.dots\r\n .eq($(this).data('index'))\r\n .addClass('hover')\r\n .siblings()\r\n .removeClass('hover');\r\n\r\n }\r\n\r\n }).each(function () {\r\n var duration = slideshowOBJ.slides.eq($(this).data('index')).data('cmsData').duration || 5;\r\n this.style.setProperty('--dot-animation-duration', '' + (duration * 1000) + 'ms');\r\n });\r\n\r\n\r\n //setup art dot\r\n this.dotOverlays\r\n .on('click', function (event) {\r\n\r\n $(this)\r\n .trigger('mouseleave')\r\n .prev()\r\n .trigger('click');\r\n\r\n }).on('mouseleave', function () {\r\n\r\n slideshowOBJ.dotTimer = setTimeout(function () {\r\n\r\n slideshowOBJ.showOverlays\r\n .removeClass('active');\r\n\r\n }, 66);\r\n\r\n }).on('mouseenter', function () {\r\n\r\n clearTimeout(slideshowOBJ.dotTimer);\r\n\r\n });\r\n\r\n\r\n this.captions\r\n .find('.scroll-to-content')\r\n .on('click', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n var headerHeight = (responsive.current === 'ui-mobile')\r\n ? maxHeaderHeight.mobile\r\n : maxHeaderHeight.desktop;\r\n var scrollTo = slideshowOBJ.$ele.offset().top + slideshowOBJ.$ele.outerHeight() - headerHeight;\r\n\r\n $('html, body')\r\n .animate({scrollTop: scrollTo}, 750, 'easeInOutCubic');\r\n\r\n });\r\n\r\n\r\n //preload the first image of the slideshow\r\n this.loadSlideImage(0);\r\n\r\n\r\n },\r\n loadSlideImage: function (index) {\r\n\r\n var $slide = this.getSlide(index);\r\n\r\n if (!$slide.hasClass('video')) {\r\n\r\n $slide\r\n .css({\r\n backgroundImage: \"url('\" + $slide.data('cms-data').imgSrc + \"')\"\r\n });\r\n\r\n } else {\r\n\r\n $slide\r\n .css({\r\n backgroundImage: \"url('\" + $slide.children('.video-player').data('poster') + \"')\"\r\n });\r\n\r\n }\r\n\r\n },\r\n initVideo: function (index) {\r\n\r\n var slideshowOBJ = this;\r\n var $video = this.getSlide(index).filter('.video');\r\n var $caption = null;\r\n var $dot = null;\r\n //console.group('initVideo');\r\n //console.log($video.hasClass('initialized'), typeof $video.data('videoPlayer') === 'object');\r\n if ($video.hasClass('initialized') && typeof $video.data('videoPlayer') === 'object') {\r\n\r\n //if already initialized\r\n $video\r\n .data('videoPlayer')\r\n .setCurrentTime(0);\r\n\r\n if (0 === parseInt($video.data('play-count', 0), 10)) {\r\n //console.log('init replay');\r\n $video\r\n .data('videoPlayer')\r\n .play();\r\n }\r\n\r\n } else {\r\n\r\n //initialize a video slide\r\n var videoData = $video.data('video-data');\r\n var videoBackup = $video.data('videoBackup') || $video.html();\r\n //console.log('play count', $video.data('play-count'), !$video.data('play-count'));\r\n if (!$video.data('play-count')) {\r\n $video.data('play-count', 0);\r\n }\r\n //console.log('play count', $video.data('play-count'));\r\n\r\n $caption = this.getCaption(index);\r\n $dot = this.getDot(index);\r\n\r\n $caption\r\n .addClass('active');\r\n\r\n $video\r\n .data({\r\n playing: false,\r\n videoBackup: videoBackup,\r\n videoPlayer: new Vimeo.Player('artwork-' + this.index + '-video-' + videoData.videoID + '-' + $video.data('index'), {\r\n id: videoData.videoID,\r\n //background\t:\ttrue,\r\n loop: false,\t//this is handled in code, if left to `true` the `ended` event will not fire\r\n //autoplay: false,\r\n controls: false,\r\n muted: true\r\n }),\r\n videoData: videoData,\r\n lastReportedResolution: ''\r\n })\r\n .on('reportResolution', function (event, player) {\r\n\r\n //TODO: need to determine how to check current resolution for the Vimeo player\r\n\r\n /*\r\n\t\t\t\t\t\t\ttry {\r\n\r\n\t\t\t\t\t\t\t\tvar resolution\t=\tplayer.tech_.hls.masterPlaylistController_.mainSegmentLoader_.playlist_.attributes.RESOLUTION.width + 'x' + player.tech_.hls.masterPlaylistController_.mainSegmentLoader_.playlist_.attributes.RESOLUTION.height + 'px';\r\n\t\t\t\t\t\t\t\t//var vimeoID\t\t=\t$(this).data('videoData').videoID;\r\n\r\n\t\t\t\t\t\t\t\tif (resolution && $(this).data('lastReportedResolution') !== resolution) {\r\n\r\n\t\t\t\t\t\t\t\t\tpepTracking.event('Video', 'Resolution', resolution);\r\n\r\n\t\t\t\t\t\t\t\t\t$(this)\r\n\t\t\t\t\t\t\t\t\t\t.data('lastReportedResolution', resolution);\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} catch (e) {}\r\n\t\t\t\t\t\t\t*/\r\n })\r\n .find('.video-player')\r\n .css(this.calcVideoDims(videoData));\r\n\r\n //setup video control button interaction\r\n\r\n $caption\r\n .find('.video-btn, .volume-btn')\r\n .filter('.play-btn')\r\n .off('click.artwork')\r\n .on('click.artwork', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n $(this)\r\n .addClass('hide')\r\n .siblings('.pause-btn')\r\n .removeClass('hide');\r\n\r\n $video\r\n .data('playing', true);\r\n\r\n if ($video.hasClass('video') && typeof $video.data('videoPlayer') === 'object') {\r\n\r\n clearTimeout($caption.data('loader-timer'));\r\n\r\n $caption\r\n .addClass('video-playing video-played video-play-manual')\r\n .removeClass('video-paused video-pause-manual')\r\n .data('loader-timer', setTimeout(function () {\r\n\r\n //if ($(event.target).hasClass('vjs-error'))\treturn;\r\n\r\n $caption\r\n .children('.video-loader')\r\n .removeClass('hide');\r\n\r\n }, 5000));\r\n //console.log('click play');\r\n $video\r\n .data('videoPlayer')\r\n .play();\r\n\r\n }\r\n\r\n })\r\n .end()\r\n .filter('.pause-btn')\r\n .off('click.artwork')\r\n .on('click.artwork', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n $(this)\r\n .addClass('hide')\r\n .siblings('.play-btn')\r\n .removeClass('hide');\r\n\r\n $video\r\n .data('playing', false);\r\n\r\n if ($video.hasClass('video') && typeof $video.data('videoPlayer') === 'object') {\r\n\r\n $video\r\n .data('videoPlayer')\r\n .pause();\r\n\r\n }\r\n\r\n $caption\r\n .removeClass('video-playing video-play-manual')\r\n .addClass('video-paused video-pause-manual');\r\n\r\n })\r\n .end()\r\n .filter('.volume-btn')\r\n .removeClass('audio-on')\r\n .off('click.artwork')\r\n .on('click.artwork', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if ($(this).hasClass('audio-on')) {\r\n\r\n $video\r\n .data('videoPlayer')\r\n .setVolume(0);\r\n\r\n $(this)\r\n .removeClass('audio-on');\r\n\r\n } else {\r\n\r\n $video\r\n .data('videoPlayer')\r\n .setVolume(1);\r\n\r\n $(this)\r\n .addClass('audio-on');\r\n\r\n }\r\n\r\n });\r\n\r\n //setup Vimeo Player event handlers\r\n $video\r\n .data('videoPlayer')\r\n .on('ended', function () {\r\n\r\n //console.log('video ended');\r\n $video.data('play-count', parseInt($video.data('play-count'), 10) + 1);\r\n $video.data('playing', false);\r\n\r\n if (typeof videoData.videoID !== 'undefined') {\r\n\r\n var videoID = '' + videoData.videoID;\r\n\r\n pepTracking.event('Video', 'Ended', videoID);\r\n\r\n }\r\n\r\n $caption\r\n .removeClass('video-playing')\r\n .addClass('video-paused video-must-manually-start');\r\n //console.log('num of slides', slideshowOBJ.slides.length);\r\n if (slideshowOBJ.slides.length > 1) {\r\n\r\n slideshowOBJ.changeSlide(slideshowOBJ.getNextSlideIndex(1));\r\n\r\n } else {\r\n\r\n //this video is the only slide, show a \"reply\" button\r\n\r\n //replay\r\n $video\r\n .data('videoPlayer')\r\n .setCurrentTime(0)\r\n /*.then(function () {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t$video\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.data('videoPlayer')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.play();\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t})*/;\r\n\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n //setup video event handlers\r\n $video\r\n .data('videoPlayer')\r\n .on('pause', function () {\r\n //console.log('video paused');\r\n //$video\r\n //\t.data('playing', false);\r\n\r\n $caption\r\n .removeClass('video-playing video-play-manual')\r\n .addClass('video-paused')\r\n .find('.play-btn, .replay-btn')\r\n .removeClass('hide')\r\n .end()\r\n .find('.pause-btn')\r\n .addClass('hide');\r\n\r\n $video\r\n .data('videoPlayer')\r\n .getCurrentTime()\r\n .then(function (time) {\r\n if (time < 0.1) {\r\n $caption\r\n .addClass('video-must-manually-start');\r\n }\r\n });\r\n\r\n clearTimeout($caption.data('loader-timer'));\r\n\r\n //$caption\r\n //\t.children('.video-loader')\r\n //\t\t.addClass('hide');\r\n\r\n //clearTimeout(slideshowOBJ.showTimer);\r\n\r\n });\r\n\r\n $video\r\n .data('videoPlayer')\r\n .on('play', function (a, b, c) {\r\n //console.log('video play');\r\n if (!$video.data('play-tracked')) {\r\n\r\n pepTracking.event('Video', 'Started', videoData.videoID.toString());\r\n\r\n }\r\n\r\n $video\r\n .data('playing', true)\r\n .data('play-tracked', true);\r\n\r\n $caption\r\n .removeClass('video-paused video-pause-manual')\r\n .addClass('video-playing video-played')\r\n .find('.play-btn, .replay-btn')\r\n .addClass('hide')\r\n .end()\r\n .find('.pause-btn')\r\n .removeClass('hide');\r\n\r\n clearTimeout($caption.data('loader-timer'));\r\n\r\n $caption\r\n .children('.video-loader')\r\n .addClass('hide');\r\n\r\n clearTimeout(slideshowOBJ.showTimer);\r\n\r\n });\r\n\r\n $video\r\n .data('videoPlayer')\r\n .on('error', function (data) {\r\n\r\n //TODO: need to figure out how to detect if video is not supported\r\n\r\n //check if the video format is supported\r\n /*if (parseInt($video.data('videojs').error().code) === 4) {\r\n\r\n\t\t\t\t\t\t\t\t\t//if not then hide video controls, act like nothing is wrong :)\r\n\t\t\t\t\t\t\t\t\t$video\r\n\t\t\t\t\t\t\t\t\t\t.closest('.artwork')\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('video-not-supported');\r\n\r\n\t\t\t\t\t\t\t\t}*/\r\n\r\n pepTracking.event('Video', 'Error', data.name);\r\n\r\n });\r\n\r\n //TODO: only show loading spinner if the play button was pressed ???\r\n /*$video\r\n\t\t\t\t\t\t.data('videojs')\r\n\t\t\t\t\t\t\t.on('loadstart', function (event) {\r\n\r\n\t\t\t\t\t\t\t\t$caption\r\n\t\t\t\t\t\t\t\t\t.data('loader-timer', setTimeout(function () {\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (Modernizr.touchevents || $(event.target).hasClass('vjs-error'))\treturn;\r\n\r\n\t\t\t\t\t\t\t\t\t\t$artCaption\r\n\t\t\t\t\t\t\t\t\t\t\t.eq(index)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.find('.video-loader')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('hide');\r\n\r\n\t\t\t\t\t\t\t\t\t}, 5000));\r\n\r\n\t\t\t\t\t\t\t});*/\r\n\r\n $video\r\n .data('videoPlayer')\r\n .on('play', function () {\r\n\r\n clearTimeout($caption.data('loader-timer'));\r\n\r\n $caption\r\n .children('.video-loader')\r\n .addClass('hide');\r\n\r\n });\r\n\r\n if ($dot.length) {\r\n\r\n $video\r\n .data({\r\n lastRenderDotOffset: -1,\r\n lastRenderDotText: -1\r\n })\r\n .data('videoPlayer')\r\n .on('timeupdate', function (data) {\r\n\r\n if (typeof data !== 'object') return;\r\n\r\n $video\r\n .trigger('reportResolution', [this]);\r\n\r\n if ($video.hasClass('active')) {\r\n\r\n //update countdown text and the countdown animation\r\n\r\n if ($video.data('lastRenderDotOffset') !== dashOffset || $video.data('lastRenderDotText') !== countText) {\r\n\r\n var dashOffset = parseInt(slideshowOBJ.dotDashOffset * data.percent, 10);\r\n var countText = parseInt(data.duration - data.seconds, 10);\r\n\r\n $video\r\n .data({\r\n lastRenderDotOffset: dashOffset,\r\n lastRenderDotText: countText\r\n });\r\n\r\n slideshowOBJ.dots\r\n .filter('[data-index=' + $video.data('index') + ']')\r\n .find('.text')\r\n .text(countText)\r\n .end()\r\n .find('circle')\r\n .css({\r\n 'stroke-dashoffset': dashOffset + 'px'\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n } else {\r\n\r\n //we still want to report video resolutions even if there are no dots\r\n $video\r\n .data('videoPlayer')\r\n .on('timeupdate', function (data) {\r\n\r\n if (typeof data !== 'object') return;\r\n\r\n $video\r\n .trigger('reportResolution', [this]);\r\n\r\n });\r\n\r\n }\r\n\r\n if (parseInt($video.data('audio'), 10) === 0) {\r\n\r\n $video\r\n .data('videoPlayer')\r\n .setVolume(0);\r\n\r\n }\r\n\r\n $video\r\n .addClass('initialized');\r\n\r\n\r\n if (typeof $video.data('videoPlayer') === 'object') {\r\n\r\n /*$video\r\n\t\t\t\t\t\t\t.children('.video-js')\r\n\t\t\t\t\t\t\t\t.css({\r\n\t\t\t\t\t\t\t\t\tbackgroundImage\t:\t\"url('/library/api/video-poster.php?VIDEO_ID=\" + videoData.videoID + \"')\"\r\n\t\t\t\t\t\t\t\t});*/\r\n //console.log('init');\r\n $video\r\n .data('videoPlayer')\r\n .ready()\r\n .then(function () {\r\n\r\n var autoplay = parseInt($video.data('video-data').autoplay, 10);\r\n //console.log('autoplay', autoplay);\r\n if (autoplay === 1) {// && Modernizr.videoautoplay\r\n\r\n clearTimeout(slideshowOBJ.videoStartTimer);\r\n //console.log('videoStartTimeout', slideshowOBJ.videoStartTimeout);\r\n //give the browser a moment to catch up before playing\r\n slideshowOBJ.videoStartTimer = setTimeout(function () {\r\n\r\n if (0 === parseInt($video.data('play-count'), 10) && $video.hasClass('active') && slideshowOBJ.windowIsActive === true) {\r\n //console.log('ready play');\r\n $video\r\n .data('videoPlayer')\r\n .play()\r\n .catch(function (data) {\r\n\r\n //an error occurred...\r\n console.log(data);\r\n\r\n });\r\n\r\n }\r\n\r\n }, slideshowOBJ.videoStartTimeout);\r\n\r\n }\r\n\r\n });\r\n\r\n $video\r\n .find('.video-player')\r\n .addClass('active');\r\n\r\n }\r\n\r\n }\r\n //console.groupEnd();\r\n },\r\n changeSlide: function (newIndex) {\r\n //console.log('changeSlide');\r\n var oldSlideIndex = this.currentSlide;//this.slides.filter('.active').data('index');\r\n var slideshowOBJ = this;\r\n\r\n this.lastSlideStartTime = new Date().getTime();\r\n\r\n if (this.getSlide(newIndex).hasClass('video')) {\r\n //console.log('is video slide');\r\n this.initVideo(newIndex);\r\n }\r\n\r\n //only run when there is more than one slide\r\n if (this.slides.length < 2) return false;\r\n\r\n //only run when an existing slide is requested\r\n if (this.slides.eq(newIndex).length === 0) return false;\r\n\r\n //all transitions must finish before new ones can start\r\n if (this.transitionInProgress) return false;\r\n\r\n clearTimeout(this.showTimer);\r\n clearTimeout(this.videoStartTimer);\r\n\r\n this.activateSlide(newIndex);\r\n\r\n if (newIndex !== this.currentSlide) {\r\n\r\n //tasks to run only if we're showing a new slide\r\n\r\n this.deactivateSlide(oldSlideIndex);\r\n\r\n if (newIndex >= this.slides.length.length || newIndex < 0) {\r\n newIndex = 0;\r\n }\r\n\r\n this.currentSlide = newIndex;\r\n }\r\n\r\n if (!this.slides.eq(this.currentSlide).hasClass('video')) {\r\n this.showTimer = setTimeout(function () {\r\n slideshowOBJ.changeSlide(slideshowOBJ.getNextSlideIndex(1));\r\n }, parseInt(this.slides.eq(this.currentSlide).data('cms-data').duration || 10, 10) * 1000 + this.transitionDuration);\r\n }\r\n },\r\n positionThumbs: function (index) {\r\n\r\n //if this slide has a caption\r\n if (this.getSlide(index).hasClass('has-cap')) {\r\n\r\n //place thumbs above the caption for mobile ui\r\n this.$ele\r\n .children('.thumb-dots')\r\n .addClass('has-cap');\r\n\r\n } else {\r\n\r\n this.$ele\r\n .children('.thumb-dots')\r\n .removeClass('has-cap');\r\n\r\n }\r\n\r\n },\r\n pauseCurrentVideo: function () {\r\n\r\n var $activeVideoSlide = this.slides.filter('.active').filter('.video');\r\n\r\n //pause a video if it's playing in mobile ui\r\n if ($activeVideoSlide.length && typeof $activeVideoSlide.data('videoPlayer') === 'object') {\r\n\r\n $activeVideoSlide\r\n .data('videoPlayer')\r\n .pause();\r\n\r\n }\r\n\r\n },\r\n playCurrentVideo: function () {\r\n\r\n var $activeVideoSlide = this.slides.filter('.active').filter('.video');\r\n\r\n //play a video if it's paused\r\n if ($activeVideoSlide.length && $activeVideoSlide.data('playing') && typeof $activeVideoSlide.data('videoPlayer') === 'object') {\r\n //console.log('playCurrentVideo play');\r\n $activeVideoSlide\r\n .data('videoPlayer')\r\n .play();\r\n\r\n }\r\n\r\n },\r\n startSlideDot: function (slideIndex) {\r\n\r\n var $slide = this.getSlide(slideIndex);\r\n var $dot = this.dots.eq(slideIndex);\r\n var slideshowOBJ = this;\r\n\r\n //video dot animations are handled via video code\r\n if (this.slides.length < 2) return;\r\n\r\n if ($slide.hasClass('video')) {\r\n\r\n //just activate video dots\r\n $dot\r\n .addClass('active');\r\n\r\n } else {\r\n\r\n $dot\r\n .addClass('reset')\r\n .children('.text')\r\n .text('');\r\n\r\n var dotDuration = parseInt($slide.data('cms-data').duration, 10),\r\n dotStartTime = new Date().getTime(),\r\n dotTransitionDuration = (2 > this.slidesShown) ? -250 : (750 - this.dotResetDuration),\r\n dotLastRender = -1,\r\n dotRunAni = function () {\r\n\r\n var dotTimeLeft = dotDuration - Math.floor((new Date().getTime() - dotStartTime - dotTransitionDuration) / 1000);\r\n\r\n if (dotTimeLeft !== dotLastRender) {\r\n\r\n dotLastRender = dotTimeLeft;\r\n\r\n if (dotTimeLeft < 0) {\r\n\r\n //timer done\r\n slideshowOBJ.stopSlideDot(slideIndex);\r\n\r\n dotTimeLeft = null;\r\n dotDuration = null;\r\n dotStartTime = null;\r\n dotLastRender = null;\r\n slideIndex = null;\r\n $slide = null;\r\n $dot = null;\r\n\r\n } else if ($dot.data('animation-timer-running')) {\r\n\r\n $dot\r\n .removeClass('reset')\r\n .children('.text')\r\n .text(dotTimeLeft);\r\n\r\n //timer not done\r\n requestAnimationFrame(dotRunAni);\r\n\r\n }\r\n\r\n } else {\r\n\r\n //not a full second has gone by\r\n requestAnimationFrame(dotRunAni);\r\n\r\n }\r\n\r\n };\r\n\r\n clearTimeout(this.dotResetTimer);\r\n\r\n this.dotResetTimer = setTimeout(function () {\r\n\r\n $dot\r\n .data('animation-timer-running', true);\r\n\r\n dotRunAni();\r\n\r\n }, this.dotResetDuration);\r\n\r\n //first slide on page load has no transition so no need to wait for the transition to end before starting the countdown\r\n //if (isFirstSlideOnPageLoad)\trequestAnimationFrame(dotRunAni);\r\n\r\n $dot\r\n /*.onCSSTransitionEnd(function () {\r\n\r\n\t\t\t\t\t\t\tif (!isFirstSlideOnPageLoad)\trequestAnimationFrame(dotRunAni);\r\n\r\n\t\t\t\t\t\t})*/\r\n .addClass('active')\r\n .find('.text')\r\n .text(dotDuration);\r\n\r\n }\r\n\r\n },\r\n stopSlideDot: function (slideIndex) {\r\n\r\n var $dot = this.dots.eq(slideIndex);\r\n\r\n $dot\r\n .data('animation-timer-running', false);\r\n\r\n $dot\r\n /*.children('.text')\r\n\t\t\t\t\t\t.onCSSTransitionEnd(function () {\r\n\r\n\t\t\t\t\t\t\t$(this)\r\n\t\t\t\t\t\t\t\t.text('');\r\n\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t.end()*/\r\n .find('circle')\r\n .css({\r\n strokeDashoffset: ''\r\n })\r\n .end()\r\n .removeClass('active');\r\n\r\n\r\n },\r\n activateSlide: function (index) {\r\n\r\n var $slide = this.getSlide(index);\r\n var slideshowOBJ = this;\r\n\r\n this.lastSlideStartTime = new Date().getTime();\r\n this.slidesShown++;\r\n\r\n this.transitionInProgress = true;\r\n\r\n this.transitionTimer = setTimeout(function () {\r\n\r\n slideshowOBJ.transitionInProgress = false;\r\n\r\n }, this.transitionDuration);\r\n\r\n //activate new slide\r\n this.loadSlideImage(index);\r\n\r\n $slide\r\n .addClass('active');\r\n\r\n //activate new caption\r\n this.captions\r\n .filter('[data-index=' + index + ']')\r\n .addClass('active');\r\n\r\n //activate new dot\r\n this.startSlideDot(index);\r\n\r\n //position thumbs\r\n this.positionThumbs(index);\r\n\r\n //initialize video if necessary\r\n if ($slide.hasClass('video') && !$slide.hasClass('initialized')) {\r\n\r\n this.initVideo(index, true);\r\n\r\n }/* else {\r\n\r\n\t\t\t\t\t//NOTE: this is now handled in changeSlide()\r\n\r\n\t\t\t\t\t//setup timer for next slide\r\n\t\t\t\t\tclearTimeout(this.slideTimer);\r\n\r\n\t\t\t\t\tthis.slideTimer\t= setTimeout(function () {\r\n\t\t\t\t\t\tconsole.log('timer', 'slideTimer');\r\n\t\t\t\t\t\tslideshowOBJ.changeSlide(index);\r\n\r\n\t\t\t\t\t}, $slide.data('cms-data').duration * 1000);\r\n\r\n\t\t\t\t}*/\r\n\r\n },\r\n deactivateSlide: function (index) {\r\n\r\n var $slide = this.getSlide(index);\r\n var $caption = this.getCaption(index);\r\n\r\n if ($slide.hasClass('video')) {\r\n\r\n this.dots\r\n .filter('[data-index=' + index + ']')\r\n .find('.dot-circle')\r\n .children()\r\n .css({\r\n transitionDuration: '',\r\n transform: ''\r\n });\r\n\r\n if (typeof $slide.data('videoPlayer') === 'object') {\r\n\r\n this.videoTimer = setTimeout(function () {\r\n\r\n $slide\r\n .removeClass('initialized')\r\n .data('videoPlayer')\r\n .destroy();\r\n\r\n $slide\r\n .removeData('videoPlayer');\r\n\r\n $caption\r\n .removeClass('video-playing video-played video-paused');\r\n\r\n if (typeof $slide.data('video-backup') === 'string') {\r\n\r\n $slide\r\n .append($slide.data('video-backup'));\r\n\r\n }\r\n\r\n }, 1000);\r\n\r\n }\r\n\r\n }\r\n\r\n //deactivate content\r\n $slide\r\n .removeClass('active');\r\n\r\n //deactivate caption\r\n $caption\r\n .removeClass('active');\r\n\r\n //update transition duration for dot\r\n\r\n this.stopSlideDot(index);\r\n\r\n }\r\n };\r\n var pauseCurrentVideo = function () {\r\n\r\n //pause a video if it's playing in mobile ui\r\n if ($('html').hasClass('ui-mobile')) {\r\n\r\n for (var i = 0, l = allSlideshows.length; i < l; i++) {\r\n\r\n if (allSlideshows[i].slideshowIsActive && typeof allSlideshows[i].slides.filter('.active.video').data('videoPlayer') === 'object') {\r\n\r\n allSlideshows[i].slides\r\n .filter('.active.video')\r\n .data('videoPlayer')\r\n .pause();\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n },\r\n playCurrentVideo = function () {\r\n\r\n //play a video if it's paused\r\n\r\n for (var i = 0, l = allSlideshows.length; i < l; i++) {\r\n\r\n if (allSlideshows[i].slideshowIsActive && typeof allSlideshows[i].slides.filter('.active.video').data('videoPlayer') === 'object') {\r\n //console.log('playCurrentVideo (2?) play');\r\n allSlideshows[i].slides\r\n .filter('.active.video')\r\n .data('videoPlayer')\r\n .play();\r\n\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n window.allSlideshows = [];\r\n\r\n $(function () {\r\n\r\n $.each($('.artwork'), function (i) {\r\n\r\n var slideshow = $.extend(true, {}, pepSlideshow);\r\n\r\n slideshow.setupSlideshow($(this), i);\r\n\r\n allSlideshows.push(slideshow);\r\n\r\n });\r\n\r\n });\r\n\r\n\r\n //globals\r\n var $container = $('#container');\r\n var $header = $('#header');\r\n var $headerSticky = $('#header-sticky');\r\n var $footer = $('#footer');\r\n var dims = {\r\n window: {\r\n w: $(window).width(),\r\n h: $(window).height(),\r\n timer: null\r\n }\r\n };\r\n var cookieData = $('html').data('cookie');\r\n var responsive = {\r\n current: 'ui-desktop',\r\n points: [760, 1240, 1480],\r\n classes: ['ui-mobile', 'ui-tablet', 'ui-desktop', 'ui-widescreen'],\r\n orientation: 'landscape',\r\n timer: null,\r\n update: function () {\r\n\r\n if (dims.window.w > dims.window.h) {\r\n\r\n $(\"html\").addClass(\"landscape\").removeClass(\"portrait\");\r\n responsive.orientation = 'landscape';\r\n\r\n } else {\r\n\r\n $(\"html\").addClass(\"portrait\").removeClass(\"landscape\");\r\n responsive.orientation = 'portrait';\r\n\r\n }\r\n\r\n //determine which responsive-design-break-point should be used\r\n\r\n var found = false;\r\n for (var i = 0, l = responsive.points.length; i < l; i++) {\r\n if (dims.window.w <= responsive.points[i]) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n\r\n //if no match was found then use largest\r\n if (!found) {\r\n i = l;\r\n }\r\n\r\n //overwrite for android (limit to mobile/tablet uis)\r\n if (isAndroidDevice === true && i > 1) {\r\n i = 1;\r\n }\r\n\r\n if (responsive.current !== responsive.classes[i]) {\r\n\r\n clearTimeout(responsive.timer);\r\n\r\n responsive.timer = setTimeout(function () {\r\n\r\n $('html')\r\n .removeClass('ui-transition');\r\n\r\n }, 250);\r\n\r\n $('html')\r\n .addClass('ui-transition');\r\n\r\n //var now\t\t=\tnew Date(),\r\n //\texpire\t=\tnew Date(now.getTime() + (parseInt(cookieData.t, 10) * 10000));\r\n\r\n var currPepUi = document.cookie.replace(/(?:(?:^|.*;\\s*)pepui\\s*\\=\\s*([^;]*).*$)|^.*$/, \"$1\");\r\n\r\n if (cookieData && currPepUi !== responsive.classes[i]) {\r\n\r\n document.cookie = 'pepui=' + responsive.classes[i] + '; expires=' + new Date(new Date().getTime() + 7776000000).toGMTString() + '; path=' + cookieData.b + cookieData.s + '; ' + cookieData.h;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n $('html')\r\n .removeClass(responsive.classes.join(' '))\r\n .addClass(responsive.classes[i]);\r\n\r\n responsive.current = responsive.classes[i];\r\n\r\n }\r\n };\r\n var isAndroidDevice = (navigator.userAgent.toLowerCase().indexOf(\"android\") > -1);\r\n var isOldIE = false;\r\n var isMinified = !/event/.test(function (event) {\r\n });\r\n\r\n if (cookieData && cookieData.s === 'secure') cookieData.s = '; secure';\r\n\r\n responsive.update();\r\n\r\n //setup console if it doesn't exist to not cause errors\r\n if (typeof console !== \"object\") console = {\r\n log: function () {\r\n }\r\n };\r\n\r\n function getInternetExplorerVersion() {\r\n var rv = -1; // Return value assumes failure.\r\n if (navigator.appName == 'Microsoft Internet Explorer') {\r\n var ua = navigator.userAgent;\r\n var re = new RegExp(\"MSIE ([0-9]{1,}[\\.0-9]{0,})\");\r\n if (re.exec(ua) != null)\r\n rv = parseFloat(RegExp.$1);\r\n }\r\n return rv;\r\n }\r\n\r\n //function detectiOSDevice () {\r\n\r\n //\treturn /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n\r\n //}\r\n\r\n if (getInternetExplorerVersion() > -1 && getInternetExplorerVersion() < 10) {\r\n\r\n isOldIE = true;\r\n\r\n $('html')\r\n .addClass('old-ie');\r\n\r\n }\r\n\r\n //if (detectiOSDevice())\t$('html').addClass('os-ios');\r\n\r\n function determineBookingPhoneNumber() {\r\n\r\n if (Modernizr.touchevents && ($('html').hasClass('ui-mobile') || $('html').hasClass('ui-tablet'))) {\r\n\r\n return '1-800-821-8568';\r\n\r\n }\r\n\r\n return '1-866-400-0519';\r\n\r\n }\r\n\r\n\r\n require('./pepHelperFunctions');\r\n\r\n\r\n window.pepConsole = {\r\n isDev: ('dev.' === location.hostname.substr(0, 4)),\r\n log: function () {\r\n if (window.pepConsole.isDev) {\r\n console.log.apply(window, arguments);\r\n }\r\n },\r\n group: function () {\r\n if (window.pepConsole.isDev) {\r\n console.group.apply(window, arguments);\r\n }\r\n },\r\n groupEnd: function () {\r\n if (window.pepConsole.isDev) {\r\n console.groupEnd.apply(window, arguments);\r\n }\r\n }\r\n };\r\n\r\n\r\n require('./pepDateFunctions');\r\n\r\n\r\n //MAIN NAVIGATION CODE//\r\n var nav = {\r\n element: $('#nav'),\r\n timer: null,\r\n timer2: null,\r\n clickEvent: 'click',\r\n links: $('#nav').find('.nav-link')\r\n },\r\n touchEffectTimer = null;\r\n\r\n function setupEmailReplacements() {\r\n\r\n $('[data-email-replacement]')\r\n .filter(function () {\r\n\r\n return $(this).data('setup') !== true;\r\n\r\n })\r\n .each(function () {\r\n\r\n var data = $(this).data();\r\n\r\n if ($(this).is('a')) {\r\n\r\n this.href = 'mailto: ' + data.user + '@' + data.domain + '.' + data.extension;\r\n\r\n } else {\r\n\r\n $(this).text(data.user + '@' + data.domain + '.' + data.extension);\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n setupEmailReplacements();\r\n\r\n nav.element\r\n .find('.menu-handle')\r\n .on('click', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n $('html')\r\n .toggleClass('show-nav');\r\n\r\n if ($('html').hasClass('show-nav')) {\r\n\r\n pauseCurrentVideo();\r\n\r\n $(this)\r\n .data('lastFocusedElement', document.activeElement);\r\n\r\n nav.element.find('.links')\r\n [0].focus({focusVisible: true});\r\n\r\n if ($(window).scrollTop() < $headerSticky.outerHeight()) {\r\n\r\n $(this)\r\n .data('rememberScroll', $(window).scrollTop());\r\n\r\n $(window)\r\n .scrollTop($headerSticky.outerHeight());\r\n\r\n }\r\n\r\n } else {\r\n\r\n playCurrentVideo();\r\n\r\n if (typeof $(this).data('lastFocusedElement') === 'object') {\r\n\r\n $(this)\r\n .data('lastFocusedElement')\r\n .focus({focusVisible: true});\r\n\r\n $(this)\r\n .removeData('lastFocusedElement');\r\n\r\n }\r\n\r\n if (typeof $(this).data('rememberScroll') === 'number') {\r\n\r\n $(window)\r\n .scrollTop($(this).data('rememberScroll'));\r\n\r\n $(this)\r\n .removeData('rememberScroll');\r\n\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n /*$footer\r\n\t\t.find('.menu-handle')\r\n\t\t\t.on('click', function (event) {\r\n\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\r\n\t\t\t\tvar $handle\t=\t$(this);\r\n\r\n\t\t\t\t$('html').toggleClass('show-nav');\r\n\r\n\t\t\t});*/\r\n\r\n nav.links\r\n .on('click', function (event) {\r\n\r\n event.stopPropagation();\r\n\r\n });\r\n\r\n $(document)\r\n .on('click', function () {\r\n\r\n $('html').removeClass('show-nav');\r\n\r\n });\r\n\r\n if (Modernizr.touchevents) {\r\n\r\n function showTouchEffect(ele, event) {\r\n\r\n var $ele = $(ele),\r\n $newEffect = $('')\r\n .css({\r\n top: ((event.touches[0].clientY - $ele.offset().top + $(window).scrollTop()) / $ele.outerHeight() * 100) + '%',\r\n left: ((event.touches[0].clientX - $ele.offset().left + $(window).scrollLeft()) / $ele.outerWidth() * 100) + '%'\r\n });\r\n\r\n $ele\r\n .append($newEffect);\r\n\r\n setTimeout(function () {\r\n\r\n $newEffect\r\n .parent()\r\n .addClass('show-touch-effect');\r\n\r\n setTimeout(function () {\r\n\r\n $newEffect\r\n .addClass('hide');\r\n\r\n setTimeout(function () {\r\n\r\n $newEffect\r\n .parent()\r\n .removeClass('show-touch-effect')\r\n .end()\r\n .remove();\r\n\r\n }, 250);\r\n\r\n }, 300);\r\n\r\n }, 50);\r\n\r\n }\r\n\r\n $('a')\r\n .on('touchstart', function (event) {\r\n\r\n if (event.originalEvent.touches.length === 1 && false === $(this).hasClass('no-touch-effect')) {\r\n\r\n var ele = this,\r\n evnt = event;\r\n\r\n touchEffectTimer = setTimeout(function () {\r\n\r\n showTouchEffect(ele, evnt.originalEvent);\r\n\r\n }, 50);\r\n\r\n }\r\n\r\n })\r\n .on('touchmove', function () {\r\n\r\n clearTimeout(touchEffectTimer);\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n //page link scroll animation\r\n var $pageLinkContainers = $('.body-container').filter('.page-links');\r\n var $pageLinks = $pageLinkContainers.find('.item');\r\n var pageLinkResizetimer = null;\r\n var pageLinkCallbacks = [];\r\n var pageLinkLastUI = '';\r\n\r\n window.resetPageLinks = function ($newPageLinks) {\r\n\r\n if (typeof $newPageLinks === 'object') $pageLinks = $newPageLinks;\r\n else $pageLinks = $('.page-links').find('.item');\r\n\r\n };\r\n\r\n /**\r\n * Resets the\r\n */\r\n function resetPageLinksOffset(forceUpdate) {\r\n\r\n //console.group('resetPageLinksOffset()');\r\n\r\n if ('boolean' !== typeof forceUpdate) var forceUpdate = false;\r\n\r\n //console.log('forceUpdate', forceUpdate);\r\n\r\n //we can use the fact that mobile/touch page links will horizontally scroll with the same offset\r\n if ('ui-mobile' === responsive.current && true === Modernizr.touchevents) {\r\n\r\n $.each($pageLinks.closest('.body-container-scroller'), function () {\r\n\r\n if (true === forceUpdate || !$(this).children('.item').eq(0).data('offsetTop')) {\r\n\r\n $(this)\r\n .children('.item')\r\n .data({\r\n offsetTop: $(this).offset().top,\r\n height: $(this).outerHeight()\r\n })\r\n .each((i, itemNode) => {\r\n itemNode.dataset.offsetTop = $(this).offset().top;\r\n itemNode.dataset.height = $(this).outerHeight();\r\n });\r\n\r\n }\r\n\r\n });\r\n\r\n } else {\r\n\r\n $.each($pageLinks, function (i) {\r\n\r\n if (true === forceUpdate || !$pageLinks.eq(i).data('offsetTop')) {\r\n\r\n $pageLinks\r\n .eq(i)\r\n .data({\r\n offsetTop: $pageLinks.eq(i).offset().top,\r\n height: $pageLinks.eq(i).outerHeight()\r\n })\r\n .each((i, itemNode) => {\r\n itemNode.dataset.offsetTop = $(this).offset().top;\r\n itemNode.dataset.height = $(this).outerHeight();\r\n });\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n //console.groupEnd();\r\n\r\n }\r\n\r\n window.recalcPageLinks = function (forceOffsetUpdate) {\r\n\r\n //console.group('recalcPageLinks()');\r\n\r\n if ('boolean' !== forceOffsetUpdate) var forceOffsetUpdate = false;\r\n\r\n //console.log('forceOffsetUpdate', forceOffsetUpdate);\r\n\r\n var nowTime = new Date().getTime();\r\n var lastStepTime = nowTime;\r\n\r\n //only get offset if it could have changed\r\n if (true === forceOffsetUpdate || pageLinkLastUI !== responsive.current || 'ui-mobile' !== responsive.current) {\r\n\r\n resetPageLinksOffset(true);\r\n\r\n }\r\n\r\n //nowTime\t=\tnew Date().getTime();\r\n //console.log('get new offsets', nowTime - lastStepTime);\r\n //lastStepTime\t=\tnowTime;\r\n\r\n renderPageLinks();\r\n\r\n //nowTime\t=\tnew Date().getTime();\r\n //console.log('renderPageLinks()', nowTime - lastStepTime);\r\n //lastStepTime\t=\tnowTime;\r\n\r\n lastRenderedScroll = -1;\r\n pageLinkLastUI = responsive.current;\r\n\r\n //console.groupEnd();\r\n\r\n }\r\n\r\n $(window)\r\n .on('resize.page-links load.page-links', function (event, callback) {\r\n\r\n if (typeof callback === 'function') pageLinkCallbacks.push(callback);\r\n\r\n clearTimeout(pageLinkResizetimer);\r\n\r\n pageLinkResizetimer = setTimeout(function () {\r\n\r\n //console.group('pageLinkResizetimer');\r\n //console.log('pageLinkCallbacks.length', pageLinkCallbacks.length);\r\n\r\n var nowTime = new Date().getTime();\r\n var lastStepTime = nowTime;\r\n\r\n recalcPageLinks();\r\n\r\n //nowTime\t=\tnew Date().getTime();\r\n //console.log('recalcPageLinks()', nowTime - lastStepTime);\r\n //lastStepTime\t=\tnowTime;\r\n\r\n //run all the callbacks that might have stacked up\r\n for (var i = 0, l = pageLinkCallbacks.length; i < l; i++) {\r\n\r\n pageLinkCallbacks[i].call(this);\r\n\r\n }\r\n\r\n //nowTime\t=\tnew Date().getTime();\r\n //console.log('pageLinkCallbacks', nowTime - lastStepTime);\r\n //lastStepTime\t=\tnowTime;\r\n\r\n //reset callbacks\r\n pageLinkCallbacks = [];\r\n\r\n //console.groupEnd();\r\n\r\n }, 100);\r\n\r\n });\r\n\r\n $pageLinkContainers\r\n .find('.page-link-view-more')\r\n .on('click.plg-expand', function (event) {\r\n\r\n var plgID = $(this).closest('.page-links').data('plg-id');\r\n\r\n event.preventDefault();\r\n\r\n $(this)\r\n .closest('.page-links')\r\n .addClass('show-all-items');\r\n\r\n setTimeout(function () {\r\n\r\n recalcPageLinks();\r\n\r\n if (plgID && parseInt(plgID, 10)) {\r\n\r\n savePageSetting('plg-expanded-' + plgID, true);\r\n\r\n }\r\n\r\n }, 33);\r\n\r\n })\r\n .each(function () {\r\n\r\n var plgID = $(this).closest('.page-links').data('plg-id');\r\n\r\n if (plgID && parseInt(plgID, 10)) {\r\n\r\n var pageSettings = getPageSettings();\r\n var settingKey = 'plg-expanded-' + plgID;\r\n\r\n if (settingKey in pageSettings && true === pageSettings[settingKey]) {\r\n\r\n $(this)\r\n .trigger('click.plg-expand');\r\n\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n //HEADER CODE//\r\n const headerScrollDist = Math.max(Math.min($(window).height() / 2.5, 600), 250);\r\n const backToTopScrollDist = $(window).height() * 3;\r\n let footerBackToTopActive = false;\r\n const footerScrollDist = parseInt(getComputedStyle(document.body).fontSize, 10) + 44;\r\n const minFooterOpacity = {\r\n mobile: 1,\r\n desktop: 1//0.5\r\n };\r\n const maxFooterOpacity = {\r\n mobile: 1,\r\n desktop: 1\r\n };\r\n let currentScroll = 0;\r\n lastRenderedScroll = -1;\r\n let scrollReady = false,\r\n pageLinkBuffer = 500,\r\n $backToTop = $footer.find('.above-the-fold').find('.back-to-top');\r\n\r\n window.loadPageLinkImage = function ($pageLink) {\r\n\r\n $pageLink\r\n .filter(function () {\r\n return !$(this).data('imageLoaded');\r\n })\r\n .data('imageLoaded', true)\r\n .find('.img')\r\n .each(function () {\r\n\r\n if (!$(this).data('img-src')) return;\r\n\r\n $(this)\r\n .css({\r\n backgroundImage: 'url(\\'' + $(this).data('img-src') + '\\')'\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n function renderPageLinks() {\r\n\r\n //console.group('renderPageLinks()');\r\n\r\n //var nowTime\t\t\t=\tnew Date().getTime();\r\n //var lastStepTime\t=\tnowTime;\r\n\r\n\r\n var scrollCount = 0,\r\n windowHeight = $(window).height() - 48;\r\n\r\n if ($pageLinks.length === 0) {\r\n\r\n $('html')\r\n .addClass('scroll-ready');\r\n\r\n scrollReady = true;\r\n\r\n } else {\r\n\r\n resetPageLinksOffset(false);\r\n\r\n //nowTime\t=\tnew Date().getTime();\r\n //console.log('initialize offsets', nowTime - lastStepTime);\r\n //lastStepTime\t=\tnowTime;\r\n\r\n $.each($pageLinks, function (i) {\r\n\r\n //only if the page link is in the viewport and hasn't already been animated into position\r\n if (!$pageLinks.eq(i).data('scrolled') && $pageLinks.eq(i).data('offsetTop') <= currentScroll + windowHeight && $pageLinks.eq(i).is(':visible')) {\r\n\r\n if ($pageLinks.eq(i).data('offsetTop') + $pageLinks.eq(i).data('height') >= currentScroll) {\r\n\r\n //mark as scrolled\r\n $pageLinks\r\n .eq(i)\r\n .addClass('scrolled delay-' + scrollCount)\r\n .data('scrolled', true);\r\n\r\n scrollCount++;\r\n\r\n //load image\r\n loadPageLinkImage($pageLinks.eq(i));\r\n\r\n //preload larger image source if set\r\n if ($pageLinks.eq(i).data('image-src')) $(\"\")[0].src = $pageLinks.eq(i).data('image-src');\r\n\r\n } else {\r\n\r\n //above the current viewport and not yet shown\r\n\r\n //check if the image should be preloaded\r\n if ($pageLinks.eq(i).data('offsetTop') + $pageLinks.eq(i).data('height') >= currentScroll - pageLinkBuffer) {\r\n\r\n //load image\r\n loadPageLinkImage($pageLinks.eq(i));\r\n\r\n }\r\n\r\n $pageLinks\r\n .eq(i)\r\n .addClass('above-viewport');\r\n\r\n }\r\n\r\n } else if (!$pageLinks.eq(i).data('scrolled') && $pageLinks.eq(i).data('offsetTop') <= currentScroll + windowHeight + pageLinkBuffer) {\r\n\r\n //ok, not in view but close, preload the image\r\n //load image\r\n loadPageLinkImage($pageLinks.eq(i));\r\n\r\n\r\n }\r\n\r\n });\r\n\r\n //nowTime\t=\tnew Date().getTime();\r\n //console.log('render changes', nowTime - lastStepTime);\r\n //lastStepTime\t=\tnowTime;\r\n\r\n if (!scrollReady) {\r\n\r\n setTimeout(function () {\r\n\r\n $('html')\r\n .addClass('scroll-ready');\r\n\r\n scrollReady = true;\r\n\r\n }, 150);\r\n\r\n }\r\n\r\n }\r\n\r\n //console.groupEnd();\r\n\r\n }\r\n\r\n function renderMainNav() {\r\n\r\n //only render when the scroll has changed\r\n if (lastRenderedScroll !== currentScroll) {\r\n\r\n const headerPercent = (currentScroll / headerScrollDist > 1)\r\n ? 1\r\n : currentScroll / headerScrollDist;\r\n const footerPercent = (currentScroll >= footerScrollDist)\r\n ? ((currentScroll - footerScrollDist) / headerScrollDist > 1)\r\n ? 1\r\n : (currentScroll - footerScrollDist) / headerScrollDist\r\n : 0;\r\n const footerOpacity = (responsive.current === 'ui-mobile' || responsive.current === 'ui-tablet')\r\n ? minFooterOpacity.mobile + (maxFooterOpacity.mobile - minFooterOpacity.mobile) * footerPercent\r\n : minFooterOpacity.desktop + (maxFooterOpacity.desktop - minFooterOpacity.desktop) * footerPercent;\r\n const headerHeight = (responsive.current === 'ui-mobile')\r\n ? maxHeaderHeight.mobile\r\n : maxHeaderHeight.desktop;\r\n const backToTopActive = (currentScroll > backToTopScrollDist);\r\n\r\n $header\r\n .find('.shadow')\r\n .css({\r\n opacity: headerPercent\r\n })\r\n .end()\r\n .find('.nav-tab')\r\n .find('image')\r\n .css({\r\n opacity: headerPercent\r\n })\r\n .end();\r\n\r\n if (currentScroll + dims.window.h - footerScrollDist >= containerHeight + containerOffset) {\r\n\r\n const distanceThrough = containerHeight + containerOffset - (currentScroll + dims.window.h) + footerScrollDist;\r\n const percentThrough = Math.abs(distanceThrough / (footerHeight - footerScrollDist));\r\n\r\n $footer\r\n .addClass('above-the-fold-static footer-shown')\r\n .find('.above-the-fold')\r\n .children('.shadow')\r\n .css({\r\n opacity: 1 - percentThrough\r\n });\r\n\r\n $('html')\r\n .removeClass('footer-showing');\r\n\r\n } else if (currentScroll >= footerScrollDist) {\r\n\r\n $footer\r\n .removeClass('above-the-fold-static')\r\n .find('.above-the-fold')\r\n .css({\r\n transform: 'translateY(0px)',\r\n opacity: footerOpacity\r\n })\r\n .children('.shadow')\r\n .css({\r\n opacity: footerPercent\r\n });\r\n\r\n $('html')\r\n .addClass('footer-showing');\r\n\r\n if (backToTopActive && !footerBackToTopActive) {\r\n\r\n footerBackToTopActive = true;\r\n\r\n $backToTop\r\n .addClass('active');\r\n\r\n } else if (!backToTopActive && footerBackToTopActive) {\r\n\r\n footerBackToTopActive = false;\r\n\r\n $backToTop\r\n .removeClass('active');\r\n\r\n }\r\n\r\n } else {\r\n\r\n $footer\r\n .removeClass('above-the-fold-static')\r\n .find('.above-the-fold')\r\n .css({\r\n transform: 'translateY(' + (footerScrollDist - currentScroll) + 'px)',\r\n opacity: footerOpacity\r\n })\r\n .children('.shadow')\r\n .css({\r\n opacity: footerPercent\r\n });\r\n\r\n $('html')\r\n .removeClass('footer-showing');\r\n\r\n }\r\n\r\n\r\n //check if any slideshows need to be paused\r\n $.each(allSlideshows, function (i) {\r\n\r\n var videoOBJ = (allSlideshows[i].slideshowIsActive) ? allSlideshows[i].slides.filter('.active.video.initialized').data('videoPlayer') : undefined;\r\n\r\n //if the artwork is out of viewport, do nothing (but pause videos)\r\n if (allSlideshows[i].slideshowOffsetTop + allSlideshows[i].slideshowHeight - headerHeight <= currentScroll) {\r\n\r\n if (typeof videoOBJ === 'object') {\r\n\r\n videoOBJ\r\n .getPaused()\r\n .then(function (paused) {\r\n\r\n if (!paused) {\r\n\r\n videoOBJ\r\n .pause();\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n } else if (allSlideshows[i].slideshowIsActive) {\r\n\r\n if (typeof videoOBJ === 'object' && allSlideshows[i].slides.eq(allSlideshows[i].currentSlide).data('playing') && allSlideshows[i].getCaption(allSlideshows[i].currentSlide).hasClass('video-played') && !allSlideshows[i].getCaption(allSlideshows[i].currentSlide).hasClass('video-pause-manual')) {\r\n //console.log('scroll play');\r\n videoOBJ\r\n .getPaused()\r\n .then(function (paused) {\r\n\r\n if (paused) {\r\n\r\n videoOBJ\r\n .play();\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n //check if any page link items need to be animated\r\n renderPageLinks();\r\n\r\n //update last rendered scroll position\r\n lastRenderedScroll = currentScroll;\r\n\r\n }\r\n\r\n requestAnimationFrame(renderMainNav);\r\n\r\n }\r\n\r\n requestAnimationFrame(renderMainNav);\r\n\r\n if ($(\"html\").hasClass(\"hashchange\")) {\r\n\r\n $(window).on('scroll.header', function (event, userTriggered) {\r\n\r\n if (typeof userTriggered !== 'boolean' || userTriggered === true) userHasScrolled = true;\r\n\r\n currentScroll = $(this).scrollTop();\r\n\r\n clearTimeout(touchEffectTimer);\r\n\r\n }).trigger('scroll.header', [false]);\r\n\r\n }\r\n\r\n $(function () {\r\n\r\n renderPageLinks();\r\n\r\n });\r\n\r\n //$(window)\r\n //\t.on('resize.pagelinks load.pagelinks', function () {\r\n\r\n //\t\trenderPageLinks();\r\n\r\n //\t});\r\n\r\n //setInterval(renderPageLinks, 5000);\r\n\r\n $backToTop\r\n .on('click', function (event) {\r\n\r\n event.preventDefault();\r\n\r\n $('html, body')\r\n .stop(true)\r\n .animate({\r\n scrollTop: 0\r\n }, Math.min(Math.max(350, $(window).scrollTop() / 10), 2000), 'easeInOutCubic');\r\n\r\n });\r\n\r\n\r\n //DIALOG CODE\r\n var loaderClickTimer = null;\r\n var loaderDisableClickClose = false;\r\n\r\n window.showLoader = function (showLoadingSpinner) {\r\n\r\n //DEBUGGING\r\n //console.log('showLoader', 'showLoadingSpinner', showLoadingSpinner);\r\n //\r\n\r\n if ('boolean' !== typeof showLoadingSpinner) showLoadingSpinner = true;\r\n\r\n loaderDisableClickClose = true;\r\n\r\n loaderClickTimer = setTimeout(function () {\r\n loaderDisableClickClose = false;\r\n }, 350);\r\n\r\n var classes = ['show-overlay'];\r\n\r\n if (true === showLoadingSpinner) classes.push('show-loading-spinner');\r\n\r\n $('html')\r\n .addClass(classes.join(' '));\r\n\r\n };\r\n\r\n window.hideLoader = function (closeDialog, forceHide) {\r\n\r\n //DEBUGGING\r\n //console.log('hideLoader', 'closeDialog', closeDialog, 'forceHide', forceHide);\r\n //\r\n\r\n if ('boolean' !== typeof forceHide) var forceHide = false;\r\n if ('boolean' !== typeof closeDialog) var closeDialog = true;\r\n\r\n if (true === loaderDisableClickClose && false === forceHide) return;\r\n\r\n loaderDisableClickClose = false;\r\n\r\n $('html')\r\n .removeClass('show-overlay show-loading-spinner clear-overlay');\r\n\r\n if (true === closeDialog) {\r\n\r\n $('.dialog')\r\n .trigger('close', [true]);\r\n\r\n }\r\n\r\n };\r\n\r\n $(document)\r\n .on('click', function () {\r\n\r\n hideLoader(true, false);\r\n\r\n })\r\n .on('keydown', function (event) {\r\n\r\n if (event.which === 27) hideLoader(true, false);\r\n\r\n });\r\n\r\n $('#overlay').on('click', (event) => {\r\n event.stopPropagation();\r\n hideLoader(true, false);\r\n });\r\n\r\n $(document)\r\n .on('click', 'a.ajax-link', function (event) {\r\n const $link = $(this);\r\n if (typeof $link.data('query') !== 'string' && typeof $link.data('callback') !== 'string') return;\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n window.showOverlayDialog($link.data(), this);\r\n });\r\n\r\n require('./helpers/ExternalLinkWarning');\r\n\r\n\r\n function updateHeaderReservationWidgetBAR() {\r\n\r\n var selectedDates = $header.find('.pepvalidate-v3').filter('.reservations').find('.check-in-out').find('input').data('datepicker').selectedDates;\r\n\r\n if (selectedDates.length === 2) {\r\n\r\n var checkInRegMatch = /(20[0-9]{2})\\-([0-9]{1,2})\\-([0-9]{1,2})/.exec(selectedDates[0].getFullYear() + '-' + (selectedDates[0].getMonth() + 1) + '-' + selectedDates[0].getDate());\r\n var checkOutRegMatch = /(20[0-9]{2})\\-([0-9]{1,2})\\-([0-9]{1,2})/.exec(selectedDates[1].getFullYear() + '-' + (selectedDates[1].getMonth() + 1) + '-' + selectedDates[1].getDate());\r\n\r\n if (!!checkInRegMatch && !!checkOutRegMatch) {\r\n\r\n //verify correct format for months\r\n if (checkInRegMatch[2].length < 2) checkInRegMatch[2] = '0' + checkInRegMatch[2];\r\n if (checkOutRegMatch[2].length < 2) checkOutRegMatch[2] = '0' + checkOutRegMatch[2];\r\n\r\n //verify correct format for days\r\n if (checkInRegMatch[3].length < 2) checkInRegMatch[3] = '0' + checkInRegMatch[3];\r\n if (checkOutRegMatch[3].length < 2) checkOutRegMatch[3] = '0' + checkOutRegMatch[3];\r\n\r\n var checkInDateStr = checkInRegMatch[1] + '-' + checkInRegMatch[2] + '-' + checkInRegMatch[3];\r\n var checkOutDateStr = checkOutRegMatch[1] + '-' + checkOutRegMatch[2] + '-' + checkOutRegMatch[3];\r\n\r\n if ($header.find('.nav-tab').filter('.reservation').data('dataLastCheckIn') !== checkInDateStr || $header.find('.nav-tab').filter('.reservation').data('dataLastCheckOut') !== checkOutDateStr) {\r\n\r\n $header.find('.nav-tab').filter('.reservation').data('dataLastCheckIn', checkInDateStr);\r\n $header.find('.nav-tab').filter('.reservation').data('dataLastCheckOut', checkOutDateStr);\r\n\r\n $header\r\n .find('.nav-tab')\r\n .filter('.reservation')\r\n .data('dataLoaded', true);\r\n\r\n clearTimeout($header.find('.nav-tab').filter('.reservation').data('dataTimeout'));\r\n\r\n $header\r\n .find('.nav-tab')\r\n .filter('.reservation')\r\n .data('dataTimeout', setTimeout(function () {\r\n\r\n $header\r\n .find('.pepvalidate-v3')\r\n .filter('.reservations')\r\n .find('.tower')\r\n .find('.rate')\r\n .text('Loading...');\r\n\r\n }, 5000));\r\n\r\n $.ajax({\r\n url: '/library/api/room-rates.php',\r\n type: 'post',\r\n dataType: 'json',\r\n data: {\r\n ACTION: 'GET_TOWER_BAR',\r\n CHECKIN_DATE: checkInDateStr,\r\n CHECKOUT_DATE: checkOutDateStr\r\n },\r\n success: function (response) {\r\n\r\n if (response.STATUS === 'SUCCESS') {\r\n\r\n clearTimeout($header.find('.nav-tab').filter('.reservation').data('dataTimeout'));\r\n\r\n var blacklist = [];\r\n\r\n for (var cls in response.DATA) {\r\n\r\n blacklist.push(cls);\r\n\r\n $header\r\n .find('.pepvalidate-v3')\r\n .filter('.reservations')\r\n .find('.tower')\r\n .filter('.' + cls)\r\n .find('.rate')\r\n .text('Rates from $' + response.DATA[cls] + ' per night!');\r\n\r\n }\r\n\r\n //if not included in response, there isn't any availability\r\n $header\r\n .find('.pepvalidate-v3')\r\n .filter('.reservations')\r\n .find('.tower')\r\n .not('.' + blacklist.join(', .'))\r\n .find('.rate')\r\n .text('Sold Out');\r\n\r\n }\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n $headerSticky\r\n .find('.search')\r\n .on('click', function (event) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (!$(this).hasClass('active')) {\r\n\r\n $(this)\r\n .find('.input')\r\n .onCSSTransitionEnd(function () {\r\n\r\n $headerSticky\r\n .find('.search')\r\n .find('input')\r\n [0].focus({focusVisible: true});\r\n\r\n })\r\n .end()\r\n .addClass('active');\r\n\r\n } else if ($(this).find('input').val() !== '') {\r\n\r\n $(this)\r\n .find('input')\r\n .trigger('send');\r\n\r\n } else {\r\n\r\n $(this)\r\n .removeClass('active');\r\n\r\n }\r\n\r\n })\r\n .find('.input, input')\r\n .on('click', function (event) {\r\n\r\n event.stopPropagation();\r\n\r\n if ($(this).hasClass('input')) {\r\n\r\n $(this)\r\n .find('input')\r\n [0].focus({focusVisible: true});\r\n\r\n }\r\n\r\n })\r\n .filter('input')\r\n .on('send', function () {\r\n\r\n if ($.trim($(this).val()) !== '') window.location.href = '/search/?s=' + encodeURIComponent($.trim($(this).val()));\r\n //if ($.trim($(this).val()) !== '')\twindow.location.href\t=\t$header.find('.search')[0].href + '?s=' + encodeURIComponent($.trim($(this).val())) + '&CSRF_TOKEN=' + encodeURIComponent($(this).closest('.search').find('[name=CSRF_TOKEN]').val()) + '&' + $(this).closest('.search').find('[name=CSRF_TOKEN]').next('input').attr('name') + '=' + encodeURIComponent($(this).closest('.search').find('[name=CSRF_TOKEN]').next('input').val());\r\n\r\n })\r\n .on('keydown', function (event) {\r\n\r\n if (event.which === 13) $(this).trigger('send');\r\n\r\n });\r\n\r\n $header\r\n .find('.pepvalidate-v3')\r\n .on('click', function (event) {\r\n\r\n event.stopPropagation();\r\n\r\n });\r\n\r\n $header\r\n .find('.nav-tab')\r\n .data({\r\n timer: null,\r\n clickOK: true,\r\n clickTimeout: 500,\r\n dataLoaded: false,\r\n dataTimeout: null,\r\n dataLastCheckIn: '',\r\n dataLastCheckOut: ''\r\n })\r\n .on('click', function (event) {\r\n\r\n event.stopPropagation();\r\n\r\n })\r\n .filter('.reservation')\r\n .on('click', function (event, onlyOpen) {\r\n\r\n event.preventDefault();\r\n\r\n if (typeof onlyOpen !== 'boolean') var onlyOpen = false;\r\n\r\n if (onlyOpen && $header.find('.pepvalidate-v3').filter('.reservations').hasClass('active')) return;\r\n\r\n var $btn = $(this);\r\n\r\n if (!$btn.data('clickOK')) return;\r\n\r\n $header\r\n .find('.pepvalidate-v3')\r\n .filter('.reservations')\r\n .toggleClass('active')\r\n .end()\r\n .filter('.passport')\r\n .removeClass('active');\r\n\r\n if ($header.find('.pepvalidate-v3').filter('.reservations').hasClass('active')) {\r\n\r\n //track button click\r\n pepTracking.event('Reservations Header', 'Open', window.location.pathname, 0, false);\r\n\r\n //pause a video if it's playing in mobile ui\r\n pauseCurrentVideo();\r\n\r\n } else {\r\n\r\n //track button click\r\n pepTracking.event('Reservations Header', 'Close', window.location.pathname, 0, false);\r\n\r\n //play a video if it's paused\r\n playCurrentVideo();\r\n\r\n }\r\n\r\n $btn\r\n .data({\r\n clickOK: false,\r\n timer: setTimeout(function () {\r\n\r\n $btn\r\n .data('clickOK', true);\r\n\r\n }, $btn.data('clickTimeout'))\r\n });\r\n\r\n\r\n //load tower rate data\r\n if ($btn.data('dataLoaded') !== true) {\r\n\r\n updateHeaderReservationWidgetBAR();\r\n\r\n }\r\n\r\n })\r\n .end()\r\n .filter('.passport-club')\r\n .on('click', function (event, onlyOpen) {\r\n\r\n var $btn = $(this);\r\n\r\n if (!$btn.data('clickOK')) {\r\n\r\n event.preventDefault();\r\n\r\n return;\r\n\r\n }\r\n\r\n //check for logout\r\n if ($btn.find('.text').text().indexOf('SEE') > -1) {\r\n\r\n return;\r\n\r\n } else if ($btn.hasClass('logout')) {\r\n\r\n event.preventDefault();\r\n\r\n var newURL = window.location.pathname + window.location.search;\r\n\r\n if (newURL.indexOf('?') > -1) newURL += '&logout=true';\r\n else newURL += '?logout=true';\r\n\r\n window.location.href = newURL;\r\n\r\n return false;\r\n\r\n }\r\n\r\n event.preventDefault();\r\n\r\n if (typeof onlyOpen !== 'boolean') var onlyOpen = false;\r\n\r\n if (onlyOpen && $header.find('.pepvalidate-v3').filter('.passport').hasClass('active')) return;\r\n\r\n $header\r\n .find('.pepvalidate-v3')\r\n .filter('.passport')\r\n .toggleClass('active')\r\n .end()\r\n .filter('.reservations')\r\n .removeClass('active');\r\n\r\n if ($header.find('.pepvalidate-v3').filter('.passport').hasClass('active')) {\r\n\r\n //track button click\r\n pepTracking.event('Players Club Header', 'Open', window.location.pathname, 0, false);\r\n\r\n //pause a video if it's playing in mobile ui\r\n pauseCurrentVideo();\r\n\r\n } else {\r\n\r\n //track button click\r\n pepTracking.event('Players Club Header', 'Close', window.location.pathname, 0, false);\r\n\r\n //play a video if it's paused\r\n playCurrentVideo();\r\n\r\n }\r\n\r\n //if ($header.find('.pepvalidate-v3').filter('.passport').hasClass('active'))\tsetTimeout(function () {$header.find('.pepvalidate-v3').filter('.passport').find('[name=username]')[0].focus({focusVisible: true}).select()}, 250);\r\n\r\n $btn\r\n .data({\r\n clickOK: false,\r\n timer: setTimeout(function () {\r\n\r\n $btn\r\n .data('clickOK', true);\r\n\r\n }, $btn.data('clickTimeout'))\r\n });\r\n\r\n });\r\n\r\n $(function () {\r\n\r\n //Check if the user can connect to SUGAR\r\n window.sslNotify = {\r\n cookie: '',\r\n data: {},\r\n show: false,\r\n func: function () {\r\n\r\n $.ajax({\r\n url: 'https://reserve1.peppermillcas.com:4323/misc/check-secure-connection.js',\r\n dataType: 'jsonp',\r\n jsonpCallback: 'cscCallback',\r\n timeout: 15000,\r\n success: function () {\r\n\r\n //only check once an hour if a connection was successfully made\r\n sslNotify.show = false;\r\n\r\n if (cookieData) document.cookie = 'ssl-notify={\"ok\":\"yes\",\"time\":' + new Date().getTime() + '}; path=' + cookieData.b + cookieData.s + '; ' + cookieData.h;\r\n\r\n },\r\n error: function (a, b, c) {\r\n\r\n sslNotify.show = true;\r\n\r\n if (cookieData) document.cookie = 'ssl-notify={\"ok\":\"no\",\"time\":' + new Date().getTime() + '}; path=' + cookieData.b + cookieData.s + '; ' + cookieData.h;\r\n\r\n }\r\n });\r\n\r\n }\r\n };\r\n sslNotify.cookie = document.cookie.replace(/(?:(?:^|.*;\\s*)ssl-notify\\s*\\=\\s*([^;]*).*$)|^.*$/, \"$1\") || '{\"ok\":\"no\",\"time\":0}';\r\n sslNotify.data = $.parseJSON(sslNotify.cookie);\r\n\r\n //backwards compatability\r\n if (typeof sslNotify.data === 'number') {\r\n\r\n sslNotify.data = {\r\n ok: 'no',\r\n time: sslNotify.data\r\n };\r\n\r\n }\r\n\r\n if (sslNotify.data.time === 0) {\r\n\r\n //object was just initialized, no check has occured\r\n sslNotify.func();\r\n\r\n } else if (sslNotify.data.ok === 'yes' && sslNotify.data.time < (new Date().getTime() - 3600000)) {\r\n\r\n //object was created from cookie but the last check was over an hour ago\r\n sslNotify.func();\r\n\r\n } else if (sslNotify.data.ok === 'no') {\r\n\r\n sslNotify.show = true;\r\n\r\n if (sslNotify.data.time < (new Date().getTime() - 100000)) {\r\n\r\n //object was created from cookie and the last check failed but it was checked over five minutes ago\r\n sslNotify.func();\r\n\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n //do all window.resize code\r\n var resizeTimer = null,\r\n iresizetimer = null,\r\n loadFired = false;\r\n\r\n var headerHeight = ($header.length) ? $header.height() : 0;\r\n var containerHeight = ($container.length) ? $container.height() : $('body').height();\r\n var containerOffset = ($container.length) ? $container.offset().top : 0;\r\n var footerHeight = ($container.length) ? $footer.height() : 0;\r\n\r\n $(window).on(\"resize.all load.all orientationchange.all\", function (event, delay) {\r\n if (typeof delay !== 'integer') {\r\n if (event.type.toLowerCase() === 'load') {\r\n var delay = 0;\r\n loadFired = true;\r\n } else {\r\n var delay = 100;\r\n }\r\n }\r\n\r\n function theFunc() {\r\n\r\n //GLOBAL\r\n //update saved viewport dimensions\r\n dims.window.w = $(window).width();\r\n dims.window.h = $(window).height();\r\n\r\n headerHeight = ($header.length) ? $header.height() : 0;\r\n containerHeight = ($container.length) ? $container.height() : $('body').height();\r\n containerOffset = ($container.length) ? $container.offset().top : 0;\r\n footerHeight = ($container.length) ? $footer.height() : 0;\r\n\r\n responsive.update();\r\n\r\n }\r\n\r\n clearTimeout(resizeTimer);\r\n if (delay === 0) {\r\n theFunc();\r\n } else {\r\n resizeTimer = setTimeout(theFunc, delay);\r\n }\r\n }).trigger(\"resize.all\", 0);\r\n\r\n\r\n //Text Size Code\r\n $(\"#container\").on(\"click\", \".text-size-btn\", function (event) {\r\n\r\n event.preventDefault();\r\n\r\n //var now\t\t\t=\tnew Date(),\r\n //\texpire\t\t=\tnew Date(now.getTime() + (parseInt(cookieData.timeout, 10) * 10000));\r\n\r\n if (!$(\"html\").hasClass(\"text-increase\")) {\r\n //go big\r\n $(\"html\").addClass(\"text-increase\");\r\n\r\n if (cookieData) document.cookie = 'text-size=text-increase; path=' + cookieData.b + cookieData.s + '; ' + cookieData.h;\r\n\r\n pepTracking.event('Text Size', 'Increase', window.location.pathname, 0, false);\r\n } else {\r\n //go normal\r\n $(\"html\").removeClass(\"text-increase\");\r\n\r\n if (cookieData) document.cookie = 'text-size=; path=' + cookieData.b + cookieData.s + '; ' + cookieData.h;\r\n\r\n pepTracking.event('Text Size', 'Normal', window.location.pathname, 0, false);\r\n }\r\n\r\n //force redraw\r\n $(window).trigger(\"resize\");\r\n\r\n });\r\n\r\n\r\n //setup GA tracking code\r\n window.pepTracking = {\r\n page: function (customPage) {\r\n if (typeof gtag === 'undefined') return;\r\n\r\n if (typeof customPage === 'string' && customPage !== '') {\r\n gtag('event', 'page_view', {\r\n page: customPage\r\n });\r\n }\r\n },\r\n event: function (category, action, extra, value, ni) {\r\n\r\n if (typeof gtag === 'undefined') return;\r\n\r\n if (typeof category !== 'string') category = 'N/A';\r\n\r\n if (typeof action !== 'string') action = 'N/A';\r\n\r\n if (typeof extra !== 'string') extra = 'N/A';\r\n\r\n if (typeof value !== 'number') value = 0;\r\n\r\n if (typeof ni !== 'boolean') ni = false;\r\n\r\n gtag('event', action, {\r\n hitType: 'event',\r\n event_category: category,\r\n event_action: action,\r\n event_label: extra,\r\n nonInteraction: ni,\r\n transport: 'beacon',\r\n value: value\r\n });\r\n\r\n },\r\n getGALinkerParam: function () {\r\n //get GA (UA) tracker param//get GA tracker param\r\n var output = '',\r\n anchorEle = $('')[0];\r\n\r\n if (typeof anchorEle === 'object' && typeof ga !== 'undefined') {\r\n\r\n ga('linker:decorate', anchorEle);\r\n\r\n if (typeof anchorEle.search === 'string') {\r\n\r\n if (anchorEle.search.replace('?', '').substr(0, 4) === '_ga=') {\r\n\r\n output = anchorEle.search.replace('?', '').substr(4);\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n return output;\r\n },\r\n getGA4LinkerParam: function () {\r\n //get GA4 tracker param\r\n\r\n const formNode = document.createElement('FORM');\r\n formNode.action = (window.pepConsole.isDev) ? 'https://devbooking.peppermillreno.com/' : 'https://booking.peppermillreno.com/';\r\n formNode.style.opacity = '0';\r\n formNode.addEventListener('submit', (event) => {\r\n event.preventDefault();\r\n });\r\n\r\n const buttonNode = document.createElement('BUTTON');\r\n buttonNode.type = 'submit';\r\n formNode.append(buttonNode);\r\n\r\n document.body.append(formNode);\r\n\r\n buttonNode.click();\r\n\r\n const _glNode = formNode.querySelector('input[name=\"_gl\"]');\r\n\r\n let output = '';\r\n if (_glNode) {\r\n output = _glNode.value;\r\n }\r\n\r\n formNode.remove();\r\n\r\n return output;\r\n }\r\n };\r\n\r\n /*$(\"#container\").on(\"click\", '.track-click', function () {\r\n\t\tpepTracking.page($(this).attr('href'));\r\n\t});*/\r\n\r\n //find links that go to the /choose-a-room/ or /offers/ pages and add GA linker data to them\r\n $.each($('.body-container').find('a'), function () {\r\n\r\n if (this.href.substr(0, 37) === 'https://www.peppermillreno.com/offers' || this.href.substr(0, 44) === 'https://www.peppermillreno.com/choose-a-room') {\r\n\r\n if (typeof ga !== 'undefined') ga('linker:decorate', this);\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n //SETUP NOTIFICATIONS\r\n const $notifications = $('#notifications');\r\n window.pepNotify = {\r\n ele: $notifications,\r\n viewport: $notifications.children('.viewport'),\r\n show: function (duration, msg, type, actionText, actionLink, callback, forceClose) {\r\n if (typeof forceClose !== 'boolean') {\r\n forceClose = false;\r\n }\r\n\r\n //make sure this notification doesn't already exist\r\n const $match = pepNotify.viewport.children('.notification').filter(function () {\r\n\r\n const data = $(this).data();\r\n\r\n return (data.duration === duration && data.msg === msg && data.type === type && data.actionText === actionText && data.actionLink === actionLink);\r\n\r\n });\r\n\r\n if ($match.length) {\r\n\r\n if ($match.find('.count').length === 0) {\r\n\r\n $match.append('2');\r\n\r\n setTimeout(function () {\r\n\r\n $match\r\n .find('.count')\r\n .onCSSAnimationEnd(function () {\r\n $(this).removeClass('bounce');\r\n })\r\n .addClass('show bounce');\r\n\r\n }, 50);\r\n } else {\r\n $match\r\n .find('.count')\r\n .text(parseInt($match.find('.count').text(), 10) + 1)\r\n .onCSSAnimationEnd(function () {\r\n\r\n $(this).removeClass('bounce');\r\n\r\n }).addClass('bounce');\r\n\r\n }\r\n\r\n pepNotify.reset($match);\r\n\r\n return;\r\n }\r\n\r\n const $ele = $(pepNotify.buildHTML(msg, type, actionText, actionLink, callback))\r\n .data({\r\n duration: duration,\r\n msg: msg,\r\n type: type,\r\n actionText: actionText,\r\n actionLink: actionLink,\r\n callback: callback,\r\n forceClose: forceClose\r\n });\r\n\r\n $ele\r\n .on('mouseenter', function () {\r\n\r\n if ($ele.hasClass('closing')) return;\r\n\r\n if (!$ele.data('forceClose')) clearTimeout($ele.data('timer'));\r\n\r\n $ele.addClass('hover');\r\n\r\n })\r\n .on('mouseleave', function () {\r\n\r\n pepNotify.activate($ele);\r\n\r\n $ele.removeClass('hover');\r\n\r\n })\r\n .find('.action')\r\n .on('click', function (event) {\r\n\r\n if ($(this).hasClass('close') || $(this).attr('href') === '#') event.preventDefault();\r\n\r\n $ele.removeClass('hover').addClass('closing');\r\n\r\n pepNotify.close($ele, true);\r\n\r\n });\r\n\r\n pepNotify.viewport.append($ele);\r\n\r\n if (pepNotify.viewport.children('.notification').filter('.active').length === 0) {\r\n\r\n setTimeout(function () {\r\n\r\n pepNotify.activate($ele);\r\n\r\n }, 50);\r\n\r\n }\r\n\r\n },\r\n close: function ($ele, closeFromClick) {\r\n\r\n if (typeof closeFromClick !== 'boolean') {\r\n closeFromClick = false;\r\n }\r\n\r\n pepNotify.ele.onCSSTransitionEnd(function () {\r\n\r\n if (!$ele.data('forceClose') && $ele.hasClass('hover') && !$ele.hasClass('closing')) return;\r\n\r\n if (typeof $ele.data('callback') === 'function' && (closeFromClick || $ele.data('forceClose'))) {\r\n $ele.data('callback')();\r\n }\r\n\r\n $ele.remove();\r\n\r\n pepNotify.rotate();\r\n\r\n }).removeClass('show');\r\n\r\n $('html').removeClass('show-notify');\r\n\r\n },\r\n reset: function ($ele) {\r\n\r\n clearTimeout($ele.data('timer'));\r\n\r\n $ele.data('timer', setTimeout(function () {\r\n\r\n pepNotify.close($ele);\r\n\r\n }, $ele.data('duration')));\r\n\r\n },\r\n activate: function ($ele) {\r\n\r\n if ($ele.hasClass('closing')) return;\r\n\r\n pepNotify.ele.addClass('show');\r\n\r\n $('html').addClass('show-notify');\r\n\r\n $ele.addClass('active').data('timer', setTimeout(function () {\r\n\r\n pepNotify.close($ele);\r\n\r\n }, $ele.data('duration')));\r\n\r\n },\r\n rotate: function () {\r\n const $notifications = pepNotify.viewport.children('.notification');\r\n\r\n if ($notifications.length > 0 && $notifications.filter('.active').length === 0) {\r\n pepNotify.activate($notifications.eq(0));\r\n }\r\n },\r\n buildHTML: function (msg, type, actionText, actionLink, actionCallback) {\r\n let html = '
';\r\n\r\n if (typeof type === 'string') {\r\n html += '' + type + ' ';\r\n }\r\n\r\n html += msg + '';\r\n\r\n if (typeof actionText === 'string' && (typeof actionLink === 'string' || typeof actionCallback === 'function')) {\r\n if (typeof actionLink !== 'string') {\r\n actionLink = '#';\r\n }\r\n\r\n html += '' + actionText + '';\r\n } else {\r\n html += 'HIDE';\r\n }\r\n\r\n html += '
';\r\n\r\n return html;\r\n\r\n }\r\n };\r\n\r\n\r\n /*PRELOAD IMAGES*/\r\n $(window).on(\"load\", function () {\r\n\r\n var preloadImages = $('#image-preload').data('images') || [];\r\n\r\n for (var i = 0, l = preloadImages.length; i < l; i++) {\r\n\r\n $(\"\")[0].src = preloadImages[i];\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n //Append GA to URL for /manage-reservation\r\n $(function () {\r\n const target = $(\"a.btn[href^='/manage-reservation']\");\r\n target.click(function () {\r\n const regEx = new RegExp(/[&?]_ga=.+/);\r\n const gaParam = pepTracking.getGALinkerParam();\r\n const ga4Param = pepTracking.getGA4LinkerParam();\r\n const oldHref = $(this).attr(\"href\");\r\n if (!regEx.test(oldHref)) {\r\n const gaQs = (oldHref.indexOf(\"?\") > -1) ? \"&\" : \"?\";\r\n target.attr(\"href\", oldHref + gaQs + '_ga=' + gaParam + '&_gl=' + ga4Param);\r\n }\r\n })\r\n });\r\n\r\n //SETUP HEADER PASSPORT LOGIN CALLBACKS\r\n $(function () {\r\n\r\n if ('pepvalidateRegisterCallback' in window) {\r\n\r\n window.pepvalidateRegisterCallback(\r\n 'PASSPORT-HEADER-LOGIN-SUCCESS',\r\n function (redirect, rememberMe) {\r\n\r\n var rm = (rememberMe)\r\n ? 'Remember Me'\r\n : 'Standard';\r\n\r\n pepTracking.event('Players Club', 'Login Success', rm, 0, true);\r\n\r\n setTimeout(function () {\r\n\r\n window.location.href = redirect;\r\n\r\n }, 50);\r\n\r\n }\r\n );\r\n\r\n window.pepvalidateRegisterCallback(\r\n 'PASSPORT-HEADER-LOGIN-ERROR',\r\n function (msg) {\r\n\r\n pepTracking.event('Players Club', 'Login Failure', msg, 0, true);\r\n\r\n pepNotify.show(10000, msg, 'error');\r\n\r\n $(this)\r\n .removeClass('loading');\r\n\r\n }\r\n );\r\n\r\n window.pepvalidateRegisterCallback(\r\n 'PASSPORT-HEADER-LOGOUT-SUCCESS',\r\n function () {\r\n\r\n pepNotify.show(10000, 'You are now logged out.', 'done');\r\n\r\n }\r\n );\r\n\r\n //also setup a generic callback for showing a pepNotify notification\r\n window.pepvalidateRegisterCallback(\r\n 'GENERIC-FORM-NOTIFICATION',\r\n function (msg, icon, duration) {\r\n\r\n if (typeof icon !== 'string') icon = '';\r\n if (typeof duration === 'undefined') duration = 10000;\r\n\r\n pepNotify.show(duration, msg, icon);\r\n\r\n $(this)\r\n .removeClass('loading');\r\n\r\n }\r\n );\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n //SETUP GENERIC FORMS\r\n $(function () {\r\n\r\n setTimeout(function () {\r\n\r\n if ('pepvalidateInitForm' in window) {\r\n\r\n $.each($container.find('.pepvalidate-v3'), window.pepvalidateInitForm);\r\n $.each($footer.find('.pepvalidate-v3'), window.pepvalidateInitForm);\r\n\r\n }\r\n\r\n }, 50);\r\n\r\n });\r\n\r\n\r\n //Check if Sprites Have Been Loaded\r\n if ('localStorage' in window) {\r\n\r\n $(function () {\r\n\r\n //first load from cookie\r\n var spriteCookie = document.cookie.replace(/(?:(?:^|.*;\\s*)pepsprites\\s*\\=\\s*([^;]*).*$)|^.*$/, \"$1\"),\r\n spritesLoaded = [],\r\n cookieSprites = (spriteCookie === '')\r\n ? []\r\n : (spriteCookie.indexOf(',') > -1)\r\n ? spriteCookie.split(',')\r\n : [spriteCookie];\r\n\r\n function saveLoadedSprites() {\r\n\r\n var $sprites = $('body').children('.system-sprite'),\r\n expiresDate = new Date();\r\n\r\n spritesLoaded = [];\r\n\r\n //expire in 15 minutes\r\n expiresDate.setTime(new Date().getTime() + 900000);\r\n\r\n $.each($sprites, function (i) {\r\n\r\n try {\r\n\r\n var spriteHTML = $('
').append($sprites.eq(i).clone()).html();\r\n\r\n localStorage.setItem('sprite-' + $sprites.eq(i).attr('id'), spriteHTML);\r\n\r\n spritesLoaded.push($sprites.eq(i).attr('id'));\r\n\r\n } catch (e) {\r\n }\r\n\r\n });\r\n\r\n if (cookieData) document.cookie = 'pepsprites=' + spritesLoaded.join(',') + '; expires=' + expiresDate.toGMTString() + '; path=' + cookieData.b + cookieData.s + '; ' + cookieData.h;\r\n\r\n }\r\n\r\n //first add the sprites from localstorage that we have\r\n if (cookieSprites.length) {\r\n\r\n for (var i = 0, l = cookieSprites.length; i < l; i++) {\r\n\r\n try {\r\n\r\n var spriteHTML = localStorage.getItem('sprite-' + cookieSprites[i]);\r\n\r\n if (typeof spriteHTML === 'string' && spriteHTML.substr(0, 5) === ' 0 && $('#' + cookieSprites[i]).length === 0) {\r\n\r\n $('body')\r\n .append(spriteHTML);\r\n\r\n spritesLoaded.push(cookieSprites[i]);\r\n\r\n }\r\n\r\n } catch (e) {\r\n }\r\n\r\n }\r\n\r\n } else {\r\n\r\n //we don't have any sprites saved but let's see if the main sprite exists\r\n //\tif not then let's search localStorage for sprites...\r\n if (0 === $('#main-sprite-svg').length) {\r\n\r\n for (var key in localStorage) {\r\n\r\n if ('sprite-' === key.substr(0, 7)) {\r\n\r\n try {\r\n\r\n var spriteHTML = localStorage.getItem(key);\r\n\r\n if (typeof spriteHTML === 'string' && spriteHTML.substr(0, 5) === ' 0 && $('#' + cookieSprites[i]).length === 0) {\r\n\r\n $('body')\r\n .append(spriteHTML);\r\n\r\n spritesLoaded.push(key);\r\n\r\n }\r\n\r\n } catch (e) {\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n //second, look for what spries exist and save them in localstorage\r\n saveLoadedSprites();\r\n\r\n //check the difference between the cookieSprites array and the spritesLoaded array, to load any necessary sprites over AJAX\r\n for (var i = 0, l = cookieSprites.length; i < l; i++) {\r\n\r\n if (spritesLoaded.indexOf(cookieSprites[i]) === -1) {\r\n\r\n (function (inner_i) {\r\n\r\n //this cookie sprite could not be loaded from localStorage and it was not included in the page output\r\n $.ajax({\r\n url: '/library/html/templates/' + cookieSprites[inner_i] + '.svg',\r\n type: 'get',\r\n dataType: 'html',\r\n success: function (response) {\r\n\r\n if (typeof response === 'string' && response.substr(0, 5) === ' 1) {\r\n setInterval(function () {\r\n const current = $footerAwards.not('.hide').index();\r\n const next = (current + 1 >= $footerAwards.length)\r\n ? 0\r\n : current + 1;\r\n\r\n $footerAwards\r\n .eq(current)\r\n .addClass('hide')\r\n .attr('aria-hidden', 'true')\r\n .children()\r\n .attr('tabindex', '-1')\r\n .end()\r\n .end()\r\n .eq(next)\r\n .removeClass('hide')\r\n .removeAttr('aria-hidden')\r\n .children()\r\n .removeAttr('tabindex');\r\n }, 5000);\r\n }\r\n\r\n\r\n //SETUP TABLE INTERACTIONS\r\n $('.table-pagination')\r\n .find('.material-icons')\r\n .filter('.disabled')\r\n .on('click', function (event) {\r\n\r\n event.preventDefault();\r\n\r\n })\r\n .end()\r\n .end()\r\n .find('select[name=ROWS_PER_PAGE]')\r\n .on('change', function () {\r\n\r\n if ($(this).val() === '') return;\r\n\r\n var linkData = $(this).closest('.table-pagination').data();\r\n\r\n window.location = window.location.pathname + '?SORT_COL=' + linkData.sortCol + '&SORT_DIR=' + linkData.sortDir + '&ROWS_PER_PAGE=' + $(this).val() + '&ROW_OFFSET=' + linkData.rowOffset + '&' + linkData.searchKey + '=' + linkData.searchVal;\r\n\r\n });\r\n\r\n\r\n //listen for related events embed messages\r\n var $relatedEventsFrame = $('.related-events-frame');\r\n var acceptedDomains = ['https://www.peppermillreno.com', 'https://dev.peppermillreno.com'];\r\n var currentDomain = location.protocol + '//' + location.host;\r\n var domainToAccept = '';\r\n\r\n for (var i = 0, l = acceptedDomains.length; i < l; i++) {\r\n\r\n if (currentDomain === acceptedDomains[i]) {\r\n\r\n domainToAccept = acceptedDomains[i];\r\n\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n if ($relatedEventsFrame.length) {\r\n\r\n if (Modernizr.postmessage && domainToAccept.length) {\r\n\r\n window\r\n .addEventListener('message', function (event) {\r\n\r\n if (typeof event.originalEvent !== 'undefined') {\r\n\r\n // For Chrome, the origin property is in the event.originalEvent object.\r\n var origin = event.originalEvent.origin,\r\n data = event.originalEvent.data,\r\n source = event.originalEvent.source,\r\n trusted = event.originalEvent.trusted;\r\n\r\n } else {\r\n\r\n var origin = event.origin,\r\n data = event.data,\r\n source = event.source,\r\n trusted = event.trusted;\r\n\r\n }\r\n\r\n //is trusted removed since this is scripted, not initiated by user interaction\r\n if (origin.substr(0, domainToAccept.length) === domainToAccept /*&& trusted*/) {\r\n\r\n //try {\r\n\r\n var dataObj = JSON.parse(data);\r\n\r\n $relatedEventsFrame\r\n .css({\r\n height: parseInt(dataObj.pageheight, 10),\r\n overflow: 'hidden'\r\n });\r\n\r\n //} catch (e) {}\r\n\r\n }\r\n\r\n }, false);\r\n\r\n //let each frame know that we're ready to receive data\r\n $.each($relatedEventsFrame, function () {\r\n\r\n parent\r\n .postMessage(\r\n JSON.stringify({\r\n ready: true\r\n }),\r\n domainToAccept\r\n );\r\n\r\n });\r\n\r\n } else {\r\n\r\n //postmessage fallback\r\n $relatedEventsFrame\r\n .css({\r\n height: 1000\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n //.btn-disabled CODE\r\n $(document)\r\n .on('click', '.btn-disabled', function (event) {\r\n\r\n event.preventDefault();\r\n\r\n });\r\n\r\n})(jQuery);","/*!\r\n * Copyright (C) 2023-2024, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n * @version 1.0.0\r\n * @author Jasper Howard \r\n * @changelog\r\n *\t\t2023-11-22 (1.0.0)\r\n *\t\t\t- Copied pepDateFunctions from main.js for easier cross-site maintenance.\r\n *\r\n *\t\t2024-06-10 (1.1.0) (jhoward)\r\n *\t\t\t- Add formatShortDisplayDate to pepDateFunctions.\r\n */\r\n\r\nwindow.pepDateFunctions\t=\t{\r\n treatAsUTC\t\t:\tfunction (date) {\r\n let result = new Date(date);\r\n\r\n result.setMinutes(result.getMinutes() - result.getTimezoneOffset());\r\n\r\n return result;\r\n },\r\n daysBetween\t\t:\tfunction (startDate, endDate) {\r\n let millisecondsPerDay = 24 * 60 * 60 * 1000;\r\n\r\n return (pepDateFunctions.treatAsUTC(endDate) - pepDateFunctions.treatAsUTC(startDate)) / millisecondsPerDay;\r\n },\r\n addMinutes\t\t:\tfunction (date, minutes) {\r\n let result = new Date(date);\r\n\r\n result.setMinutes(result.getMinutes() + minutes);\r\n\r\n return result;\r\n\r\n },\r\n addDays\t\t\t:\tfunction (date, days) {\r\n let result = new Date(date);\r\n\r\n result.setDate(result.getDate() + days);\r\n\r\n return result;\r\n },\r\n addMonths\t\t:\tfunction (date, months) {\r\n let result = new Date(date);\r\n\r\n result.setMonth(result.getMonth() + months);\r\n\r\n return result;\r\n },\r\n monthsBetween\t:\tfunction (d1, d2) {\r\n let months\t=\t(d2.getFullYear() - d1.getFullYear()) * 12;\r\n\r\n months\t-=\td1.getMonth();\r\n months\t+=\td2.getMonth();\r\n\r\n return (months <= 0)\r\n ?\t0\r\n :\tmonths;\r\n },\r\n formatYYYYMMDDToDateObject: function (dateYYYYMMDD) {\r\n let matches = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(dateYYYYMMDD);\r\n if (matches) {\r\n let date = new Date();\r\n date.setFullYear(parseInt(matches[1]));\r\n date.setMonth(parseInt(matches[2], 10) - 1);\r\n date.setDate(parseInt(matches[3]));\r\n\r\n return date;\r\n }\r\n\r\n return null;\r\n },\r\n formatDateObjectYYYYMMDD\t:\tfunction (dateObject) {\r\n let regMatch;\r\n\r\n // check for valid date\r\n if (typeof dateObject === 'object' && typeof dateObject.getMonth === 'function') {\r\n regMatch\t=\t/(20[0-9]{2})\\-([0-9]{1,2})\\-([0-9]{1,2})/.exec(dateObject.getFullYear() + '-' + (dateObject.getMonth() + 1) + '-' + dateObject.getDate());\r\n\r\n if (!!regMatch) {\r\n // verify correct format for months\r\n if (regMatch[2].length < 2)\tregMatch[2]\t=\t'0'\t+\tregMatch[2];\r\n\r\n // verify correct format for days\r\n if (regMatch[3].length < 2)\tregMatch[3]\t=\t'0'\t+\tregMatch[3];\r\n\r\n return regMatch[1] + '-' + regMatch[2] + '-' + regMatch[3];\r\n }\r\n }\r\n\r\n return '';\r\n },\r\n dateSuffix: function (dayOfMonth) {\r\n dayOfMonth = parseInt(dayOfMonth, 10);\r\n return (-1 !== [1, 21, 31].indexOf(dayOfMonth))\r\n ? 'st'\r\n : (-1 !== [2, 22].indexOf(dayOfMonth))\r\n ?\t'nd'\r\n : (-1 !== [3, 23].indexOf(dayOfMonth))\r\n ? 'rd'\r\n : 'th';\r\n },\r\n formatShortDisplayDate: function (date, includeHtml) {\r\n if ('boolean' !== typeof includeHtml) includeHtml = true;\r\n if ('string' === typeof date) {\r\n const tmp = date.split('-');\r\n date = new Date(parseInt(tmp[0] || 0, 10), (1 * tmp[1] - 1), parseInt(tmp[2] || 0, 10));\r\n }\r\n const htmlSupStart = (includeHtml) ? '' : '';\r\n const htmlSupEnd = (includeHtml) ? '' : '';\r\n let output = pepDateFunctions.language.en.monthsShort[date.getMonth()] + ' ' + date.getDate() + htmlSupStart + pepDateFunctions.dateSuffix(date.getDate()) + htmlSupEnd;\r\n if (new Date().getFullYear() !== date.getFullYear()) {\r\n output += ' \\'' + date.getFullYear().toString().substr(-2);\r\n }\r\n return output;\r\n },\r\n formatDateTimeReadable: function (date) {\r\n return pepDateFunctions.language.en.daysShort[date.getDay()] + ', ' + pepDateFunctions.language.en.monthsShort[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear() + ' at ' + date.toLocaleTimeString().replace(/:00 (AM|PM)$/i, '$1');\r\n },\r\n language\t:\t{\r\n en\t:\t{\r\n days\t\t:\t['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n daysShort\t:\t['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n daysMin\t\t:\t['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\r\n months\t\t:\t['January','February','March','April','May','June', 'July','August','September','October','November','December'],\r\n monthsShort\t:\t['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n today\t\t:\t'Today',\r\n clear\t\t:\t'Clear',\r\n dateFormat\t:\t'mm/dd/yyyy',\r\n timeFormat\t:\t'hh:ii aa',\r\n firstDay\t:\t0\r\n }\r\n }\r\n};","/*!\r\n * Copyright (C) 2023, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n * @version 1.0.0\r\n * @author Jasper Howard \r\n * @changelog\r\n *\t\t2023-11-22 (1.0.0)\r\n *\t\t\t- Copied pepHelperFunctions from main.js for easier cross-site maintenance.\r\n */\r\n\r\nwindow.pepHelperFunctions\t=\t{};\r\n\r\nwindow.pepHelperFunctions.getParameterByName\t=\tfunction (name) {\r\n name = name.replace(/[\\[]/, \"\\\\\\[\").replace(/[\\]]/, \"\\\\\\]\");\r\n var regexS = \"[\\\\?&]\" + name + \"(\\\\[\\\\])?=([^&#]*)\";\r\n var regex = new RegExp(regexS, 'g');\r\n var matches = location.search.match(regex);\r\n if(matches == null) {\r\n return \"\";\r\n } else if (matches.length === 1) {\r\n return decodeURIComponent(matches[0].split('=')[1].replace(/(\\+|%20)/g, \" \"));\r\n } else {\r\n var output = [];\r\n for (var i = 0, l = matches.length; i < l; i++) {\r\n output.push(decodeURIComponent(matches[i].split('=')[1].replace(/(\\+|%20)/g, \" \")));\r\n }\r\n return output;\r\n }\r\n\r\n\r\n /*var results = regex.exec(window.location.search);\r\n if(results == null) {\r\n return \"\";\r\n } else {\r\n return decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n }*/\r\n};\r\n\r\nwindow.pepHelperFunctions.getCookie = function (name) {\r\n let regex = new RegExp(\"(?:(?:^|.*;\\\\s*)\" + name + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\");\r\n return document.cookie.replace(regex, \"$1\");\r\n}\r\n\r\n/**\r\n * @param {string} name\r\n * @param {string} value\r\n * @param {string|Date|null} expires\r\n * @param {string|null} path\r\n * @param {string|null} domain\r\n */\r\nwindow.pepHelperFunctions.setCookie = function (name, value, expires, path, domain) {\r\n if ('string' === typeof expires) {\r\n if ('' === expires) {\r\n expires = null;\r\n } else {\r\n expires = new Date(expires);\r\n }\r\n }\r\n document.cookie = name + '=' + value +\r\n ((path) ? ';path=' + path : '') +\r\n ((domain) ? ';domain=' + domain : '') +\r\n ((expires) ? ';expires=' + expires.toGMTString() : '') +\r\n ';secure';\r\n}\r\n\r\n//SOURCE: https://stackoverflow.com/questions/2144386/how-to-delete-a-cookie\r\nwindow.pepHelperFunctions.deleteCookie = function (name, path, domain) {\r\n if (pepHelperFunctions.getCookie(name)) {\r\n document.cookie = name + \"=\" +\r\n ((path) ? \";path=\"+path:\"\")+\r\n ((domain)?\";domain=\"+domain:\"\") +\r\n \";expires=Thu, 01 Jan 1970 00:00:01 GMT\";\r\n }\r\n}\r\n\r\n/**\r\n *\tReturns a representation of a (float) number from a supplied dollar amount.\r\n *\r\n *\t@param\tstring\t\t\tstring\tThe formatted dollar amount.\r\n *\t@param\treturnAsFloat\tboolean\tIf TRUE, a (float) will be returned, if FALSE or undefined a (string) will be returned.\r\n *\r\n *\t@return\t\t\t\t\tmixed\tDepends on the returnAsFloat parameter.\r\n */\r\nwindow.pepHelperFunctions.parseDollarAmount\t=\tfunction (string, returnAsFloat) {\r\n\r\n if (typeof string !== 'string' && typeof string.toString !== 'undefined')\tstring\t=\tstring.toString();\r\n\r\n if (returnAsFloat)\treturn parseFloat(string.replace(/[^0-9\\.]+/g, ''));\r\n else\t\t\t\treturn string.replace(/[^0-9\\.]+/g, '');\r\n\r\n}\r\n\r\n/**\r\n *\tReturns a dollar amount without the dollar sign. If everything to the right of the radix point is zero, it is omitted.\r\n *\r\n *\t@param\tamount\t\tmixed\tThis value is parsed as a float.\r\n *\t@param\ttruncate\tboolean\tIf TRUE, turn 4.00 into 4.\r\n *\r\n *\t@return\t\t\t\tmixed\t(float) on success, original value on error.\r\n */\r\nwindow.pepHelperFunctions.formatAsDollarAmount\t=\tfunction (amount, truncate) {\r\n\r\n if ('boolean' !== typeof truncate) var truncate = true;\r\n\r\n var tmp\t=\t[];\r\n\r\n try {\r\n\r\n if (typeof amount === 'string')\tamount\t=\tamount.replace(/[\\$,]/g, '');\r\n\r\n var formattedAmount\t=\tparseFloat(amount);\r\n\r\n if (true === truncate && formattedAmount.toFixed(2) == parseInt(formattedAmount, 10)) {\r\n\r\n formattedAmount\t=\tparseInt(formattedAmount, 10);\r\n\r\n } else {\r\n\r\n formattedAmount\t=\tformattedAmount.toFixed(2);\r\n\r\n }\r\n\r\n formattedAmount\t=\t'' + formattedAmount;\r\n\r\n if (formattedAmount.indexOf('.') > -1) {\r\n\r\n tmp\t\t=\tformattedAmount.split('.');\r\n\r\n } else {\r\n\r\n tmp[0]\t=\tformattedAmount;\r\n\r\n }\r\n\r\n tmp[0]\t=\ttmp[0].replace(/([0-9])(?=([0-9]{3})+)/g, '$1,');\r\n\r\n formattedAmount\t=\ttmp.join('.');\r\n\r\n return formattedAmount;\r\n\r\n } catch (e) {\r\n\r\n return amount;\r\n\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @param {string} storageKey\r\n * @param {{checkin: *, code: *, iata: (*|default.methods.$refs.iataInput.value), exp, checkout: *}} data\r\n * @param {boolean} forceCookie\r\n */\r\nwindow.pepHelperFunctions.setCachedData\t=\tfunction (storageKey, data, forceCookie) {\r\n\r\n if (typeof storageKey !== 'string') return false;\r\n if (typeof data == 'undefined') return false;\r\n\r\n if (typeof forceCookie !== 'boolean') {\r\n forceCookie = false;\r\n }\r\n\r\n if ('JSON' in window) {\r\n if ('localStorage' in window && false === forceCookie) {\r\n return localStorage.setItem(storageKey, JSON.stringify({\r\n TIMESTAMP\t:\tnew Date().getTime(),\r\n DATA\t\t:\tdata\r\n }));\r\n } else {\r\n var cookieData\t=\t$('html').data('cookie');\r\n if (cookieData) {\r\n pepHelperFunctions.setCookie(\r\n storageKey,\r\n JSON.stringify({ TIMESTAMP : new Date().getTime(), DATA : data }),\r\n '',\r\n cookieData.b\r\n );\r\n //document.cookie = storageKey + '=' + JSON.stringify({ TIMESTAMP : new Date().getTime(), DATA : data }) + '; path=' + cookieData.b + '; ' + cookieData.s + '; ' + cookieData.h;\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * @param {string} storageKey\r\n * @param {number} storageTTL in microseconds\r\n * @param {boolean=} forceCookie\r\n */\r\nwindow.pepHelperFunctions.getCachedData\t=\tfunction (storageKey, storageTTL, forceCookie) {\r\n\r\n if (typeof storageKey !== 'string')\treturn false;\r\n if (typeof storageTTL !== 'number')\tvar storageTTL\t=\t3600000;\t//default to 1 hour\r\n\r\n if (typeof forceCookie !== 'boolean') {\r\n var forceCookie = false;\r\n }\r\n\r\n let dataSTR\t=\t'';\r\n let dataOBJ\t=\t{};\r\n\r\n try {\r\n if ('JSON' in window) {\r\n if ('localStorage' in window && false === forceCookie) {\r\n dataSTR\t=\tlocalStorage.getItem(storageKey);\r\n if (dataSTR) {\r\n dataOBJ\t=\tJSON.parse(dataSTR);\r\n if (dataOBJ.TIMESTAMP + storageTTL > new Date().getTime()) {\r\n return dataOBJ;\r\n } else {\r\n localStorage.removeItem(storageKey);\r\n }\r\n }\r\n } else {\r\n //look for cookie\r\n dataSTR = pepHelperFunctions.getCookie(storageKey);\r\n if (dataSTR.length) {\r\n dataOBJ\t=\tJSON.parse(dataSTR);\r\n if (dataOBJ.TIMESTAMP + storageTTL > new Date().getTime()) {\r\n return dataOBJ;\r\n } else {\r\n let cookieData\t=\t$('html').data('cookie');\r\n if (cookieData) {\r\n pepHelperFunctions.deleteCookie(storageKey, cookieData.b);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * @param {string} storageKey\r\n * @param {boolean} forceCookie\r\n */\r\nwindow.pepHelperFunctions.removeCachedData\t=\tfunction (storageKey, forceCookie) {\r\n\r\n if (typeof storageKey !== 'string')\treturn false;\r\n\r\n if (typeof forceCookie !== 'boolean') {\r\n var forceCookie = false;\r\n }\r\n\r\n try {\r\n if ('localStorage' in window && false === forceCookie) {\r\n return localStorage.removeItem(storageKey);\r\n } else {\r\n var cookieData\t=\t$('html').data('cookie');\r\n if (cookieData) {\r\n pepHelperFunctions.deleteCookie(storageKey, cookieData.b);\r\n return true;\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n return false;\r\n}","/*\r\nBy Osvaldas Valutis, www.osvaldas.info\r\nAvailable for use under the MIT License\r\n*/\r\n\r\nif (!('onCSSTransitionEnd' in $.fn)) {\r\n\t\r\n\t(function($, window, document, undefined) {\r\n\t\t\r\n\t\tif (typeof $.fn.onCSSTransitionEnd === 'function')\treturn;\r\n\t\t\r\n\t\tvar s\t\t\t\t\t=\tdocument.body || document.documentElement, s = s.style, prefixAnimation = '', prefixTransition = '', eventAnimation = 'animationend', eventTransition = 'transitionend',\r\n\t\t\ttransEndEventNames\t=\t{\r\n\t\t\t\t'WebkitTransition' : 'webkitTransitionEnd',\r\n\t\t\t\t'MozTransition' : 'transitionend',\r\n\t\t\t\t'transition' : 'transitionend' \r\n\t\t\t},\r\n\t\t\ttransEndEventName\t=\ttransEndEventNames[ 'transition' ],\r\n\t\t\ttransCSS\t\t\t=\t'transition';\r\n\t\t\r\n\t\t$.fn.extend({\r\n\t\t\tonCSSAnimationEnd: function(callback) {\r\n\t\t\t\t\r\n\t\t\t\tvar $this\t=\t$( this );\r\n\t\t\t\t\r\n\t\t\t\t$this.one( eventAnimation, callback);\r\n\t\t\t\t\r\n\t\t\t\tif( ( prefixAnimation == '' && !( 'animation' in s ) ) || $this.css( prefixAnimation + 'animation-duration' ) == '0s' ) $.each($this, callback);\r\n\t\t\t\t\r\n\t\t\t\treturn this;\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\tonCSSTransitionEnd: function(callback) {\r\n\t\t\t\t\r\n\t\t\t\tvar $this = $( this );\r\n\t\t\t\tif (typeof transEndEventName !== 'string' || ($this.css( transCSS + '-duration' ) === '0s' && $this.css( transCSS + '-delay' ) === '0s') ) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$.each($this, callback);\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$this.one( eventTransition, callback );\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\treturn this;\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t});\r\n\t})(jQuery, window, document);\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n//add global easing method\r\njQuery.easing['jswing'] = jQuery.easing['swing'];\r\njQuery.extend( jQuery.easing,\r\n{\r\n\teaseInCubic: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t + b;\r\n\t},\r\n\teaseOutCubic: function (x, t, b, c, d) {\r\n\t\treturn c*((t=t/d-1)*t*t + 1) + b;\r\n\t},\r\n\teaseInOutCubic: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t + b;\r\n\t\treturn c/2*((t-=2)*t*t + 2) + b;\r\n\t}\r\n});\r\n\r\n\r\n\r\n\r\n\r\n\r\n/*!\r\n * Copyright (C) 2015-2024, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n * PepValidate 3.1.1\r\n *\r\n *\t\t2016-08-29 (3.0.0)\r\n *\t\t\t- Setup callback system where callbacks can be registered in other scripts. This allows CSP headers to be setup and removes the need for eval().\r\n *\r\n *\t\t2016-08-30 (3.0.1)\r\n *\t\t\t- Error messages now scale into and out of view.\r\n *\r\n *\t\t2016-09-08 (3.0.2)\r\n *\t\t\t- Fixed custom minDate initialization for Air Datepicker.\r\n *\t\t\t- Added support for maxDate for Air Datepicker.\r\n *\t\t\t- Added support for onHide callbacks in Air Datepicker.\r\n *\t\t\t\t- Must be registered via window.pepvalidateRegisterCallback().\r\n *\r\n *\t\t2016-09-08 (3.0.3)\r\n *\t\t\t- Added support for onSelect callbacks in Air Datepicker. Works the same way as onHide.\r\n *\r\n *\t\t2016-11-29 (3.0.4)\r\n *\t\t\t- Now handles checkbox and radio clicks to change the CSS state for the input.\r\n *\r\n *\t\t2016-12-06 (3.0.5)\r\n *\t\t\t- Checkbox/radio elements no longer get the \"filled\" class.\r\n *\t\t\t- Updated checking optional content-block steps with checkboxes and radio inputs.\r\n *\r\n *\t\t2017-01-09 (3.0.6)\r\n *\t\t\t- Disabled the check to see if an element is hidden before initializing it.\r\n *\r\n *\t\t2017-01-23 (3.0.7)\r\n *\t\t\t- Datepickers are now shown inline if the current device is touch enabled.\r\n *\r\n *\t\t2017-01-23 (3.0.8)\r\n *\t\t\t- Now uses reCaptcha V3 if possible.\r\n *\r\n *\t\t2020-12-15 (3.0.9)\r\n *\t\t\t- Added URL stripping to regularExpressions.\r\n *\r\n *\t\t2020-12-29 (3.0.10)\r\n *\t\t\t- elements are no longer sanitized.\r\n *\r\n *\t\t2022-07-26 (3.0.11)\r\n *\t\t\t- PepValidate now executes immediately rather than waiting for document.ready.\r\n *\r\n *\t\t2023-08-17 (3.1.0)\r\n *\t\t\t- PepValidate now supports file uploads on forms with multipart/form-data enctype attribute.\r\n *\r\n *\t\t2024-06-06 (3.1.1) (zsahs)\r\n *\t\t\t- Checkboxes with required class that are left unchecked will prevent form from submitting.\r\n */\r\n(function ($) {\r\n\t\r\n\tvar regularExpressions\t\t=\t{\r\n\t\t\tccn: /\\b(?:\\d[ -]*?){9,12}((?:\\d[ -]*?){4})\\b/,\t//one matched set for last 4 digits\r\n\t\t\tssn: /\\b\\d{3}-\\d{2}-(\\d{4})\\b/,\t\t\t\t\t//one matched set for last 4 digits\r\n\t\t\turl: /((http|ftp|https):\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?/\r\n\t\t},\r\n\t\tpepvalidateCallbacks\t=\t{};\r\n\t\r\n\t/**\r\n\t *\tTakes in a single replacement parameter and masks the match to only show that single parameter. Used for Credit Card Numbers and Social Security Numbers.\r\n\t *\r\n\t *\t@param\tmatch\tstring\tThe matched string.\r\n\t *\t@param\tp1\t\tstring\tThe matched replacement parameter.\r\n\t *\t@param\toffset\tinteger\tThe offset in the search string where the `match` string is found.\r\n\t *\t@param\tstring\tstring\tThe search string.\r\n\t *\r\n\t *\t@return\t\t\tstring\tThe masked string.\r\n\t */\r\n\tfunction maskSingleReplacement(match, p1, offset, string) {\r\n\t\t\r\n\t\tvar numOfDigits\t=\tmatch.replace(/[ -]/gi, '').length,\r\n\t\t\toutput\t\t=\t'';\r\n\r\n\t\tfor (var i = 0; i < numOfDigits - p1.length; i++) {\r\n\t\t\t\r\n\t\t\tif (i > 0 && i % p1.length === 0)\toutput\t+=\t'-';\r\n\t\t\t\r\n\t\t\toutput\t+=\t'*';\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn output + '-' + p1.replace(/[ ]/gi, '-');\r\n\t\t\r\n\t}\r\n\t\r\n\t/**\r\n\t *\tSearches a given string for sensitive information and masks that information. Currently supports Credit Card Numbers and Social Security Numbers.\r\n\t *\r\n\t *\t@param\tinputNode\tDOMNode\tThe input node to sanitize of sensitive information.\r\n\t *\r\n\t *\t@return\t\t\t\tstring\tThe sanitized string.\r\n\t */\r\n\tfunction maskSensitiveInformation(inputNode) {\r\n\t\tif ('object' !== typeof inputNode || !('value' in inputNode)) return '';\r\n\t\tlet output = inputNode.value;\r\n\t\t//NOTE: url redaction disabled as it's done on the back end now\r\n\t\t/*if (false === inputNode.classList.contains('email')) {\r\n\t\t\toutput = output.replace(regularExpressions.url, '[url blocked]');\r\n\t\t}*/\r\n\t\treturn output\r\n\t\t\t\t.replace(regularExpressions.ccn, maskSingleReplacement)\r\n\t\t\t\t.replace(regularExpressions.ssn, maskSingleReplacement);\r\n\t}\r\n\r\n /**\r\n * Checks if the input is blank depending on type attribute.\r\n * @returns {boolean} True if the input is blank, false otherwise.\r\n */\r\n function isInputBlank() {\r\n return (this.type !== 'checkbox' && this.type !== 'radio' && this.value === '')\r\n || (this.type === 'checkbox' && !this.checked)\r\n || (this.type === 'radio' && !this.checked);\r\n }\r\n\r\n\t/**\r\n\t *\tValidates inputs conditionally required based on the value of another input. Exclusive.\r\n\t *\r\n\t *\t@param\tdisplayErrorMsg\tboolean\tWhether or not to display the error message.\r\n\t *\t@param\tonlyRemoeError\tboolean\tWhether or not to only remove the error, not add it.\r\n\t *\r\n\t *\t@return\tN/A\r\n\t */\r\n\tfunction checkRequiredJoint(displayErrorMsg, onlyRemoveError) {\r\n\t\t\r\n\t\tif (typeof displayErrorMsg !== 'boolean') {\r\n\t\t\t\r\n\t\t\tvar displayErrorMsg\t=\tfalse;\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\tif (typeof onlyRemoveError !== 'boolean') {\r\n\t\t\t\r\n\t\t\tvar onlyRemoveError\t=\tfalse;\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\t//check if the joint fieldset exists\r\n\t\tif ($('#' + $(this).data('joint')).length) {\r\n\t\t\t\r\n\t\t\t//check that this isn't already valid\r\n\t\t\tif ($(this).closest('p').find('input, select, textarea').filter(isInputBlank).length) {\r\n\t\t\t\t\r\n\t\t\t\t//check if the other fieldset is valid\r\n\t\t\t\tif ($('#' + $(this).data('joint')).closest('p').find('input, select, textarea').filter(isInputBlank).length) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//both are invalid\r\n\t\t\t\t\tif (!onlyRemoveError) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$(this).closest('p, fieldset').addClass('error').removeClass('validated');\r\n\t\t\t\t\t\t$('#' + $(this).data('joint')).closest('p, fieldset').addClass('error').removeClass('validated');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$(this).closest('p, fieldset').removeClass('validated');\r\n\t\t\t\t\t\t$('#' + $(this).data('joint')).closest('p, fieldset').removeClass('validated');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$(this).closest('p, fieldset').removeClass('error validated');\r\n\t\t\t\t\t$('#' + $(this).data('joint')).closest('p, fieldset').removeClass('error').addClass('validated');\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\t$(this).closest('p, fieldset').removeClass('error').addClass('validated');\r\n\t\t\t\t$('#' + $(this).data('joint')).closest('p, fieldset').removeClass('error validated');\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t}\r\n\r\n\t/**\r\n\t *\tValidates required inputs.\r\n\t *\r\n\t *\t@param\tdisplayErrorMsg\tboolean\tWhether or not to display the error message.\r\n\t *\r\n\t *\t@return\tN/A\r\n\t */\r\n\tfunction checkRequiredInput(displayErrorMsg) {\r\n\t\t\r\n\t\tif (typeof displayErrorMsg !== 'boolean') {\r\n\t\t\t\r\n\t\t\tvar displayErrorMsg\t=\tfalse;\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\tvar $ele\t=\t$(this);\r\n\t\t\r\n\t\tif ((typeof this.type === 'string' && (this.type.toLowerCase() === 'text' || this.type.toLowerCase() === 'date' || this.type.toLowerCase() === 'tel' || this.type.toLowerCase() === 'email' || this.type.toLowerCase() === 'number' || this.type.toLowerCase() === 'password' || this.type.toLowerCase() === 'checkbox')) || $ele.is('select, textarea')) {\r\n\t\t\t\r\n\t\t\tvar error\t=\tfalse;\r\n\r\n\t\t\tif ($ele.hasClass('required') && isInputBlank.call(this))\r\n\t\t\t{\r\n\t\t\t\t\r\n\t\t\t\terror\t=\ttrue;\r\n\t\t\t\t\r\n\t\t\t} else if ($ele.data('regex') && new RegExp($ele.data('regex'), 'gi').test(this.value) === false && (this.value !== '' || $ele.hasClass('required'))) {\r\n\t\t\t\t\r\n\t\t\t\terror\t=\ttrue;\r\n\t\t\t\t\r\n\t\t\t} else if ($ele.data('min-length') && parseInt($ele.data('min-length'), 10) > this.value.length && (this.value !== '' || $ele.hasClass('required'))) {\r\n\t\t\t\t\r\n\t\t\t\terror\t=\ttrue;\r\n\t\t\t\t\r\n\t\t\t} else if ($ele.data('max-length') && parseInt($ele.data('max-length'), 10) < this.value.length && (this.value !== '' || $ele.hasClass('required'))) {\r\n\t\t\t\t\r\n\t\t\t\terror\t=\ttrue;\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (error) {\r\n\t\t\t\t\r\n\t\t\t\t$ele.closest('p').data('hasError', true);\r\n\t\t\t\t\r\n\t\t\t\tif (displayErrorMsg) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ($ele.closest('p').find('.error-msg').length) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$ele\r\n\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t.find('.error-msg')\r\n\t\t\t\t\t\t\t\t\t.onCSSAnimationEnd(function () {\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$ele\r\n\t\t\t\t\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('bounce');\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t\t.addClass('bounce');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar errorMsg\t\t\t\t\t\t\t=\t'This field is required';\r\n\t\t\t\t\t\tif ($ele.data('error-msg'))\terrorMsg\t=\t$ele.data('error-msg');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$ele\r\n\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t.removeClass('error')\r\n\t\t\t\t\t\t\t\t.append('report' + errorMsg + '');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//find all the inputs before this one that have errors\r\n\t\t\t\tvar currPIndex\t=\t$ele.closest('form').find('p').index($ele.closest('p')),\r\n\t\t\t\t\terrorCount\t=\t$ele.closest('form').find('p').filter(function (index) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\treturn (currPIndex > index && $(this).data('hasError') === true);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}).length;\r\n\t\t\t\t\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$ele\r\n\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t.addClass('error')\r\n\t\t\t\t\t\t\t.removeClass('validated');\r\n\t\t\t\t\t\r\n\t\t\t\t}, 50 + 100 * errorCount);\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\r\n\t\t\t\t$ele.closest('p').data('hasError', false).removeClass('error');\r\n\t\t\t\t\r\n\t\t\t\tif (this.value !== '' || $ele.hasClass('required')) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$ele.closest('p').addClass('validated');\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ($ele.closest('form').hasClass('show-steps')) {\r\n\t\t\t\t\r\n\t\t\t\t//check if all the elements in this .content-block have passed\r\n\t\t\t\tvar errorCount\t=\t$ele.closest('.content-block').find('p').filter(function (index) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar $required\t=\t$(this).find('.required');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\treturn $(this).data('hasError') === true || ($required.length > 0 && !$(this).hasClass('validated'));\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}).length;\r\n\t\t\t\t\r\n\t\t\t\tif (errorCount === 0) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$ele\r\n\t\t\t\t\t\t.closest('.content-block')\r\n\t\t\t\t\t\t\t.prev('.content-step')\r\n\t\t\t\t\t\t\t\t.addClass('step-complete');\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$ele\r\n\t\t\t\t\t\t.closest('.content-block')\r\n\t\t\t\t\t\t\t.prev('.content-step')\r\n\t\t\t\t\t\t\t\t.removeClass('step-complete')\r\n\t\t\t\t\t\t\t\t\t.closest('form')\r\n\t\t\t\t\t\t\t\t\t\t.removeClass('all-steps-complete');\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//check if all steps are complete\r\n\t\t\t\twindow.pepvalidateCheckFormComplete($ele.closest('form'));\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t}\r\n\t\r\n\t/**\r\n\t *\tInitializes the datepicker elements passed-in.\r\n\t *\r\n\t *\t@param\t$elements\tjQuery Object\tThe elements to initialize.\r\n\t *\r\n\t *\t@return\tN/A\r\n\t */\r\n\tfunction initializeDatepickerElements($elements) {\r\n\t\t\r\n\t\tvar isTouch\t=\t(typeof Modernizr === 'object' && typeof Modernizr.touchevents === 'boolean' && Modernizr.touchevents);\r\n\t\t\r\n\t\t$.each($elements, function (i) {\r\n\t\t\t\r\n\t\t\tvar minDate\t\t=\t$elements.eq(i).data('mindate')\t\t||\t'',\r\n\t\t\t\tmaxDate\t\t=\t$elements.eq(i).data('maxdate')\t\t||\t'',\r\n\t\t\t\tdateFormat\t=\t$elements.eq(i).data('dateformat')\t||\t'',\r\n\t\t\t\tonHide\t\t=\t$elements.eq(i).data('onhide')\t\t||\t'',\r\n\t\t\t\tonSelect\t=\t$elements.eq(i).data('onselect')\t||\t'';\r\n\t\t\t\r\n\t\t\tif (isTouch && $elements.eq(i).hasClass('ignore-mobile')) {\r\n\t\t\t\t\r\n\t\t\t\t$elements\r\n\t\t\t\t\t.eq(i)\r\n\t\t\t\t\t\t.attr('data-inline', 'true')\r\n\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t.addClass('inline-datepicker');\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*if (isTouch && $elements.eq(i).hasClass('ignore-mobile')) {\r\n\t\t\t\t\r\n\t\t\t\t//use native datepicker\r\n\t\t\t\t\r\n\t\t\t\tif (minDate !== '') {\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar now\t\t=\t(minDate === 'today')\r\n\t\t\t\t\t\t\t\t\t\t?\tnew Date()\r\n\t\t\t\t\t\t\t\t\t\t:\tnew Date(minDate);\r\n\t\t\t\t\tif (!isNaN(now.getTime())) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar\tday\t\t=\t(now.getDate() < 10)\r\n\t\t\t\t\t\t\t\t\t\t\t?\t'0' + now.getDate()\t\r\n\t\t\t\t\t\t\t\t\t\t\t:\tnow.getDate(),\r\n\t\t\t\t\t\t\tmonth\t=\t((now.getMonth() + 1) < 10)\r\n\t\t\t\t\t\t\t\t\t\t\t?\t'0' + (now.getMonth() + 1)\t\r\n\t\t\t\t\t\t\t\t\t\t\t:\t(now.getMonth() + 1),\r\n\t\t\t\t\t\t\tdate\t=\t now.getFullYear() + '-' + month+ '-' + day;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$elements\r\n\t\t\t\t\t\t\t.eq(i)\r\n\t\t\t\t\t\t\t\t.attr('min', date)\r\n\t\t\t\t\t\t\t\t.prop('min', date);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (typeof onHide === 'string' && onHide !== '' && onHide in pepvalidateCallbacks) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$elements\r\n\t\t\t\t\t\t.eq(i)\r\n\t\t\t\t\t\t\t.on('change', function () {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar inst\t=\t{\r\n\t\t\t\t\t\t\t\t\t\t$el\t:\t$(this)\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tpepvalidateCallbacks[onHide].call(inst, true);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (typeof onSelect === 'string' && onSelect !== '' && onSelect in pepvalidateCallbacks) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$elements\r\n\t\t\t\t\t\t.eq(i)\r\n\t\t\t\t\t\t\t.on('change', function () {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar inst\t=\t{\r\n\t\t\t\t\t\t\t\t\t\t$el\t:\t$(this)\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tpepvalidateCallbacks[onSelect].call('', new Date(), inst);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t$elements\r\n\t\t\t\t\t.eq(i)\r\n\t\t\t\t\t\t.attr('type', 'date')\r\n\t\t\t\t\t\t.prop('type', 'date');\r\n\t\t\t\t\r\n\t\t\t} else {*/\r\n\t\t\t\t\r\n\t\t\t\t//use datepicker.js\r\n\t\t\t\tvar options\t=\t{\r\n\t\t\t\t\t\tlanguage\t:\t'en',\r\n\t\t\t\t\t\tautoClose\t:\ttrue,\r\n\t\t\t\t\t\tonHide\t\t:\tfunction () {},\r\n\t\t\t\t\t\tonSelect\t:\tfunction () {}\r\n\t\t\t\t\t};\r\n\t\t\t\t\r\n\t\t\t\tif (dateFormat !== '')\toptions.dateFormat\t=\tdateFormat;\r\n\t\t\t\t\r\n\t\t\t\tif (minDate === 'today') {\r\n\t\t\t\t\t\r\n\t\t\t\t\toptions.minDate\t=\tnew Date();\r\n\t\t\t\t\t\r\n\t\t\t\t} else if\t(minDate !== '') {\r\n\t\t\t\t\t\r\n\t\t\t\t\tminDate\t=\tnew Date(minDate);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (!isNaN(minDate.getTime())) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\toptions.minDate\t=\tminDate;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (maxDate === 'today') {\r\n\t\t\t\t\t\r\n\t\t\t\t\toptions.maxDate\t=\tnew Date();\r\n\t\t\t\t\t\r\n\t\t\t\t} else if (maxDate !== '') {\r\n\t\t\t\t\t\r\n\t\t\t\t\tmaxDate\t=\tnew Date(maxDate);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (!isNaN(maxDate.getTime())) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\toptions.maxDate\t=\tmaxDate;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (typeof onHide === 'string' && onHide !== '' && onHide in pepvalidateCallbacks) {\r\n\t\t\t\t\t\r\n\t\t\t\t\toptions.onHide\t=\tpepvalidateCallbacks[onHide];\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (typeof onSelect === 'string' && onSelect !== '' && onSelect in pepvalidateCallbacks) {\r\n\t\t\t\t\t\r\n\t\t\t\t\toptions.onSelect\t=\tpepvalidateCallbacks[onSelect];\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t$elements.eq(i).datepicker(options);\r\n\t\t\t\t\r\n\t\t\t//}\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t}\r\n\t\r\n\tfunction checkOptionalStepComplete($contentBlock) {\r\n\t\t\r\n\t\t//check if all the fields are filled-out in this content block\r\n\t\tvar $blank\t=\t$contentBlock.find('input, textarea, select').filter(function () {\r\n\t\t\t\t\r\n\t\t\t\tif (typeof this.type === 'string' && (this.type === 'checkbox' || this.type === 'radio')) {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn !this.checked;\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn $(this).val() === '';\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\r\n\t\tif ($blank.length === 0) {\r\n\t\t\t\r\n\t\t\t$contentBlock\r\n\t\t\t\t.prev('.content-step')\r\n\t\t\t\t\t.addClass('step-complete');\r\n\t\t\t\r\n\t\t} else {\r\n\t\t\t\r\n\t\t\t$contentBlock\r\n\t\t\t\t.prev('.content-step')\r\n\t\t\t\t\t.removeClass('step-complete');\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t}\r\n\t\r\n\twindow.pepvalidateRegisterCallback\t=\tfunction (action, callback) {\r\n\r\n\t\tif (typeof action !== 'string' || action.length === 0)\treturn false;\r\n\t\tif (typeof callback !== 'function')\t\t\t\t\t\treturn false;\r\n\t\t\r\n\t\tpepvalidateCallbacks[action]\t=\tcallback;\r\n\t\t\r\n\t\treturn true;\r\n\t\t\r\n\t};\r\n\t\r\n\twindow.pepvalidateCheckFormComplete\t=\tfunction ($form) {\r\n\t\t\r\n\t\tif ($form.hasClass('show-steps')) {\r\n\t\t\t\r\n\t\t\tvar $steps\t=\t$form.find('.content-step').filter(function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn ($(this).data('step') !== 'done' && $(this).data('step') !== 'clear' && !$(this).hasClass('optional'));\r\n\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t\tif ($steps.length === $steps.filter('.step-complete').length) {\r\n\t\t\t\t\r\n\t\t\t\t$form\r\n\t\t\t\t\t.addClass('all-steps-complete')\r\n\t\t\t\t\t.find('.content-step[data-step=done], .content-step[data-step=clear]')\r\n\t\t\t\t\t\t.addClass('step-complete');\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\t$form\r\n\t\t\t\t\t.removeClass('all-steps-complete')\r\n\t\t\t\t\t.find('.content-step[data-step=done], .content-step[data-step=clear]')\r\n\t\t\t\t\t\t.removeClass('step-complete');\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t};\r\n\r\n\t/**\r\n\t *\tDestroys a setup pepvalidate form.\r\n\t *\r\n\t *\t@return N/A\r\n\t */\r\n\twindow.pepvalidateDestroyForm\t=\tfunction () {\r\n\t\t\r\n\t\tvar $form\t\t\t=\t$(this),\r\n\t\t\t$formElements\t=\t$form.find('input[type=text], input[type=date], input[type=tel], input[type=email], input[type=number], input[type=password], select, textarea').filter(function () { return $(this).css('display') !== 'none'; });\r\n\t\t\r\n\t\t$formElements.off('focus.pepvalidate3 blur.pepvalidate3 keyup.pepvalidate3 change.pepvalidate3 paste.pepvalidate3 sanitize.pepvalidate3');\r\n\t\t\r\n\t\t$form.off('click.pepvalidate3', '.error-msg');\r\n\t\t\r\n\t\t$form.find('.note').find('.handle').off('click.pepvalidate3');\r\n\t\t\r\n\t\t$form.find('.submit-wrapper').off('click.pepvalidate3');\r\n\t\t\r\n\t\t$form.off('click.pepvalidate3', '.overlay .close').off('click.pepvalidate3', '.overlay');\r\n\t\t\r\n\t\t$form.off('click.pepvalidate3');\r\n\t\t\r\n\t\t$form.off('submit.pepvalidate3');\r\n\t\t\r\n\t};\r\n\r\n\t/**\r\n\t *\tSetup a pepvalidate form.\r\n\t *\r\n\t *\t@return N/A\r\n\t */\r\n\twindow.pepvalidateInitForm\t=\tfunction () {\r\n\t\t\r\n\t\tvar $form\t\t\t\t=\t$(this),\r\n\t\t\t$formElements\t\t=\t$form.find('input[type=text], input[type=date], input[type=tel], input[type=email], input[type=number], input[type=password], input[type=checkbox], input[type=radio], select, textarea'),//.filter(function () { return $(this).is(':visible'); }),\r\n\t\t\t$datepickerElements\t=\t$formElements.filter('.date');\r\n\t\t\r\n\t\t//setup input interaction\r\n\t\t$formElements.on('focus.pepvalidate3', function () {\r\n\t\t\t\r\n\t\t\t$(this).closest('p').addClass('active');\r\n\t\t\t\r\n\t\t}).on('blur.pepvalidate3', function () {\r\n\t\t\t\r\n\t\t\tvar $input\t=\t$(this);\r\n\t\t\t\r\n\t\t\tif ($input.hasClass('required')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredInput.call(this, false);\r\n\t\t\t\t\r\n\t\t\t} else if ($input.hasClass('required-joint')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredJoint.call($input[0], false, true);\r\n\t\t\t\t\r\n\t\t\t} else if ($input.closest('fieldset').hasClass('required-joint')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredJoint.call($input.closest('fieldset')[0], false, true);\r\n\t\t\t\t\r\n\t\t\t} else if (typeof $input.data('regex') === 'string') {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredInput.call(this, false);\r\n\t\t\t\t\r\n\t\t\t} else if ($input.closest('.content-block').prev('.content-step').hasClass('optional')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckOptionalStepComplete($input.closest('.content-block'));\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (!$input.closest('p').hasClass('checkbox') && !$input.closest('p').hasClass('radio')) {\r\n\t\t\t\t\r\n\t\t\t\tif ($input.val() === '') {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$input\r\n\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t.removeClass('active filled');\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//check for sensitive information and mask it if found\r\n\t\t\t\t\t$input\r\n\t\t\t\t\t\t.trigger('sanitize.pepvalidate3')\r\n\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t.addClass('filled');\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}).on('keyup.pepvalidate3, change.pepvalidate3, paste.pepvalidate3', function () {\r\n\t\t\t\r\n\t\t\tvar $input\t=\t$(this);\r\n\t\t\t\r\n\t\t\tif ($input.hasClass('required')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredInput.call(this, false);\r\n\t\t\t\t\r\n\t\t\t} else if ($input.hasClass('required-joint')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredJoint.call($input[0], false, true);\r\n\t\t\t\t\r\n\t\t\t} else if ($input.closest('fieldset').hasClass('required-joint')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredJoint.call($input.closest('fieldset')[0], false, true);\r\n\t\t\t\t\r\n\t\t\t} else if (typeof $input.data('regex') === 'string') {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredInput.call(this, false);\r\n\t\t\t\t\r\n\t\t\t} else if ($input.closest('.content-block').prev('.content-step').hasClass('optional')) {\r\n\t\t\t\t\r\n\t\t\t\tcheckOptionalStepComplete($input.closest('.content-block'));\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (!$input.closest('p').hasClass('checkbox') && !$input.closest('p').hasClass('radio')) {\r\n\t\t\t\t\r\n\t\t\t\tif ($input.val() === '') {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$input\r\n\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t.removeClass('filled');\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//check for sensitive information and mask it if found\r\n\t\t\t\t\t$input\r\n\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t.addClass('filled');\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}).on('sanitize.pepvalidate3', function () {\r\n\t\t\t\r\n\t\t\t//only sanitize if no class is set to bypass for this form element\r\n\t\t\tif (!$(this).hasClass('do-not-sanitize') && false === $(this).is('select'))\t$(this).val(maskSensitiveInformation(this));\r\n\t\t\t\r\n\t\t}).each(function () {\r\n\t\t\t\r\n\t\t\tif (this.value !== '') {\r\n\t\t\t\t\r\n\t\t\t\t$(this)\r\n\t\t\t\t\t.trigger('change')\r\n\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t.addClass('active');\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\t$form\r\n\t\t\t.find('input[type=checkbox], input[type=radio]')\r\n\t\t\t\t.on('change.pepvalidate3', function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar $input\t=\t$(this);\r\n\t\t\t\t\t\r\n\t\t\t\t\t//check if this is a checkbox or a radio input\r\n\t\t\t\t\tif ($input.closest('p').hasClass('checkbox') || $input.closest('p').hasClass('radio')) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif ($input.prop('checked')) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$input\r\n\t\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t\t.addClass('checked');\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif ($input.closest('p').hasClass('radio')) {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$input\r\n\t\t\t\t\t\t\t\t\t.closest('form')\r\n\t\t\t\t\t\t\t\t\t\t.find('input[name=\"' + this.name + '\"]')\r\n\t\t\t\t\t\t\t\t\t\t\t.not(this)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('checked');\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$input\r\n\t\t\t\t\t\t\t\t.closest('p')\r\n\t\t\t\t\t\t\t\t\t.removeClass('checked');\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t})\r\n\t\t\t\t.trigger('change.pepvalidate3');\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup datepicker\r\n\t\tif ($datepickerElements.length) {\r\n\t\t\t\r\n\t\t\t//check if datepicker is already loaded\r\n\t\t\tif ($.fn.datepicker) {\r\n\t\t\t\t\r\n\t\t\t\tinitializeDatepickerElements($datepickerElements);\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\t//datepicker not loaded, load it now\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl\t\t\t:\t'/library/js/datepicker.js',\r\n\t\t\t\t\tdataType\t:\t'script',\r\n\t\t\t\t\tcache\t\t:\ttrue,\r\n\t\t\t\t\tsuccess\t\t:\tfunction (data) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$.fn.datepicker.language['en'] = {\r\n\t\t\t\t\t\t\tdays\t\t:\t['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n\t\t\t\t\t\t\tdaysShort\t:\t['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n\t\t\t\t\t\t\tdaysMin\t\t:\t['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\r\n\t\t\t\t\t\t\tmonths\t\t:\t['January','February','March','April','May','June', 'July','August','September','October','November','December'],\r\n\t\t\t\t\t\t\tmonthsShort\t:\t['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n\t\t\t\t\t\t\ttoday\t\t:\t'Today',\r\n\t\t\t\t\t\t\tclear\t\t:\t'Clear',\r\n\t\t\t\t\t\t\tdateFormat\t:\t'mm/dd/yyyy',\r\n\t\t\t\t\t\t\ttimeFormat\t:\t'hh:ii aa',\r\n\t\t\t\t\t\t\tfirstDay\t:\t0\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tinitializeDatepickerElements($datepickerElements);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\t$('body').append('')\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup error message interaction\r\n\t\t$form.on('click.pepvalidate3', '.error-msg', function () {\r\n\t\t\t\r\n\t\t\t$(this).onCSSTransitionEnd(function () { $(this).remove() }).closest('p').removeClass('error bounce').find('input, select, textarea').focus();\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup help messages\r\n\t\t$form.find('.note').find('.handle').on('click.pepvalidate3', function (event) {\r\n\t\t\t\r\n\t\t\tevent.preventDefault();\r\n\t\t\t\r\n\t\t\tif (typeof $(this).data('content') === 'string') {\r\n\t\t\t\t\r\n\t\t\t\t$($(this).data('content')).slideToggle(250, 'easeOutCubic');\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\r\n\t\t\t\t$(this).closest('p').next('.note-content').slideToggle(250, 'easeOutCubic');\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup user interaction with loading spinner\r\n\t\t$form.find('.submit-wrapper').on('click.pepvalidate3', function () {\r\n\t\t\t\r\n\t\t\tif ($form.hasClass('loading')) {\r\n\t\t\t\t\r\n\t\t\t\t$(this).onCSSAnimationEnd(function () { $(this).removeClass('bounce') }).addClass('bounce');\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup overlay interaction\r\n\t\t$form.on('click.pepvalidate3', '.overlay .close', function (event) {\r\n\t\t\t\r\n\t\t\tevent.preventDefault();\r\n\t\t\t\r\n\t\t\t$form.find('.overlay').onCSSTransitionEnd(function () { $(this).remove(); }).end().removeClass('overlay-active').css({ minHeight : '' });\r\n\t\t\t\r\n\t\t}).on('click.pepvalidate3', '.overlay', function (event) {\r\n\t\t\t\r\n\t\t\tevent.stopPropagation();\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\t$form.on('click.pepvalidate3', function () {\r\n\t\t\t\r\n\t\t\t$form.find('.overlay').find('.close').trigger('click.pepvalidate3');\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup step completion callbacks\r\n\t\t$form\r\n\t\t\t.find('.content-step')\r\n\t\t\t\t.each(function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (typeof $(this).data('step-callback') === 'string' && $(this).data('step-callback') in pepvalidateCallbacks) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tpepvalidateCallbacks[$(this).data('step-callback')].apply(this);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//long poll the inputs looking for auto-fill data\r\n\t\tvar autoPollTimer\t=\tsetInterval(function () {\r\n\t\t\t\r\n\t\t\tvar $activeFormElements\t=\t$formElements.filter(function () { return $(this).val() !== ''; });\r\n\t\t\t\t\r\n\t\t\t\t//only run this long poll if there are still blank form elements\r\n\t\t\t\tif ($formElements.length === $activeFormElements.length) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tclearInterval(autoPollTimer);\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t$activeFormElements.closest('p').addClass('active');\r\n\t\t\t\t\r\n\t\t\t}, 1000);\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//setup submit handler\r\n\t\t$form.on('submit.pepvalidate3', function (event) {\r\n\t\t\t\r\n\t\t\tconst ajaxCallback\t=\tfunction () {\r\n\r\n const ajaxEncType = $form.attr('enctype') || '';\r\n const ajaxOptions = {\r\n url: $form.attr('action') || '',\r\n type: $form.attr('method') || 'post',\r\n dataType\t:\t'json',\r\n data: $form.serialize(),\r\n success\t\t:\tfunction (response) {\r\n if (typeof response.STATUS !== 'string') {\r\n response.STATUS\t=\t'';\r\n }\r\n\r\n if (typeof response.MSG !== 'string') {\r\n response.MSG\t=\t'';\r\n }\r\n\r\n if (typeof response.SCRIPT !== 'object') {\r\n response.SCRIPT\t=\t[];\r\n }\r\n\r\n if (typeof response.DATA !== 'object') {\r\n response.DATA\t=\t[];\r\n }\r\n\r\n if (response.STATUS === 'SUCCESS' && !$form.find('.submit-wrapper').hasClass('keep-submit-btn')) {\r\n $form.find('.submit-wrapper').slideUp(250, 'easeOutCubic');\r\n }\r\n\r\n if (response.MSG !== '') {\r\n //determine the height of the MSG\r\n const $testEle\t=\t$('
').css({ position : 'absolute', left : '-2000px', width : $form.width() }).html(response.MSG).appendTo('body');\r\n\r\n requestAnimationFrame(function () {\r\n $form.css({ minHeight : $testEle.height() }).removeClass('loading').append('
' + response.MSG + 'X
');\r\n $testEle.remove();\r\n\r\n requestAnimationFrame(function () {\r\n $form.addClass('overlay-active');\r\n });\r\n });\r\n }\r\n\r\n if (response.SCRIPT.length > 0) {\r\n //run callback if it exists\r\n if (response.SCRIPT[0] in pepvalidateCallbacks) {\r\n //`this` refers to the form submitted\r\n pepvalidateCallbacks[response.SCRIPT[0]].apply($form[0], response.SCRIPT.slice(1));\r\n }\r\n }\r\n\r\n //log this submission with Google Analytics\r\n var formName = $form.attr('data-track-name');\r\n if (typeof window.pepTracking !== 'undefined' && typeof formName !== 'undefined') {\r\n window.pepTracking.event(\"Webform\", formName, 'Submit Triggered', 0, false);\r\n }\r\n },\r\n error\t\t:\tfunction (a, b, c) {\r\n $form.removeClass('loading').append('
An Error OccuredX
');\r\n\r\n requestAnimationFrame(function () {\r\n $form.addClass('overlay-active');\r\n });\r\n\r\n if (typeof console === 'object' && typeof console.log !== 'undefined') {\r\n console.log(a);\r\n console.log(b);\r\n console.log(c);\r\n }\r\n }\r\n };\r\n\r\n if ('multipart/form-data' === ajaxEncType) {\r\n ajaxOptions.data = new FormData($form[0]);\r\n ajaxOptions.dataType = 'json';\r\n ajaxOptions.contentType = false;\r\n ajaxOptions.cache = false;\r\n ajaxOptions.processData = false;\r\n }\r\n\r\n\t\t\t\t$.ajax(ajaxOptions);\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif ($form.hasClass('loading')) {\r\n\t\t\t\t\r\n\t\t\t\t$form.find('.submit-wrapper').onCSSAnimationEnd(function () { $(this).removeClass('bounce') }).addClass('bounce');\r\n\t\t\t\t\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$form.find('input, select, textarea').trigger('sanitize.pepvalidate3');\r\n\t\t\t\r\n\t\t\t$.each($form.find('input, select, textarea').filter(function () {\r\n\t\t\t\t\r\n\t\t\t\treturn $(this).hasClass('required') || typeof $(this).data('regex') === 'string';\r\n\t\t\t\t\r\n\t\t\t}), function () {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredInput.call(this, true);\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t$.each($form.find('.required-joint'), function () {\r\n\t\t\t\t\r\n\t\t\t\tcheckRequiredJoint.call(this, true, false);\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tvar $errors\t=\t$form.find('p').filter(function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn $(this).data('hasError') === true;\r\n\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t\tif ($errors.length) {\r\n\t\t\t\t\r\n\t\t\t\t$errors.find('input, select, textarea').eq(0).focus();\r\n\t\t\t\t\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\t//submit form\r\n\t\t\t\t$form.addClass('loading');\r\n\t\t\t\t\r\n\t\t\t\tif (!$form.hasClass('ajax-ignore')) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\r\n\t\t\t\t\t//run reCaptcha if possible\r\n\t\t\t\t\tif ('grecaptcha' in window) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tgrecaptcha.execute('6LfAcbAUAAAAAMqDp1N977WgJ5pbTFPxwpFA2TaK', {action: 'form_submission'}).then(function(token) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$form\r\n\t\t\t\t\t\t\t\t.append('');\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tajaxCallback.call(this);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tajaxCallback.call(this);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t});\r\n\t\t\r\n\t}\r\n\t\r\n\t$.each($('.pepvalidate-v3').filter('.auto-init'), window.pepvalidateInitForm);\r\n\t\r\n})(jQuery);","/*!\r\n * Copyright (C) 2019, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n *\t2019-05-20\r\n *\t\t- Peppermill Preferred code moved from lazy.js.\r\n *\r\n *\t2022-06-27\r\n *\t\t- Fix Preferred login/enroll default callbacks to send guests to /resort/.\r\n */\r\n\r\n(function ($, window, document) {\r\n\t\r\n\tvar $preferredLogin\t\t\t\t\t=\tnull;\r\n\tvar preferredLoginCallbackSuccess\t=\tnull;\r\n\tvar preferredLoginCallbackError\t\t=\tnull;\r\n\tvar preferredLoginLoading\t\t\t=\tfalse;\r\n\tvar preferredDevMode\t\t\t\t=\t!/^(reserve2\\.peppermillcas\\.com)|(www\\.peppermillreno\\.com)$/.test(location.hostname);\r\n\tvar preferredWebAPIHost\t\t\t\t=\t(preferredDevMode)\r\n\t\t\t\t\t\t\t\t\t\t\t\t?\t'https://dev.peppermillreno.com'\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\t'https://www.peppermillreno.com';\r\n\tvar preferredAPIURI\t\t\t\t\t=\t(preferredDevMode)\r\n\t\t\t\t\t\t\t\t\t\t\t\t?\t'https://reserve1.peppermillcas.com:4323/resnet-api/?TEST=YES'\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\t'https://reserve1.peppermillcas.com:4323/resnet-api/';\r\n\twindow.peppermillPreferred\t\t\t=\t{};\r\n\t\r\n\tfunction setCachedData (storageKey, data) {\r\n\r\n\t\tif (typeof storageKey !== 'string')\treturn false;\r\n\t\tif (typeof data == 'undefined')\t\treturn false;\r\n\t\t\r\n\t\tif ('JSON' in window) {\r\n\t\t\t\r\n\t\t\tif (Modernizr.localstorage) {\r\n\t\t\t\t\r\n\t\t\t\treturn localStorage.setItem(storageKey, JSON.stringify({\r\n\t\t\t\t\tTIMESTAMP\t:\tnew Date().getTime(),\r\n\t\t\t\t\tDATA\t\t:\tdata\r\n\t\t\t\t}));\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\tvar cookieData\t=\t$('html').data('cookie');\r\n\t\t\t\t\r\n\t\t\t\tif (cookieData) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tdocument.cookie = storageKey + '=' + JSON.stringify({ TIMESTAMP : new Date().getTime(), DATA : data }) + '; path=' + cookieData.b + '; ' + cookieData.s + '; ' + cookieData.h;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t\t\r\n\t}\r\n\t\r\n\tfunction getCachedData (storageKey, storageTTL) {\r\n\t\t\r\n\t\tif (typeof storageKey !== 'string')\treturn false;\r\n\t\tif (typeof storageTTL !== 'number')\tvar storageTTL\t=\t3600000;\t//default to 1 hour\r\n\t\t\r\n\t\tvar dataSTR\t=\t'';\r\n\t\tvar dataOBJ\t=\t{};\r\n\t\t\r\n\t\ttry {\r\n\t\t\t\r\n\t\t\tif ('JSON' in window) {\r\n\t\t\t\t\r\n\t\t\t\tif (Modernizr.localstorage) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tdataSTR\t=\tlocalStorage.getItem(storageKey);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (dataSTR) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tdataOBJ\t=\tJSON.parse(dataSTR);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (dataOBJ.TIMESTAMP + storageTTL > new Date().getTime()) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\treturn dataOBJ;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tlocalStorage.removeItem(storageKey);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//look for cookie\r\n\t\t\t\t\tvar regex\t=\tnew RegExp('(?:(?:^|.*;\\\\s*)' + storageKey + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$');\r\n\t\t\t\t\tdataSTR\t=\tdocument.cookie.replace(regex, \"$1\");\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (dataSTR) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tdataOBJ\t=\tJSON.parse(dataSTR);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (dataOBJ.TIMESTAMP + storageTTL > new Date().getTime()) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\treturn dataOBJ;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvar cookieData\t=\t$('html').data('cookie');\r\n\t\t\t\t\t\t\tvar expireDate\t=\tnew Date();\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\texpiresDate.setTime(new Date().getTime() + 900000);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif (cookieData) {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tdocument.cookie = storageKey + '=; expires=' + (expireDate.toGMTString()) + '; path=' + cookieData.b + '; ' + cookieData.s + '; ' + cookieData.h;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t} catch (e) {\r\n\t\t\t\r\n\t\t\tconsole.log(e);\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t\t\r\n\t}\r\n\t\r\n\tfunction removeCachedData (storageKey) {\r\n\t\t\r\n\t\tif (typeof storageKey !== 'string')\treturn false;\r\n\t\t\r\n\t\ttry {\r\n\t\t\t\r\n\t\t\tif (Modernizr.localstorage) {\r\n\t\t\t\t\r\n\t\t\t\treturn localStorage.removeItem(storageKey);\r\n\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\tvar cookieData\t=\t$('html').data('cookie');\r\n\t\t\t\tvar expireDate\t=\tnew Date();\r\n\t\t\t\t\r\n\t\t\t\texpiresDate.setTime(new Date().getTime() - 900000);\r\n\t\t\t\t\r\n\t\t\t\tif (cookieData) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tdocument.cookie = storageKey + '=; expires=' + (expireDate.toGMTString()) + '; path=' + cookieData.b + '; ' + cookieData.s + '; ' + cookieData.h;\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t} catch (e) {\r\n\t\t\t\r\n\t\t\tconsole.log(e);\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t\t\r\n\t}\r\n\t\r\n\tpeppermillPreferred.showLoginForm\t=\tfunction (callbackSuccess, callbackError) {\r\n\t\t\r\n\t\t$('html')\r\n\t\t\t.addClass('show-overlay');\r\n\t\t\r\n\t\tif (typeof callbackSuccess === 'function')\tpreferredLoginCallbackSuccess\t=\tcallbackSuccess;\r\n\t\telse\t\t\t\t\t\t\t\t\t\tpreferredLoginCallbackSuccess\t=\tnull;\r\n\t\t\r\n\t\tif (typeof callbackError === 'function')\tpreferredLoginCallbackError\t\t=\tcallbackError;\r\n\t\telse\t\t\t\t\t\t\t\t\t\tpreferredLoginCallbackError\t\t=\tnull;\r\n\t\t\r\n\t\tif (null === $preferredLogin) {\r\n\t\t\t\r\n\t\t\t//need to grab the HTML for the login form\r\n\t\t\t\r\n\t\t\tif (preferredLoginLoading)\treturn;\r\n\t\t\t\r\n\t\t\tpreferredLoginLoading\t=\ttrue;\r\n\t\t\t\r\n\t\t\t$('html')\r\n\t\t\t\t.addClass('show-loading-spinner');\r\n\t\t\t\r\n\t\t\t$.ajax({\r\n\t\t\t\turl\t\t\t:\tpreferredWebAPIHost + '/library/api/resnet.php',\r\n\t\t\t\tdataType\t:\t'JSON',\r\n\t\t\t\tdata\t\t:\t{\r\n\t\t\t\t\tACTION\t:\t'SHOW_PREFERRED_DIALOG'\r\n\t\t\t\t},\r\n\t\t\t\tsuccess\t\t:\tfunction (response) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (response.STATUS === 'SUCCESS') {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$preferredLogin\t=\t$(response.HTML);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$('body')\r\n\t\t\t\t\t\t\t.append($preferredLogin);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t.on('close', function () {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar $dialog\t=\t$(this);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$dialog\r\n\t\t\t\t\t\t\t\t\t.removeClass('active');\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$('html')\r\n\t\t\t\t\t\t\t\t\t.removeClass('show-overlay');\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$dialog\r\n\t\t\t\t\t\t\t\t\t\t.children()\r\n\t\t\t\t\t\t\t\t\t\t\t.removeClass('active')\r\n\t\t\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t\t\t\t.children('.onboard')\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('active');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$dialog\r\n\t\t\t\t\t\t\t\t\t\t.find('.actions')\r\n\t\t\t\t\t\t\t\t\t\t\t.find('a')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('hide');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.on('click', function (event) {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.find('.pepvalidate-v3')\r\n\t\t\t\t\t\t\t\t.filter('.sign-in-preferred')\r\n\t\t\t\t\t\t\t\t\t.attr('action', preferredAPIURI)\r\n\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t\t.each(window.pepvalidateInitForm)\r\n\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.find('.close')\r\n\t\t\t\t\t\t\t\t.on('click', function (event) {\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$(this)\r\n\t\t\t\t\t\t\t\t\t\t.closest('.dialog')\r\n\t\t\t\t\t\t\t\t\t\t\t.trigger('close');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.find('.sign-up-now')\r\n\t\t\t\t\t\t\t\t.on('click', function (event) {\r\n\t\r\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t\t.children()\r\n\t\t\t\t\t\t\t\t\t\t\t.removeClass('active')\r\n\t\t\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t\t\t\t.children('.signup')\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('active');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t\t.find('.actions')\r\n\t\t\t\t\t\t\t\t\t\t\t.find('a')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('hide')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.filter('.sign-up-now')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.addClass('hide');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.find('.login-now')\r\n\t\t\t\t\t\t\t\t.on('click', function (event) {\r\n\t\r\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t\t.children()\r\n\t\t\t\t\t\t\t\t\t\t\t.removeClass('active')\r\n\t\t\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t\t\t\t.children('.onboard')\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('active');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t\t.find('.actions')\r\n\t\t\t\t\t\t\t\t\t\t\t.find('a')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('hide')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.filter('.login-now-mobile')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.addClass('hide');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.find('.login-now-mobile')\r\n\t\t\t\t\t\t\t\t.on('click', function (event) {\r\n\t\t\r\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t\t.children()\r\n\t\t\t\t\t\t\t\t\t\t\t.removeClass('active')\r\n\t\t\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t\t\t\t.children('.login')\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('active');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t\t.find('.actions')\r\n\t\t\t\t\t\t\t\t\t\t\t.find('a')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('hide')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.filter('.login-now-mobile')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.addClass('hide');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.find('.step.login')\r\n\t\t\t\t\t\t\t\t.find('.pepvalidate-v3')\r\n\t\t\t\t\t\t\t\t\t.on('click', function (event) {\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$(this)\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('active')\r\n\t\t\t\t\t\t\t\t\t\t\t.siblings('.pepvalidate-v3')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('active');\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t\t.find('input.password-strength')\r\n\t\t\t\t\t\t\t\t.data({\r\n\t\t\t\t\t\t\t\t\ttimer\t\t\t:\tnull,\r\n\t\t\t\t\t\t\t\t\tlastValChecked\t:\t''\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.on('change keyup paste', function (event) {\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tvar $input\t=\t$(this);\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tclearTimeout($input.data('timer'));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$input.data('timer', setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tif ($input.data('lastValChecked') === $input.val())\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$input.data('lastValChecked', $input.val());\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tvar otherData\t=\t[];\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tif ($input.closest('form').find('input[name=EMAIL]').val())\t\t\totherData.push($input.closest('form').find('input[name=EMAIL]').val());\r\n\t\t\t\t\t\t\t\t\t\tif ($input.closest('form').find('input[name=FIRST_NAME]').val())\totherData.push($input.closest('form').find('input[name=FIRST_NAME]').val());\r\n\t\t\t\t\t\t\t\t\t\tif ($input.closest('form').find('input[name=LAST_NAME]').val())\t\totherData.push($input.closest('form').find('input[name=LAST_NAME]').val());\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$.ajax({\r\n\t\t\t\t\t\t\t\t\t\t\turl\t\t\t:\tpreferredWebAPIHost + '/library/api/resnet.php',\r\n\t\t\t\t\t\t\t\t\t\t\ttype\t\t:\t'get',\r\n\t\t\t\t\t\t\t\t\t\t\tdataType\t:\t'json',\r\n\t\t\t\t\t\t\t\t\t\t\tdata\t\t:\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tACTION\t\t:\t'CHECK_PASSWORD_STRENGTH',\r\n\t\t\t\t\t\t\t\t\t\t\t\tPASSWORD\t:\t$input.val(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tOTHER_DATA\t:\totherData\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess\t\t:\tfunction (response) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (response.STATUS === 'SUCCESS' && 'SCORE' in response.DATA) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t$input\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.siblings('.note')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.removeClass('score-0 score-1 score-2 score-3 score-4')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.addClass('score-' + parseInt(response.DATA.SCORE, 10));\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\terror\t\t:\tfunction (jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t//log this error\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar extraText\t=\t(typeof errorThrown === 'string')\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?\t' -- ' + errorThrown\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\t'';\r\n\t\t\t\t\t\t\t\t\t\t\t\t//pepTracking.event('JS Error', 'Peppermill Preferred Check Pasword Strength', textStatus + extraText, 0, true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tif ('reportError' in window)\treportError('Peppermill Preferred Check Pasword Strength', 'preferred-club.js', 0, 0, jqXHR);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}, 500));\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$(document)\r\n\t\t\t\t\t\t\t.on('click', function () {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$preferredLogin\r\n\t\t\t\t\t\t\t\t\t.removeClass('active');\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tpreferredLoginLoading\t=\tfalse;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tactivatePreferredLoginForm();\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}, 33);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t},\r\n\t\t\t\terror\t\t:\tfunction (jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//log this error\r\n\t\t\t\t\tvar extraText\t=\t(typeof errorThrown === 'string')\r\n\t\t\t\t\t\t\t\t\t\t\t?\t' -- ' + errorThrown\r\n\t\t\t\t\t\t\t\t\t\t\t:\t'';\r\n\t\t\t\t\t//pepTracking.event('JS Error', 'Peppermill Preferred Login Setup', textStatus + extraText, 0, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ('reportError' in window)\treportError('Peppermill Preferred Login Setup', 'preferred-club.js', 0, 0, jqXHR);\r\n\t\t\t\t\t\r\n\t\t\t\t},\r\n\t\t\t\tcomplete\t:\tfunction () {\r\n\t\t\t\t\t\r\n\t\t\t\t\t$('html')\r\n\t\t\t\t\t\t.removeClass('show-loading-spinner');\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t} else {\r\n\t\t\t\r\n\t\t\t//form HTML has already been grabbed\r\n\t\t\tactivatePreferredLoginForm();\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t};\r\n\t\r\n\tfunction activatePreferredLoginForm () {\r\n\t\t\r\n\t\t$preferredLogin\r\n\t\t\t.addClass('active');\r\n\t\t\r\n\t}\r\n\t\r\n\tpeppermillPreferred.getPeppermillPreferredClientID\t=\tfunction (token, callbackSuccess, callbackError) {\r\n\t\t\r\n\t\t//console.log('getPeppermillPreferredClientID', token, typeof token === 'string', typeof callbackSuccess === 'function', typeof callbackError === 'function');\r\n\t\t\r\n\t\tif (typeof token === 'string' && typeof callbackSuccess === 'function' && typeof callbackError === 'function') {\r\n\t\t\t\r\n\t\t\t$.ajax({\r\n\t\t\t\turl\t\t\t:\tpreferredAPIURI,\r\n\t\t\t\ttype\t\t:\t'post',\r\n\t\t\t\tdataType\t:\t'json',\r\n\t\t\t\tdata\t\t:\t{\r\n\t\t\t\t\tACTION\t:\t'PEPPERMILL_PREFERRED_GET_CLIENT_ID',\r\n\t\t\t\t\tTOKEN\t:\ttoken\r\n\t\t\t\t},\r\n\t\t\t\tsuccess\t\t:\tfunction (response) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (response.STATUS === 'SUCCESS' && 'CLIENT_CODE' in response.DATA) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tcallbackSuccess.call(window, response.DATA.CLIENT_CODE);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t//call the error callback, second parameter is for \"hard error\"\r\n\t\t\t\t\t\tcallbackError.call(window, false, response.MSG);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t},\r\n\t\t\t\terror\t\t:\tfunction (jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//call the error callback, second parameter is for \"hard error\"\r\n\t\t\t\t\tcallbackError.call(window, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\t//log this error\r\n\t\t\t\t\tvar extraText\t=\t(typeof errorThrown === 'string')\r\n\t\t\t\t\t\t\t\t\t\t\t?\t' -- ' + errorThrown\r\n\t\t\t\t\t\t\t\t\t\t\t:\t'';\r\n\t\t\t\t\t//pepTracking.event('JS Error', 'Peppermill Preferred Get Client ID', textStatus + extraText, 0, true);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ('reportError' in window)\treportError('Peppermill Preferred Get Client ID', 'preferred-club.js', 0, 0, jqXHR);\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t}\r\n\t\r\n\tpeppermillPreferred.verifyPeppermillPreferredLogin\t=\tfunction (callbackSuccess, callbackError) {\r\n\t\t\r\n\t\tvar tokenData\t=\tpeppermillPreferred.getPeppermillPreferredLoginData();\r\n\t\tvar token\t\t=\t'';\r\n\t\t\r\n\t\tif ('DATA' in tokenData && 'TOKEN' in tokenData.DATA)\ttoken\t=\ttokenData.DATA.TOKEN;\r\n\t\t\r\n\t\tif (typeof token === 'string' && typeof callbackSuccess === 'function' && typeof callbackError === 'function') {\r\n\t\t\t\r\n\t\t\t//just run the function to get a client ID\r\n\t\t\tpeppermillPreferred.getPeppermillPreferredClientID(token, callbackSuccess, callbackError);\r\n\t\t\t\r\n\t\t} else {\r\n\t\t\t\r\n\t\t\t//call the error callback, second parameter is for \"hard error\"\r\n\t\t\tcallbackError.call(window, false, 'Invalid parameters.');\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t}\r\n\t\r\n\tpeppermillPreferred.getPeppermillPreferredLoginData\t=\tfunction () {\r\n\t\t\r\n\t\tvar tokenData\t=\tgetCachedData('PEPPERMILL-PREFERRED-LOGIN-TOKEN', 63072000000);\t//2 years... we'll check the server-set expiration later\r\n\t\t\r\n\t\tif (typeof tokenData === 'object' && 'DATA' in tokenData && 'TOKEN' in tokenData.DATA && 'EXPIRATION' in tokenData.DATA) {\r\n\t\t\t\r\n\t\t\treturn tokenData;\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t\t\r\n\t}\r\n\t\r\n\tpeppermillPreferred.checkForPeppermillPreferredLoginToken\t=\tfunction () {\r\n\t\t\r\n\t\tvar tokenData;\r\n\t\tvar expireDate;\r\n\t\tvar currentDate;\r\n\t\tvar output\t=\tfalse;\r\n\t\t\r\n\t\ttry {\r\n\t\t\t\r\n\t\t\ttokenData\t=\tpeppermillPreferred.getPeppermillPreferredLoginData();\r\n\t\t\t\r\n\t\t\tif (tokenData && 'DATA' in tokenData && 'EXPIRATION' in tokenData.DATA && 'TOKEN' in tokenData.DATA) {\r\n\t\t\t\t\r\n\t\t\t\t//let's check that the expiration hasn't come and gone\r\n\t\t\t\texpireDate\t=\tnew Date(tokenData.DATA.EXPIRATION);\r\n\t\t\t\tcurrentDate\t=\tnew Date();\r\n\t\t\t\t\r\n\t\t\t\tif (expireDate.getTime() < currentDate.getTime()) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//too old...\r\n\t\t\t\t\tremoveCachedData('PEPPERMILL-PREFERRED-LOGIN-TOKEN');\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\t//everything looks good\r\n\t\t\t\t\toutput\t=\ttrue;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t} catch (e) {\r\n\t\t\t\r\n\t\t\tconsole.log(e);\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn output;\r\n\t\t\r\n\t}\r\n\t\r\n\t$(function () {\r\n\t\t\r\n\t\tfunction peppermillPreferredPepvalidateResponseErrorHandler (msg, eleName) {\r\n\t\t\t\r\n\t\t\tconsole.log('peppermillPreferredPepvalidateResponseErrorHandler()', msg, eleName, this);\r\n\t\t\t\r\n\t\t\t$(this)\r\n\t\t\t\t.removeClass('loading')\r\n\t\t\t\t.find('.submit-wrapper')\r\n\t\t\t\t\t.stop(true, true)\r\n\t\t\t\t\t.show();\r\n\t\t\t\r\n\t\t\tif (typeof eleName === 'string') {\r\n\t\t\t\t\r\n\t\t\t\t$(this)\r\n\t\t\t\t\t.find('[name=\"' + eleName + '\"]')\r\n\t\t\t\t\t\t.focus();\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (typeof msg === 'string' && msg.length) {\r\n\t\t\t\t\r\n\t\t\t\tpepNotify.show(15000, msg);\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\tif ('pepvalidateRegisterCallback' in window) {\r\n\t\t\t\r\n\t\t\twindow.pepvalidateRegisterCallback(\r\n\t\t\t\t'PEPPERMILL-PREFERRED-SIGNUP-SUCCESS',\r\n\t\t\t\tfunction (msg, loginToken, loginTokenExpiration) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar dialogCallback\t=\t'';\r\n\t\t\t\t\t\r\n\t\t\t\t\t//cache the login token\r\n\t\t\t\t\tsetCachedData('PEPPERMILL-PREFERRED-LOGIN-TOKEN', {\r\n\t\t\t\t\t\tTOKEN\t\t:\tloginToken,\r\n\t\t\t\t\t\tEXPIRATION\t:\tloginTokenExpiration\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ($(this).data('preferred-callback')) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tdialogCallback\t=\t$(this).data('preferred-callback');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tdialogCallback\t=\t'PEPPERMILL-PREFERRED-CONTINUE-BOOKING-SIGNUP';\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tajaxLinkRegisterCallback(\r\n\t\t\t\t\t\t\tdialogCallback,\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\twindow.location = '/resort/?STR=1';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tshowOverlayDialog({\r\n\t\t\t\t\t\talertMode\t\t:\tfalse,\r\n\t\t\t\t\t\tconfirmAccept\t:\t'CONTINUE',\r\n\t\t\t\t\t\tconfirmDeny\t\t:\t'CLOSE',\r\n\t\t\t\t\t\tconfirmTitle\t:\t'You\\'re All Signed Up!',\r\n\t\t\t\t\t\tconfirmBody\t\t:\tmsg,\r\n\t\t\t\t\t\tcallback\t\t:\tdialogCallback\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\t\r\n\t\t\twindow.pepvalidateRegisterCallback(\r\n\t\t\t\t'PEPPERMILL-PREFERRED-LOGIN-SUCCESS',\r\n\t\t\t\tfunction (msg, loginToken, loginTokenExpiration) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar dialogCallback\t=\t'';\r\n\t\t\t\t\t\r\n\t\t\t\t\t//cache the login token\r\n\t\t\t\t\tsetCachedData('PEPPERMILL-PREFERRED-LOGIN-TOKEN', {\r\n\t\t\t\t\t\tTOKEN\t\t:\tloginToken,\r\n\t\t\t\t\t\tEXPIRATION\t:\tloginTokenExpiration\r\n\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (typeof preferredLoginCallbackSuccess === 'function') {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tpreferredLoginCallbackSuccess.apply(window, [ msg, loginToken, loginTokenExpiration ]);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif ($(this).data('preferred-callback')) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdialogCallback\t=\t$(this).data('preferred-callback');\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\tdialogCallback = 'PEPPERMILL-PREFERRED-CONTINUE-BOOKING-LOGIN';\r\n\t\t\t\t\t\t\tajaxLinkRegisterCallback(\r\n\t\t\t\t\t\t\t\tdialogCallback,\r\n\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\twindow.location = '/resort/?STR=1';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tshowOverlayDialog({\r\n\t\t\t\t\t\t\tconfirmAccept\t:\t'CONTINUE',\r\n\t\t\t\t\t\t\tconfirmDeny\t\t:\t'CLOSE',\r\n\t\t\t\t\t\t\tconfirmTitle\t:\t'You\\'re All Logged In!',\r\n\t\t\t\t\t\t\tconfirmBody\t\t:\tmsg,\r\n\t\t\t\t\t\t\tcallback\t\t:\tdialogCallback\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\t\r\n\t\t\twindow.pepvalidateRegisterCallback(\r\n\t\t\t\t'PEPPERMILL-PREFERRED-SIGNUP-ERROR',\r\n\t\t\t\tpeppermillPreferredPepvalidateResponseErrorHandler\r\n\t\t\t);\r\n\t\t\t\r\n\t\t\twindow.pepvalidateRegisterCallback(\r\n\t\t\t\t'PEPPERMILL-PREFERRED-LOGIN-ERROR',\r\n\t\t\t\tpeppermillPreferredPepvalidateResponseErrorHandler\r\n\t\t\t);\r\n\t\t\t\r\n\t\t\twindow.pepvalidateRegisterCallback(\r\n\t\t\t\t'PEPPERMILL-PREFERRED-RECOVERY-ERROR',\r\n\t\t\t\tpeppermillPreferredPepvalidateResponseErrorHandler\r\n\t\t\t);\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\t//FIND ON-BOARDING FORMS AND DISABLE IF ALREADY LOGGED IN\r\n\t\tvar signupFormNodes = document.querySelectorAll('form.signup-preferred');\r\n\t\tif (signupFormNodes.length && peppermillPreferred.checkForPeppermillPreferredLoginToken()) {\r\n\t\t\t//user is logged in, let's check their token\r\n\t\t\tvar tokenData = peppermillPreferred.getPeppermillPreferredLoginData();\r\n\t\t\tif (false !== tokenData) {\r\n\t\t\t\t//user has login data, let's validate it on the server\r\n\t\t\t\tpeppermillPreferred.getPeppermillPreferredClientID(tokenData.DATA.TOKEN, function (clientCode) {\r\n\t\t\t\t\tsignupFormNodes.forEach(function (formNode) {\r\n\t\t\t\t\t\tvar bodyContainerNode = formNode.closest('.body-container');\r\n\t\t\t\t\t\tif (bodyContainerNode) {\r\n\t\t\t\t\t\t\tvar viewportNode = bodyContainerNode.querySelector('.viewport');\r\n\t\t\t\t\t\t\tvar titleNode = bodyContainerNode.querySelector('.tab-title');\r\n\t\t\t\t\t\t\tif (titleNode && viewportNode) {\r\n\t\t\t\t\t\t\t\tvar newNode = document.createElement('p');\r\n\t\t\t\t\t\t\t\tnewNode.innerHTML = 'You have already signed up and are logged in. To take advantage of your member rates see the \"How It Works\" section below!';\r\n\t\t\t\t\t\t\t\ttitleNode.innerHTML = 'You are already logged in!';\r\n\t\t\t\t\t\t\t\tformNode.style.display = 'none';\r\n\t\t\t\t\t\t\t\tviewportNode.append(newNode);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}, function () {\r\n\t\t\t\t\tconsole.log('ERROR');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t});\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t//SETUP NOTIFICATIONS\r\n\tif (!('pepNotify' in window)) {\r\n\t\t\r\n\t\tif (!$('#notifications').length) {\r\n\t\t\t\r\n\t\t\t$('html')\r\n\t\t\t\t.append('
');\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\twindow.pepNotify\t=\t{\r\n\t\t\tele\t\t\t:\t$('#notifications'),\r\n\t\t\tviewport\t:\t$('#notifications').children('.viewport'),\r\n\t\t\tshow\t\t:\tfunction (duration, msg, type, actionText, actionLink, callback, forceClose) {\r\n\t\t\t\t\r\n\t\t\t\tif (typeof forceClose !== 'boolean')\tvar forceClose\t=\tfalse;\r\n\t\t\t\t\r\n\t\t\t\t//make sure this notification doesn't already exist\r\n\t\t\t\tvar $match\t=\tpepNotify.viewport.children('.notification').filter(function () {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar data\t=\t$(this).data();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\treturn (data.duration === duration && data.msg === msg && data.type === type && data.actionText === actionText && data.actionLink === actionLink);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tif ($match.length) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ($match.find('.count').length === 0) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$match.append('2');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$match\r\n\t\t\t\t\t\t\t\t.find('.count')\r\n\t\t\t\t\t\t\t\t\t.onCSSAnimationEnd(function () {\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$(this).removeClass('bounce');\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.addClass('show bounce');\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}, 50);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$match\r\n\t\t\t\t\t\t\t.find('.count')\r\n\t\t\t\t\t\t\t\t.text(parseInt($match.find('.count').text(), 10) + 1)\r\n\t\t\t\t\t\t\t\t.onCSSAnimationEnd(function () {\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t$(this).removeClass('bounce');\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}).addClass('bounce');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tpepNotify.reset($match);\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvar $ele\t=\t$(pepNotify.buildHTML(msg, type, actionText, actionLink, callback))\r\n\t\t\t\t\t\t\t\t\t.data({\r\n\t\t\t\t\t\t\t\t\t\tduration\t\t:\tduration,\r\n\t\t\t\t\t\t\t\t\t\tmsg\t\t\t\t:\tmsg,\r\n\t\t\t\t\t\t\t\t\t\ttype\t\t\t:\ttype,\r\n\t\t\t\t\t\t\t\t\t\tactionText\t\t:\tactionText,\r\n\t\t\t\t\t\t\t\t\t\tactionLink\t\t:\tactionLink,\r\n\t\t\t\t\t\t\t\t\t\tcallback\t\t:\tcallback,\r\n\t\t\t\t\t\t\t\t\t\tforceClose\t\t:\tforceClose\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\t$ele\r\n\t\t\t\t\t.on('mouseenter', function () {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif ($ele.hasClass('closing')) return;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (!$ele.data('forceClose'))\tclearTimeout($ele.data('timer'));\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$ele.addClass('hover');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('mouseleave', function () {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tpepNotify.activate($ele);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$ele.removeClass('hover');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.find('.action')\r\n\t\t\t\t\t\t.on('click', function (event) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif ($(this).hasClass('close') || $(this).attr('href') === '#')\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$ele.removeClass('hover').addClass('closing');\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tpepNotify.close($ele, true);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tpepNotify.viewport.append($ele);\r\n\t\t\t\t\r\n\t\t\t\tif (pepNotify.viewport.children('.notification').filter('.active').length === 0) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tpepNotify.activate($ele);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}, 50);\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\tclose\t\t:\tfunction ($ele, closeFromClick) {\r\n\t\t\t\tif (typeof closeFromClick !== 'boolean') closeFromClick\t=\tfalse;\r\n\t\t\t\t\r\n\t\t\t\tpepNotify.ele.onCSSTransitionEnd(function () {\r\n\t\t\t\t\tif (!$ele.data('forceClose') && $ele.hasClass('hover') && !$ele.hasClass('closing'))\treturn;\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (typeof $ele.data('callback') === 'function' && (closeFromClick || $ele.data('forceClose')))\t{\r\n\t\t\t\t\t\t$ele.data('callback')();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t$ele.remove();\r\n\t\t\t\t\tpepNotify.rotate();\r\n\t\t\t\t}).removeClass('show');\r\n\t\t\t\t\r\n\t\t\t\t$('html').removeClass('show-notify');\r\n\t\t\t},\r\n\t\t\treset\t\t:\tfunction ($ele) {\r\n\t\t\t\tclearTimeout($ele.data('timer'));\r\n\t\t\t\t\r\n\t\t\t\t$ele.data('timer', setTimeout(function () {\r\n\t\t\t\t\tpepNotify.close($ele);\r\n\t\t\t\t}, $ele.data('duration')));\r\n\t\t\t},\r\n\t\t\tactivate\t:\tfunction ($ele) {\r\n\t\t\t\t\r\n\t\t\t\tif ($ele.hasClass('closing'))\treturn;\r\n\t\t\t\t\r\n\t\t\t\tpepNotify.ele.addClass('show');\r\n\t\t\t\t\r\n\t\t\t\t$('html').addClass('show-notify');\r\n\t\t\t\t\r\n\t\t\t\t$ele.addClass('active').data('timer', setTimeout(function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\tpepNotify.close($ele);\r\n\t\t\t\t\t\r\n\t\t\t\t}, $ele.data('duration')));\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\trotate\t\t:\tfunction () {\r\n\t\t\t\t\r\n\t\t\t\tvar $notifications\t=\tpepNotify.viewport.children('.notification');\r\n\t\t\t\t\r\n\t\t\t\tif ($notifications.length > 0 && $notifications.filter('.active').length === 0) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tpepNotify.activate($notifications.eq(0));\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\tbuildHTML\t:\tfunction (msg, type, actionText, actionLink, actionCallback) {\r\n\t\t\t\t\r\n\t\t\t\tvar html\t=\t'
';\r\n\t\t\t\t\r\n\t\t\t\tif (typeof type === 'string')\thtml\t+=\t'' + type + ' ';\r\n\t\t\t\t\r\n\t\t\t\thtml\t+=\tmsg + '';\r\n\t\t\t\t\r\n\t\t\t\tif (typeof actionText === 'string' && (typeof actionLink === 'string' || typeof actionCallback === 'function'))\t{\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (typeof actionLink !== 'string')\tvar actionLink\t=\t'#';\r\n\t\t\t\t\t\r\n\t\t\t\t\thtml\t+=\t'' + actionText + '';\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\thtml\t+=\t'HIDE';\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\thtml\t+=\t'
';\r\n\t\t\t\t\r\n\t\t\t\treturn html;\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t}\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t//if the user is alreay logged in, setup the UI\r\n\tvar userLoggedIn\t=\tfalse;\r\n\t\r\n\t\r\n})(jQuery, window, document);","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","/*!\r\n * Copyright (C) 2024, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n *\t2024-05-21 (jhoward)\r\n *\t\t- Refactor external link warning code from main.js to ExternalLinkWarning.ts.\r\n */\r\n\r\nimport siteOptions from \"../../../site.options\";\r\n\r\n$(document)\r\n .on(\r\n //@ts-ignore\r\n 'click',\r\n 'a',\r\n function (this: HTMLAnchorElement, event: MouseEvent) {\r\n const anchorHostname = (new URL(this.href)).hostname;\r\n\r\n //first, check if the host is the same as the current host\r\n if (window.location.hostname === anchorHostname && !this.dataset.forceExternal) {\r\n return;\r\n }\r\n\r\n //check if the host is one of our websites\r\n const dialogBody = ((this.dataset.forceExternal || '').toLowerCase() !== 'peppermill' && isExternalHostname(anchorHostname))\r\n ? siteOptions.externalLinkWarning.externalMessage\r\n : siteOptions.externalLinkWarning.internalMessage;\r\n\r\n //now we're dealing with links that need to be confirmed\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n window.showOverlayDialog({\r\n confirmAccept: 'CONTINUE',\r\n confirmTitle: siteOptions.externalLinkWarning.dialogTitle,\r\n confirmBody: dialogBody,\r\n callback: 'EXTERNAL-WEBSITE-WARNING'\r\n }, this);\r\n });\r\n\r\nfunction isExternalHostname(hostname: string): boolean {\r\n if (siteOptions.externalLinkWarning.internalHostnames.includes(hostname)) {\r\n return false;\r\n } else {\r\n for (let i = 0, l = siteOptions.externalLinkWarning.internalHostnames.length; i < l; i++) {\r\n if (\r\n siteOptions.externalLinkWarning.internalHostnames[i].split('.').length === 2\r\n && (\r\n 'dev.' + siteOptions.externalLinkWarning.internalHostnames[i] === hostname\r\n || 'www.' + siteOptions.externalLinkWarning.internalHostnames[i] === hostname\r\n )\r\n ) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\n$(function () {\r\n window.ajaxLinkRegisterCallback(\r\n 'EXTERNAL-WEBSITE-WARNING',\r\n function (this: HTMLAnchorElement) {\r\n window.hideLoader(true, true)\r\n const win = window.open(this.href, '_blank');\r\n if (typeof win === 'undefined' || !win) {\r\n window.location.href = this.href;\r\n } else {\r\n win.focus();\r\n }\r\n }\r\n );\r\n});","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./CookieDisclosure.vue?vue&type=template&id=355f86f4&scoped=true\"\nimport script from \"./CookieDisclosure.vue?vue&type=script&lang=ts\"\nexport * from \"./CookieDisclosure.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CookieDisclosure.vue?vue&type=style&index=0&id=355f86f4&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"355f86f4\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"C:\\\\WebDev\\\\Source\\\\PeppermillReno.com\\\\[DEV]\\\\[WEB] PeppermillReno.com DEV\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('355f86f4')) {\n api.createRecord('355f86f4', component.options)\n } else {\n api.reload('355f86f4', component.options)\n }\n module.hot.accept(\"./CookieDisclosure.vue?vue&type=template&id=355f86f4&scoped=true\", function () {\n api.rerender('355f86f4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"library/js/components/CookieDisclosure.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./PeppermillDialog.vue?vue&type=template&id=0d317d12&scoped=true\"\nimport script from \"./PeppermillDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./PeppermillDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PeppermillDialog.vue?vue&type=style&index=0&id=0d317d12&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d317d12\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"C:\\\\WebDev\\\\Source\\\\PeppermillReno.com\\\\[DEV]\\\\[WEB] PeppermillReno.com DEV\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0d317d12')) {\n api.createRecord('0d317d12', component.options)\n } else {\n api.reload('0d317d12', component.options)\n }\n module.hot.accept(\"./PeppermillDialog.vue?vue&type=template&id=0d317d12&scoped=true\", function () {\n api.rerender('0d317d12', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"library/js/components/peppermill/PeppermillDialog.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ShowOverlayDialog.vue?vue&type=template&id=e1b1a002&scoped=true\"\nimport script from \"./ShowOverlayDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./ShowOverlayDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ShowOverlayDialog.vue?vue&type=style&index=0&id=e1b1a002&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e1b1a002\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"C:\\\\WebDev\\\\Source\\\\PeppermillReno.com\\\\[DEV]\\\\[WEB] PeppermillReno.com DEV\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('e1b1a002')) {\n api.createRecord('e1b1a002', component.options)\n } else {\n api.reload('e1b1a002', component.options)\n }\n module.hot.accept(\"./ShowOverlayDialog.vue?vue&type=template&id=e1b1a002&scoped=true\", function () {\n api.rerender('e1b1a002', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"library/js/components/peppermill/ShowOverlayDialog.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookieDisclosure.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookieDisclosure.vue?vue&type=script&lang=ts\"","import mod from \"-!../../../../node_modules/ts-loader/index.js??clonedRuleSet-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeppermillDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??clonedRuleSet-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeppermillDialog.vue?vue&type=script&lang=ts\"","import mod from \"-!../../../../node_modules/ts-loader/index.js??clonedRuleSet-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowOverlayDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??clonedRuleSet-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowOverlayDialog.vue?vue&type=script&lang=ts\"","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"section\",\n {\n staticClass: \"cookie_disclosure--container\",\n class: _vm.containerClasses,\n },\n [\n _c(\"div\", { staticClass: \"cookie_disclosure--grid\" }, [\n _c(\"div\", [\n _c(\"p\", [\n _vm._v(\n \"Our website uses cookies to improve your experience and personalize content.\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Some cookies may collect personal data, which we use in accordance with our privacy policy.\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"You can manage your cookie preferences using the buttons here. You can \"\n ),\n _c(\"a\", { attrs: { href: _vm.privacyPolicyPath } }, [\n _vm._v(\"view our privacy policy here.\"),\n ]),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"cookie_disclosure--button_container\" }, [\n _c(\n \"a\",\n {\n staticClass:\n \"cookie_disclosure--button cookie_disclosure--button-all\",\n class: {\n \"cookie_disclosure--button-disabled\": _vm.isAllCookiesDisabled,\n },\n attrs: { href: \"#\" },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setUserSetting(\"all\")\n },\n },\n },\n [_vm._v(\"\\n ALL COOKIES\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"cookie_disclosure--button\",\n class: {\n \"cookie_disclosure--button-disabled\":\n _vm.isRequiredCookiesDisabled,\n },\n attrs: { href: \"#\" },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setUserSetting(\"required\")\n },\n },\n },\n [_vm._v(\"\\n REQUIRED COOKIES\\n \")]\n ),\n ]),\n ]),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\"div\", [\n _c(\n \"div\",\n {\n ref: \"dialog\",\n staticClass: \"dialog--container\",\n class: _vm.containerClasses,\n attrs: { role: \"dialog\", \"aria-label\": _vm.title, tabindex: \"0\" },\n on: {\n transitionend: _vm.handleContainerTransitionEnd,\n click: function ($event) {\n $event.stopPropagation()\n },\n },\n },\n [\n _vm.title.length\n ? _c(\"h3\", { ref: \"title\" }, [_vm._v(_vm._s(_vm.title))])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n ref: \"body\",\n staticClass: \"dialog--body\",\n style: { \"max-height\": _vm.bodyMaxHeight },\n },\n [_vm._t(\"body\")],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { ref: \"actions\", staticClass: \"layout--actions dialog--actions\" },\n [\n !_vm.isAlert\n ? _c(\n \"a\",\n {\n staticClass: \"dialog--deny\",\n attrs: { href: \"#\" },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.$emit(\"cancel\")\n },\n },\n },\n [_vm._v(_vm._s(_vm.labelDeny))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"dialog--accept\",\n attrs: { href: \"#\" },\n on: {\n click: function ($event) {\n $event.preventDefault()\n _vm.$emit(\"submit\", _vm.getDialogFormData())\n },\n },\n },\n [_vm._v(_vm._s(_vm.labelConfirm))]\n ),\n ]\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"dialog--overlay\",\n class: _vm.overlayClasses,\n on: {\n click: function ($event) {\n $event.stopPropagation()\n return _vm.$emit(\"close\")\n },\n },\n }),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n { staticClass: \"show_overlay_dialog--container\" },\n [\n !!_vm.dialogOptions\n ? _c(\"peppermill-dialog\", {\n ref: \"dialog\",\n attrs: {\n title: _vm.options.confirmTitle,\n \"label-confirm\": _vm.options.confirmAccept,\n \"label-deny\": _vm.options.confirmDeny,\n \"is-alert\": _vm.options.alertMode,\n active: _vm.isActive,\n \"link-ele\": _vm.dialogLinkElement,\n wide: _vm.options.isWideUi,\n \"hide-overlay\": _vm.options.isOverlayHidden,\n },\n on: {\n close: function ($event) {\n _vm.isActive = false\n },\n submit: _vm.handleCallback,\n cancel: _vm.handleCallbackDeny,\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"body\",\n fn: function () {\n return [\n _c(\"div\", {\n domProps: { innerHTML: _vm._s(_vm.dialogBody) },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 4183231633\n ),\n })\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\r\n * Copyright (C) 2024, Peppermill Inc.\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are not permitted.\r\n *//*\r\n *\t2024-05-21 (jhoward)\r\n *\t\t- Add site.options.js to store site-specific options.\r\n *\r\n *\t2024-05-21 (jhoward)\r\n *\t\t- Add XDine hostnames to externalLinkWarning.internalHostnames in site.options.js.\r\n */\r\nexport default {\r\n externalLinkWarning: {\r\n enable: true,\r\n externalMessage: 'Peppermill is not responsible for the content of this external site.',\r\n internalMessage: 'You will be redirected to another of our websites.',\r\n dialogTitle: 'You are now exiting PeppermillReno.com',\r\n internalHostnames: [\r\n //booking hostnames\r\n 'reserve1.peppermillcas.com',\r\n 'reserve2.peppermillcas.com',\r\n 'reserve3.peppermillcas.com',\r\n 'booking.peppermillreno.com',\r\n 'devbooking.peppermillreno.com',\r\n 'booking.wvsparks.com',\r\n 'devbooking.wvsparks.com',\r\n 'booking.wendoverfun.com',\r\n 'devbooking.wendoverfun.com',\r\n\r\n //main website hostnames\r\n 'peppermillreno.com',\r\n 'westernvillagesparks.com',\r\n 'wvsparks.com',\r\n 'wendoverfun.com',\r\n 'apply.wendoverfun.com',\r\n 'peppermillnightlife.com',\r\n 'peppermillcareers.com',\r\n 'peppermillresorts.com',\r\n 'peppermilllasvegas.com',\r\n\r\n //xdine\r\n 'peppermillchi.xdineapp.com',\r\n 'peppermilloceano.xdineapp.com',\r\n 'peppermillcafemilano.xdineapp.com',\r\n 'peppermillbiscottis.xdineapp.com',\r\n 'peppermillsportsdeli.xdineapp.com',\r\n 'peppermillsabrosotaqueria.xdineapp.com',\r\n ]\r\n }\r\n};","import Vue from \"vue/dist/vue.esm\";\r\nimport CookieDisclosure from \"./library/js/components/CookieDisclosure.vue\";\r\nimport ShowOverlayDialog from \"./library/js/components/peppermill/ShowOverlayDialog.vue\";\r\n\r\nrequire('./library/js/pepvalidate-3');\r\nrequire('./library/js/preferred-club');\r\n\r\nrequire('./library/js/main');\r\n\r\nVue.component('cookie-disclosure', CookieDisclosure);\r\nVue.component('show-overlay-dialog', ShowOverlayDialog);\r\n\r\nwindow.cookieDisclosureVueApp = new Vue()\r\n .$mount(\"#cookie_disclosure_vue_app\");\r\n\r\nwindow.showOverlayDialogApp = new Vue()\r\n .$mount(\"#show_overlay_dialog_app\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"main\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpeppermillreno_com_dev\"] = self[\"webpackChunkpeppermillreno_com_dev\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [\"vue\"], () => (__webpack_require__(\"./webpack-main.js\")))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"vue\"], () => (__webpack_require__(\"./webpack-main.css\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""}