{"version":3,"sources":["src/js/app.js","src/js/controllers.js","src/js/authorization.component.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3tJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"main.js","sourcesContent":["var membershipApp = angular.module('membershipApp', ['ngSanitize', 'ngCookies', 'pascalprecht.translate', 'angularUtils.directives.dirPagination', 'scheduleApp'])\r\n\r\nmembershipApp.config(['$httpProvider', '$translateProvider', function ($httpProvider, $translateProvider) {\r\n\t $httpProvider.defaults.timeout = 5000;\r\n\r\n\t \r\n\t //$translateProvider.translations('en', dictEN)\r\n\t // .translations('bg', dictBG);\r\n\r\n\t // $translateProvider.preferredLanguage('bg');\r\n\r\n\t$translateProvider.fallbackLanguage('bg');\r\n\t$translateProvider.registerAvailableLanguageKeys(['bg', 'en', 'es', 'esc'], {\r\n\t\t'bg_*': 'bg',\r\n\t\t'en_*': 'en',\r\n\t\t'es_*': 'es',\r\n\t\t'esc_*': 'esc'\r\n\t});\r\n\r\n\tvar ob_bg;\r\n\tvar ob_en;\r\n\tvar ob_es;\r\n\tvar ob_esc;\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/bg.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_bg = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/en.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_en = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/es.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_es = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/esc.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_esc = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$translateProvider.translations('en', ob_en);\r\n\t$translateProvider.translations('bg', ob_bg);\r\n\t$translateProvider.translations('es', ob_es);\r\n\t$translateProvider.translations('esc', ob_esc);\r\n\r\n\t$translateProvider.preferredLanguage('bg');\r\n\t$translateProvider.preferredLanguage('en');\r\n\t$translateProvider.useLocalStorage();\r\n\t\r\n\r\n}]);\r\n\r\nvar scheduleApp = angular.module('scheduleApp', ['ngSanitize', 'pascalprecht.translate'])\r\n\r\nscheduleApp.config(['$httpProvider', '$translateProvider', function ($httpProvider, $translateProvider) {\r\n\t$httpProvider.defaults.timeout = 5000;\r\n\t \r\n\t//$translateProvider.translations('en', dictEN)\r\n\t// .translations('bg', dictBG);\r\n\r\n\t//$translateProvider.preferredLanguage('bg');\r\n\r\n\t$translateProvider.fallbackLanguage('en');\r\n\t$translateProvider.registerAvailableLanguageKeys(['bg', 'en', 'es', 'esc'], {\r\n\t\t'bg_*': 'bg',\r\n\t\t'en_*': 'en',\r\n\t\t'es_*': 'es',\r\n\t\t'esc_*': 'esc'\r\n\t});\r\n\r\n\tvar ob_bg;\r\n\tvar ob_en;\r\n\tvar ob_es;\r\n\tvar ob_esc;\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/bg.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_bg = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/en.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_en = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/es.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_es = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$.ajax({\r\n\t\tasync: false,\r\n\t\turl: \"../frontend/customersportal/src/translate/esc.json\",\r\n\t\tsuccess: function (json) {\r\n\t\t\tob_esc = json;\r\n\t\t}\r\n\t});\r\n\r\n\t$translateProvider.translations('en', ob_en);\r\n\t$translateProvider.translations('es', ob_es);\r\n\t$translateProvider.translations('esc', ob_esc);\r\n\t$translateProvider.translations('bg', ob_bg);\r\n\r\n\t$translateProvider.preferredLanguage('bg');\r\n\t$translateProvider.preferredLanguage(lang);\r\n\r\n }]);\r\n\r\n\r\n$(window).on('load', function(){\r\n\tvar link = location.href.split('/').pop();\r\n\tlink = link.split('?');\r\n\tlink = link[0].toLowerCase();\r\n\t$('.nav li[data-link=\"' + link + '\"]').addClass('active');\r\n\r\n\tsetTimeout(function() {\r\n\t\t$('body').addClass('loaded');\r\n\t}, 500);\r\n\r\n\t$('.menu-trigger').on('click', function(e){\r\n\t\te.preventDefault();\r\n\r\n\t\t$('.mobile-menu .nav li.has-submenu').removeClass('open-submenu');\r\n\t\t$('body').toggleClass('show-menu');\r\n\t});\r\n\r\n\t$('.nav > ul > li.has-submenu > a').on('click', function(e){\r\n\t\tvar li = $(this).parent('li');\r\n\t\tif( !li.is('.open-submenu') ){\r\n\t\t\te.preventDefault();\r\n\t\t\tli.addClass('open-submenu').siblings('li.open-submenu').removeClass('open-submenu');\r\n\t\t}\r\n\t})\r\n})","\r\n\"use strict\";\r\n\r\nmembershipApp.controller('MembershipController', ['$scope', '$http', '$timeout', '$translate', '$filter', function ($scope, $http, $timeout, $translate, $filter) {\r\n\tif (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n\t\t$('.logout').on('click', function () {\r\n\t\t\t$('.logout').toggleClass('active');\r\n\t\t});\r\n\r\n\t\t$('body').addClass('mobile')\r\n\t}\r\n\r\n\tvar $translateThis = $filter('translate');\r\n\t$scope.order = { orderZone: $scope.cardZone, orderCard: $scope.cardType };\r\n\tvar today = new Date();\r\n\tvar dd = today.getDate();\r\n\tvar mm = today.getMonth() + 1;\r\n\tvar yyyy = today.getFullYear();\r\n\tvar lastYear = today.getFullYear() - 1;\r\n\tvar nextYear = today.getFullYear() +\t 1;\r\n\tvar last100Year = today.getFullYear() - 100;\r\n\t$scope.newRegistration = false;\r\n\t$scope.dashLogin = true;\r\n\t$scope.visitsItemsSize = 10;\r\n\t$scope.productsItemsSize = 10;\r\n\t$scope.choosenMembership = false;\r\n\tconst lastLang = getCookie('setLang');\r\n\r\n\tvar startYear = new Date().getFullYear().toString().substr(-2);\r\n var currentYear = new Number(startYear);\r\n currentYear += 20;\r\n $scope.years = [];\r\n\r\n while (startYear <= currentYear) {\r\n $scope.years.push(startYear++);\r\n }\r\n\r\n\t$(window).on('resize load', function(){\r\n\t\tif ( $(window).width() < 768 ){\r\n\t\t\t$scope.visitsItemsSize = 3;\r\n\t\t\t$scope.productsItemsSize = 3;\t\t\t\r\n\t\t}else{\r\n\t\t\t$scope.visitsItemsSize = 10;\r\n\t\t\t$scope.productsItemsSize = 10;\r\n\t\t}\r\n\t\t$scope.$apply();\r\n\t})\r\n\r\n\tif ( isMobile ){\r\n\t\t$scope.mobileApp = isMobile;\r\n\t}\r\n\r\n\tif ( lang ){\r\n\t\t$translate.use(lang);\r\n\t}\r\n\r\n\t$scope.text = 'me@example.com';\r\n\t$scope.emailFormat = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\n\tif (dd < 10) {\r\n\t\tdd = '0' + dd\r\n\t}\r\n\r\n\tif (mm < 10) {\r\n\t\tmm = '0' + mm\r\n\t}\r\n\r\n\ttoday = mm + '/' + dd + '/' + yyyy;\r\n\ttodayOneYearAgo = mm + '/' + dd + '/' + lastYear;\r\n\ttodayPlusOneYear = mm + '/' + dd + '/' + nextYear;\r\n\ttodayOneHundredYearAgo = mm + '/' + dd + '/' + last100Year;\r\n\r\n\tif( $scope.mobileApp ){\r\n\t\t$scope.filterStartDate = new Date(todayOneYearAgo);\r\n\t\t$scope.filterEndDate = new Date(today);\r\n\t}\r\n\r\n\t// $scope.showLogin = function () {\r\n\t// \t$scope.dashLogin = true;\r\n\t// }\r\n\t// $scope.showLogin();\r\n\r\n\t// $scope.hideLogin = function () {\r\n\t// \t$scope.dashLogin = false;\r\n\t// }\r\n\r\n\tif (newRegistration) {\r\n\t\t$scope.newRegistration = true;\r\n\t}\r\n\r\n\tvar paysafeinit = false;\r\n\tvar Model = window.Model;\r\n\r\n\tif (clientModel) {\r\n\t\t$scope.Model = clientModel;\r\n\t\t$scope.Client = $scope.Model.Client;\r\n\r\n\t\tif ($scope.Model.Register) {\r\n\t\t\t$scope.FormRegister = $scope.Model.Register;\r\n\t\t}\r\n\t}\r\n\r\n\tif (gymdivision) {\r\n\t\t$scope.Division = gymdivision.GymName;\r\n\t\t$scope.DivisionID = gymdivision.GymID;\r\n\t\tvar $translateThis = $filter('translate');\r\n\t\tvar title = $translateThis('title');\r\n\t\tdocument.title = $scope.Division + ' ' + title;\r\n\t}\r\n\r\n\r\n\t$scope.dateFeaturedFormat = 'dd/MM/yyyy';\r\n\t$scope.dateFeaturedFormatDatepicker = 'dd/mm/yy';\r\n\tif (gym) {\r\n\t\t$scope.gym = gym;\r\n\t\t$scope.gymName = $scope.gym.GymName;\r\n\t\t$scope.AdditionInfo;\r\n\t\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\r\n\t\tif ($scope.currentLang == 'bg') {\r\n\t\t\t$scope.AdditionInfo = $scope.gym[0].AdditionalInformation;\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['bg']);\r\n\t\t}else if($scope.currentLang == 'es' || $scope.currentLang == 'esc'){\r\n\t\t\t$scope.AdditionInfo = $scope.gym[0].AddditionalInformationEN;\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['es']);\r\n\t\t}else{\r\n\t\t\t$scope.AdditionInfo = $scope.gym[0].AddditionalInformationEN;\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['en']);\r\n\t\t}\r\n\r\n\r\n\t\tif ($scope.AdditionInfo) {\r\n\t\t\tvar prtext = $scope.AdditionInfo.replace(/\\n/g, '
')\r\n\t\t\t$(window).on('load', function () {\r\n\t\t\t\t$('.section-addtext').html(prtext);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ( gym[0].Culture == 'en-US' ) {\r\n\t\t\t$scope.dateFeaturedFormat = 'MM/dd/yyyy';\r\n\t\t\t$scope.dateFeaturedFormatDatepicker = 'mm/dd/yy';\r\n\t\t}\r\n\t\t\r\n\t\tif (!lastLang && gym[0].Culture) {\r\n\t\t\tif (gym[0].Culture.includes('-ES') ) {\r\n\t\t\t\tif (gym[0].Culture == 'ca-ES' || gym[0].Culture == 'ca-ES-valencia') {\r\n\t\t\t\t\t$translate.use('esc');\r\n\t\t\t\t\t$scope.currentLang = 'esc';\t\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$translate.use('es');\r\n\t\t\t\t\t$scope.currentLang = 'es';\r\n\t\t\t\t}\r\n\t\t\t}else if (gym[0].Culture == 'bg-BG'){\r\n\t\t\t\t$translate.use('bg');\r\n\t\t\t\t$scope.currentLang = 'bg';\r\n\t\t\t}else{\r\n\t\t\t\t$translate.use('en');\r\n\t\t\t\t$scope.currentLang = 'en';\t\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (learnedFrom) {\r\n\t\t$scope.learnedFrom = learnedFrom\r\n\t}\r\n\r\n\t$scope.getClientServices = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tEmail: $scope.Client.Email,\r\n\t\t\tdatestart: today,\r\n\t\t\tdateend: todayPlusOneYear\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl:'/ScheduleV2/GetClientSchedule',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tif ( data.length == 0 ) {\r\n\t\t\t\t$scope.noEvents = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t$scope.noEvents = false;\t\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t// Clients Portal - Language Switch\r\n\t$scope.$on('$translateChangeSuccess', function (event, current, previous) {\r\n\t\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\t});\r\n\r\n\t$scope.changeLanguage = function (lang) {\r\n\t\t$translate.use(lang);\r\n\t\t$scope.currentLang = lang;\r\n\r\n\t\tsetCookie('setLang', lang);\r\n\t\t// if (lang == 'en' || lang == 'bg') {\r\n\t\t// }\r\n\t}\r\n\r\n\t// Cients Portal Filter \r\n\tvar from = $(\"#from\");\r\n\tvar to = $(\"#to\");\r\n\r\n\t$scope.getItemsFromThePast = function (item) {\r\n\t\tvar today = new Date();\r\n\t\treturn item.date < today;\r\n\t}\r\n\r\n\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\r\n\tfrom.datepicker({\r\n\t\tchangeMonth: true,\r\n\t\tnumberOfMonths: 1,\r\n\t\tdateFormat: $scope.dateFeaturedFormatDatepicker,\r\n\t\tonSelect: function (dateText, inst) {\r\n\t\t\tvar origin_date = $(this).val();\r\n\r\n\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = origin_date.split(\"/\");\r\n\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t}\r\n\r\n\t\t\t$scope.filterStartDate = date;\r\n\t\t\tto.datepicker(\"option\", \"minDate\", origin_date);\r\n\t\t}\r\n\t});\r\n\r\n\tto.datepicker({\r\n\t\tchangeMonth: true,\r\n\t\tnumberOfMonths: 1,\r\n\t\tdateFormat: $scope.dateFeaturedFormatDatepicker,\r\n\t\t// dateFormat: 'mm.dd.yy',\r\n\t\tonSelect: function (dateText, inst) {\r\n\t\t\tvar origin_date = $(this).val();\r\n\r\n\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = origin_date.split(\"/\");\r\n\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t}\r\n\r\n\t\t\t$scope.filterEndDate = date;\r\n\t\t\tfrom.datepicker(\"option\", \"maxDate\", origin_date);\r\n\t\t}\r\n\t});\r\n\r\n\t// Clients Portal - Language Switch on Additional Text\r\n\t$('.lang-nav a').on('click', function (e) {\r\n\t\tvar lang = $(this).data('lang');\r\n\r\n\t\tif (lang == 'bg') {\r\n\t\t\t$scope.AdditionInfo = $scope.gym[0].AdditionalInformation;\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['bg']);\r\n\t\t}else if(lang == 'es' || lang == 'esc'){\r\n\t\t\t$scope.AdditionInfo = $scope.gym[0].AddditionalInformationEN;\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['es']);\r\n\t\t}else{\r\n\t\t\t$scope.AdditionInfo = $scope.gym[0].AddditionalInformationEN;\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['en']);\r\n\t\t}\r\n\r\n\t\tif ($scope.gym[0].Culture == 'en-US') {\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker( \"option\", \"dateFormat\", \"mm/dd/yy\" );\r\n\t\t} else {\r\n\t\t\t$('#from, #to, #schedule_to, #schedule_from').datepicker( \"option\", \"dateFormat\", \"dd/mm/yy\" );\r\n\t\t}\r\n\r\n\t\tif ($scope.AdditionInfo) {\r\n\t\t\tvar prtext = $scope.AdditionInfo.replace(/\\n/g, '
')\r\n\t\t\t$('.section-addtext').html(prtext);\r\n\t\t}\r\n\t})\r\n\r\n\t// Tabs\r\n\t$('#mytabs .nav-tabs a').click(function (e) {\r\n\t\te.preventDefault()\r\n\t\t$(this).tab('show')\r\n\t});\r\n\r\n\t// Rate function\r\n\t$scope.rate = function (rate, comment) {\r\n\t\tvar dataObject = {\r\n\t\t\tRating: rate,\r\n\t\t\tClientID: $scope.Client.ClientID,\r\n\t\t\tComment: comment,\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: $scope.gymId,\r\n\t\t\tVisitID: $scope.visitId,\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/rating/RateVisit',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$('.popup-wrapper').removeClass('show');\r\n\t\t}).error(function () {\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.dateFilter = function (from, to) {\r\n\t\tvar fromT = new Date(from);\r\n\t\tvar toT = new Date(to);\r\n\t\ttoT.setHours(23, 59, 0, 0);\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tClientID: $scope.Client.ClientID,\r\n\t\t\tCardID: $scope.Client.CardID,\r\n\t\t\tEmail: $scope.Client.Email,\r\n\t\t\tDateStart: fromT,\r\n\t\t\tDateEnd: toT,\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid,\r\n\t\t}\r\n\r\n\t\t$scope.paging = [];\r\n\t\t$scope.products_paging = [];\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/account/GetReport',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.visits = data.Visits;\r\n\t\t\t$scope.memberships = data.PastServices;\r\n\t\t\t$scope.products = data.Products;\r\n\t\t\t$scope.Services = data.Services;\r\n\t\t\t$scope.Deposit = data.Deposit;\r\n\r\n\t\t\tif ($scope.Services.length > 0) {\r\n\t\t\t\t$scope.activeServices = false;\r\n\t\t\t} else {\r\n\t\t\t\t$scope.activeServices = true;\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\t\t});\r\n\t}\r\n\r\n\t$(window).on('load', function () {\r\n\t\tif ($('.dashboard').length) {\r\n\r\n\t\t\t$(\".membership-wrapper\").addClass('show-forgetme');\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$scope.dateFilter(todayOneYearAgo, today);\r\n\t\t\t}, 1500);\r\n\t\t}\r\n\t\t// if ( $scope.Client ) {\r\n\t\t// \t$scope.getClientServices();\r\n\t\t// }\r\n\r\n\r\n\t\t// console.log($scope.currentLang);\r\n\t\t// let phoneLang = $scope.currentLang == 'en' ? 'gb' : $scope.currentLang;\r\n\t\t// console.log(phoneLang);\r\n\r\n\t\t// $('#RegPhone').intlTelInput({\r\n\t // autoHideDialCode: false,\r\n\t // preferredCountries: [phoneLang],\r\n\t // separateDialCode: true\r\n\t // });\r\n\t})\r\n\r\n\t// Popup\r\n\t$('.popup-wrapper .close').on('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$('.popup-wrapper').removeClass('show');\r\n\t})\r\n\r\n\t$scope.popupOpen = function (visitId, gymId) {\r\n\t\t$('.popup-wrapper[data-id=\"rateVisit\"]').addClass('show');\r\n\t\t$scope.visitId = visitId;\r\n\t\t$scope.gymId = gymId;\r\n\t}\r\n\r\n\t$('.calendar-filter .field i').on('click', function (e) {\r\n\t\t$(this).parent().find('input').datepicker('show');\r\n\t});\r\n\r\n\t// Get Settings\r\n\r\n\tif (namespace) {\r\n\t\t$scope.getSettings = function () {\r\n\t\t\tvar dataObject = {\r\n\t\t\t Namespace: namespace,\r\n\t\t\t GymID: $scope.DivisionID\r\n\t\t\t}\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/Membership/GetSettings',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\t$scope.membershipSettings = data;\r\n\t\t\t\t$scope.countriesSettings = data.Countries;\r\n\r\n\t\t\t\tif ($scope.membershipSettings.Culture == 'bg-BG') {\r\n\t\t\t\t\t$scope.currency = 'лв.';\r\n\t\t\t\t}else if($scope.membershipSettings.Culture.includes('-ES')){\r\n\t\t\t\t\t$scope.currency = 'eur';\r\n\t\t\t\t}else {\r\n\t\t\t\t\t$scope.currency = '$';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (customCurrency) {\r\n\t\t\t\t\t$scope.currency = customCurrency;\r\n\t\t\t\t}\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$scope.getSettings();\r\n\t}\r\n\r\n\t// Index forms\r\n\r\n\t// Register\r\n\r\n\t$scope.accRegister = function () {\r\n\t\t$scope.loading = true;\r\n\t\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\r\n\t\tvar gymid = $('#accGymID').val();\r\n\t\tvar namespace = $('#Namespace').val();\r\n\t\tvar regbirthdate = $('#RegBirthdate').val();\r\n\t\tvar res = regbirthdate.split(\"/\");\r\n\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\tvar intlNumber = $(\".flag-container .selected-dial-code\").html() + $('#RegPhone').val();\r\n\r\n\t\tif ($scope.gym[0].Culture == 'en-US') {\r\n\t\t\tdate = regbirthdate;\r\n\t\t} else {\r\n\t\t\tdate = date;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tRegEmail: $('#RegEmail').val(),\r\n\t\t\tRegPassword: $('#RegPassword').val(),\r\n\t\t\tRegConfirmPassword: $('#RegConfirmPassword').val(),\r\n\t\t\tRegFirstName: $('#RegFirstName').val(),\r\n\t\t\tRegLastName: $('#RegLastName').val(),\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tMale: $scope.regSexRadio,\r\n\t\t\tTelephone: intlNumber,\r\n\t\t\tDivisionID: $('#RegGym').val(),\r\n\t\t\tBirthdate: date,\r\n\t\t\tLearnedFrom: $('#RegLearnedFrom').val(),\r\n\t\t\tWorkAddress: $('#RegWorkAddress').val(),\r\n\t\t\tRecommendBy: $('#RegRecommendBy').val()\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/account/register/',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\t\t\tvar currentHref = window.location;\r\n\t\t\tvar href = currentHref.origin + '/Account/ConfirmYourEmail?nameSpace=' + namespace + '&gymId=' + gymid;\r\n\t\t\tif ( isMobile == true ) {\r\n\t\t\t\thref += '&isMobile=true';\r\n\t\t\t}\t\r\n\r\n\t\t\tif (data == 'Success') {\r\n\t\t\t\twindow.location.replace(href);\r\n\t\t\t} else {\r\n\t\t\t\tvar n = data.search(\"com is already taken\");\r\n\r\n\t\t\t\tif (n > 0) {\r\n\t\t\t\t\tvar translated = $translateThis('User Taken');\r\n\t\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar res = data.split(\".\");\r\n\r\n\t\t\t\t\tif (res.length > 2) {\r\n\t\t\t\t\t\t$('.validation-errors').html('
');\r\n\t\t\t\t\t\tfor (var i = 0; i < res.length - 1; i++) {\r\n\t\t\t\t\t\t\tvar msg = res[i] + '.';\r\n\t\t\t\t\t\t\tvar translated = $translateThis(msg);\r\n\t\t\t\t\t\t\t$('.validation-errors .section-valid').append('

' + translated + '

');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar translated = $translateThis(data);\r\n\t\t\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$scope.loading = false;\r\n\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t};\r\n\r\n\r\n\t// Login\r\n\r\n\t$scope.accLogin = function () {\r\n\r\n\t\t$scope.loading = true;\r\n\r\n\t\tvar gymid = $('#accGymID').val();\r\n\t\tvar namespace = $('#Namespace').val();\r\n\r\n\t\tvar email = $('#Email').val();\r\n\t\temail = email.replace(/ /g,'');\r\n\t\tvar password = $('#Password').val();\r\n\t\tvar rememberme = $('#rememberMe').val();\r\n\r\n\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tEmail: email,\r\n\t\t\tPassword: password,\r\n\t\t\tRememberMe: rememberme,\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/account/login/',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\t\t\tvar currentHref = window.location;\r\n\t\t\tvar href = currentHref.origin + '/Account/Dashboard?nameSpace=' + namespace + '&gymId=' + gymid;\r\n\t\t\tif ( isMobile == true ) {\r\n\t\t\t\thref += '&isMobile=true';\r\n\t\t\t}\r\n\r\n\t\t\tif (data == 'Success') {\r\n\t\t\t\twindow.location.replace(href);\r\n\t\t\t} else {\r\n\t\t\t\tvar translated = $translateThis(data);\r\n\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t}\r\n\t\t\t$scope.loading = false;\r\n\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t};\r\n\r\n\r\n\t// ForgotPassword\r\n\t$scope.accForgotPassword = function () {\r\n\t\t$scope.loading = true;\r\n\t\tvar gymid = $('#accGymID').val();\r\n\t\tvar namespace = $('#accNamespace').val();\r\n\t\tvar email = $('#Email').val();\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tEmail: email,\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/account/forgotpassword/',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\r\n\t\t\tif (data == 'Success') {\r\n\t\t\t\tvar translated = $translateThis('SuccessPass');\r\n\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t} else {\r\n\t\t\t\tvar translated = $translateThis(data);\r\n\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t}\r\n\r\n\t\t\t$scope.loading = false;\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\tif ($('.section-authorize').is('.resetPassword')) {\r\n\t\t$scope.matchingPassword = false;\r\n\t\t$('#Password, #ConfirmPassword').on('keyup', function () {\r\n\t\t\tif ($('#Password').val() == $('#ConfirmPassword').val()) {\r\n\t\t\t\t$('.validation-errors').html('');\r\n\t\t\t\t$scope.matchingPassword = true;\r\n\t\t\t} else {\r\n\t\t\t\tvar translated = $translateThis('notMaching');\r\n\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t\t$scope.matchingPassword = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tif (code) {\r\n\t\t$scope.code = code;\r\n\t}\r\n\r\n\t$scope.resetSuccess = false;\r\n\t$scope.resetPasswordRelocate = function(){\r\n\t\tvar currentHref = window.location;\r\n\t\tvar href = currentHref.origin + '/Account/index?nameSpace=' + namespace + '&gymId=' + $scope.DivisionID;\r\n\t\tif ( isMobile == true ) {\r\n\t\t\thref += '&isMobile=true';\r\n\t\t}\r\n\r\n\t\twindow.location.replace(href);\r\n\t}\r\n\r\n\t// ResetPassword\r\n\t$scope.resetPassword = function () {\r\n\t\tif ($scope.matchingPassword == true) {\r\n\t\t\t$scope.loading = true;\r\n\r\n\t\t\tvar namespace = $('#accNamespace').val();\r\n\t\t\tvar email = $('#Email').val();\r\n\t\t\tvar password = $('#Password').val();\r\n\t\t\tvar confirmPassword = $('#ConfirmPassword').val();\r\n\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tEmail: email,\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tConfirmPassword: confirmPassword,\r\n\t\t\t\tPassword: password,\r\n\t\t\t\tCode: $scope.code\r\n\t\t\t}\r\n\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/account/resetpassword/',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\tvar data = data;\r\n\r\n\t\t\t\tif (data == 'Success') {\r\n\t\t\t\t\t$scope.resetSuccess = true;\r\n\t\t\t\t\t// window.location.replace(href);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar translated = $translateThis(data);\r\n\t\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t\t}\r\n\t\t\t\t$scope.loading = false;\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.changePassword = function(){\r\n\t\tif ($scope.matchingPassword == true) {\r\n\t\t\t$scope.loading = true;\r\n\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tGymID: $('#accGymID').val(),\r\n\t\t\t\tNamespace: $('#accNamespace').val(),\r\n\t\t\t\tOldPassword: $('#OldPassword').val(),\r\n\t\t\t\tNewPassword: $('#Password').val()\r\n\t\t\t}\r\n\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/account/changepassword/',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\tvar data = data;\r\n\t\t\t\tvar translated = $translateThis(data);\r\n\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t\t\r\n\t\t\t\tif (data == 'Success') {\r\n\t\t\t\t\t$('.validation-errors .section-valid').addClass('success');\r\n\t\t\t\t}\r\n\t\t\t\t$scope.loading = false;\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t// Get Gyms\r\n\t$scope.getGyms = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/GetGyms',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.membershipGyms = data;\r\n\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getGyms();\r\n\r\n\tif (result) {\r\n\t\t$scope.cancelResult = result;\r\n\t}\r\n\r\n\r\n\tfunction setCookie(key, value) {\r\n\t\tvar val = value;\r\n\t\tvar expires = new Date();\r\n\t\texpires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));\r\n\t\tdocument.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + ';path=/';\r\n\t\tif (val != \"true\") {\r\n\t\t\t$('body').addClass('pound-currency');\r\n\t\t} else {\r\n\t\t\t$('body').removeClass('pound-currency');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getCookie(key) {\r\n\t\tvar keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');\r\n\t\treturn keyValue ? keyValue[2] : null;\r\n\t}\r\n\r\n\t$scope.redirectLogin = function () {\r\n\t\tvar href = window.location;\r\n\t\tvar currentHref = href.origin + '/Account?nameSpace=' + namespace + '&gymId=' + $scope.DivisionID;\r\n\t\tif ( isMobile == true ) {\r\n\t\t\tcurrentHref += '&isMobile=true';\r\n\t\t}\r\n\t\tvar date = $('.step .membersip-card.checked .more-info .info-action input').val();\r\n\t\tsetCookie('setUrl', href);\r\n\t\tsetCookie('setDate', date);\r\n\t\twindow.location.replace(currentHref);\r\n\t}\r\n\t// PrintClientInfoReport(int ClientID, DateTime DateStart, DateTime DateEnd, int GymID, string AppKey)\r\n\r\n\t// Get getPrint\r\n\t$scope.getPrint = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tClientID: $scope.Client.ClientID,\r\n\t\t\tDateStart: todayOneHundredYearAgo,\r\n\t\t\tDateEnd: today,\r\n\t\t\tGymID: gymid,\r\n\t\t\tNamespace: namespace\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Account/PrintClientInfoReport',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tif ( data ){\r\n\t\t\t\tvar membershipPrint = data;\r\n\t\t\t\twindow.location.replace(membershipPrint);\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t// Get getPrint\r\n\t$scope.forgetAboutMe = function () {\r\n\r\n\t\tvar href = window.location;\r\n\t\tvar currentHref = href.origin + '/Account?nameSpace=' + namespace + '&gymId=' + $scope.DivisionID;\r\n\t\tif ( isMobile == true ) {\r\n\t\t\tcurrentHref += '&isMobile=true';\r\n\t\t}\r\n\r\n\t\tvar forgetAboutMe1 = 'Forgotten';\r\n\t\tvar forgetAboutMe2 = 'Customer';\r\n\r\n\t\tif ($scope.currentLang = 'bg') {\r\n\t\t\tforgetAboutMe1 = 'Забравен';\r\n\t\t\tforgetAboutMe2 = 'Клиент';\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tForgetMe1: forgetAboutMe1,\r\n\t\t\tForgetMe2: forgetAboutMe2,\r\n\t\t\tGymID: gymid,\r\n\t\t\tNamespace: namespace\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Account/ForgetMe',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\r\n\t\t\t$('.popup-wrapper').addClass('responded');\r\n\r\n\t\t\tif (data == 'true') {\r\n\t\t\t\t$scope.forgotten = true;\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\twindow.location.replace(currentHref);\r\n\t\t\t\t}, 1500);\r\n\t\t\t} else {\r\n\t\t\t\t$scope.forgotten = false;\r\n\t\t\t\t$('.popup-wrapper').removeClass('responded');\r\n\t\t\t}\r\n\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tif ( gymServices ){\r\n\t\t$scope.gymServices = gymServices;\r\n\r\n\t\tif ( $scope.gymServices.length > 0 ) {\r\n\t\t\t$scope.gymServices = $.grep($scope.gymServices, function(e){ \r\n\t\t\t return e.Name != 'Deposit'; \r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ( $scope.gymServices.length == 1 ) {\r\n\t\t\t$scope.mySubscription = $scope.gymServices[0]\r\n\t\t\tif ( $scope.mySubscription.Code ) {\r\n\t\t\t\tJsBarcode(\"#barcode\", $scope.mySubscription.Code, {\r\n\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\twidth: 1\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.changeServiceModel = function(){\r\n\t\t\tvar serviceItem = $scope.serviceModel;\r\n\r\n\t\t\tvar result = $.grep($scope.gymServices, function (e) { return e.ServiceID == serviceItem; });\r\n\r\n\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t$scope.mySubscription = result[0];\r\n\t\t\t\tif ( $scope.mySubscription.Code ) {\r\n\t\t\t\t\tJsBarcode(\"#barcode\", $scope.mySubscription.Code, {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\twidth: 1\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\tJsBarcode(\"#barcode\", 'Sorry, no code', {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\twidth: 1\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.showPopup = function (sel, id) {\r\n\t\tvar selected = sel;\r\n\t\tvar id = id;\r\n\t\t$('.popup-wrapper[data-id=\"' + sel + '\"]').addClass('show');\r\n\t\tif (id) {\r\n\t\t\t$('.popup-wrapper[data-id=\"' + sel + '\"] .btn.agree').attr('data-id', id);\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.closePopup = function (sel) {\r\n\t\t$('.popup-wrapper[data-id=\"' + sel + '\"]').removeClass('show').find('.btn.agree').attr('data-id', '');\r\n\t}\r\n\r\n\t$(window).on('load', function () {\r\n\t\tvar lastUrl = getCookie('setUrl');\r\n\r\n\t\tif ($('.dashboard').length && lastUrl != null && lastUrl != '') {\r\n\t\t\tvar relocated = false;\r\n\r\n\t\t\tif (!relocated) {\r\n\t\t\t\trelocated = true;\r\n\t\t\t\tsetCookie('setUrl', '');\r\n\t\t\t\twindow.location.replace(lastUrl);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t})\r\n\r\n\t\r\n\r\n\t$scope.$watch('paymentway', function (v) {\r\n\t\tvar paymentWayValue = v;\r\n\r\n\t\tif (paymentWayValue == '9') {\r\n\r\n\t\t\t$('.onepage-wrapper .actions .stripe-button').addClass('show');\r\n\t\t\t// Create a Stripe client.\r\n\t\t\tvar stripe = Stripe($scope.membershipSettings.StripePublishKey);\r\n\t\t\t// Create an instance of Elements.\r\n\t\t\tvar elements = stripe.elements();\r\n\t\t\t// Custom styling can be passed to options when creating an Element.\r\n\t\t\t// (Note that this demo uses a wider set of styles than the guide below.)\r\n\t\t\tvar style = {\r\n\t\t\t base: {\r\n\t\t\t\tcolor: '#32325d',\r\n\t\t\t\tlineHeight: '18px',\r\n\t\t\t\tfontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\r\n\t\t\t\tfontSmoothing: 'antialiased',\r\n\t\t\t\tfontSize: '16px',\r\n\t\t\t\t'::placeholder': {\r\n\t\t\t\t color: '#aab7c4'\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t invalid: {\r\n\t\t\t\tcolor: '#fa755a',\r\n\t\t\t\ticonColor: '#fa755a'\r\n\t\t\t }\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Create an instance of the card Element.\r\n\t\t\tvar card = elements.create('card', {style: style});\r\n\r\n\t\t\t// Add an instance of the card Element into the `card-element`
.\r\n\t\t\tcard.mount('#card-element');\r\n\r\n\t\t\t// Handle real-time validation errors from the card Element.\r\n\t\t\tcard.addEventListener('change', function(event) {\r\n\t\t\t\tvar displayError = document.getElementById('card-errors');\r\n\t\t\t \tif (event.error) {\r\n\t\t\t\t\tdisplayError.textContent = event.error.message;\r\n\t\t\t \t} else {\r\n\t\t\t\t\tdisplayError.textContent = '';\r\n\t\t\t \t}\r\n\t\t\t});\r\n\r\n\t\t\t// Handle form submission.\r\n\t\t\tvar form = document.getElementById('payment-form');\r\n\r\n\t\t\t$('.stripe-button').on('click', function(e){\r\n\t\t\t e.preventDefault();\r\n\t\t\t if ($scope.orderLoading == false || $scope.orderLoading == undefined) {\r\n\t\t\t $scope.orderLoading = true;\r\n\t\t\t stripe.createToken(card).then(function (result) {\r\n\t\t\t if (result.error) {\r\n\t\t\t // Inform the user if there was an error.\r\n\t\t\t var errorElement = document.getElementById('card-errors');\r\n\t\t\t errorElement.textContent = result.error.message;\r\n\t\t\t $scope.orderLoading = false;\r\n\t\t\t } else {\r\n\t\t\t // Send the token to your server.\r\n\t\t\t $scope.token = result.token.id\r\n\t\t\t $scope.placeOrder();\r\n\t\t\t $scope.orderLoading = false;\r\n\t\t\t }\r\n\t\t\t });\r\n\t\t\t }\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\t$('.onepage-wrapper .actions .stripe-button').removeClass('show');\r\n\t\t}\r\n\r\n\t\tif (paymentWayValue == 66) {\r\n\t\t\t$(\".onepage-wrapper .actions .commbank-buttonhp\").addClass('show');\r\n\t\t\tvar hostedPayments = SimplifyCommerce.hostedPayments(\r\n\t\t function(response) {\r\n\t\t var cardToken = response.cardToken;\r\n\t\t console.log(cardToken);\r\n\t\t // TODO: Pass token to the server & use Simplify's API to make a payment\r\n\r\n\t\t $scope.token = cardToken;\r\n\t\t $scope.placeOrder();\r\n\t\t },\r\n\t\t {\r\n\t\t scKey: $scope.settings.CommBankPublicApiKey,\r\n\t\t amount: $scope.finalBankPrice,\r\n\t\t operation: 'create.token',\r\n\t\t name: $scope.Division,\r\n\t\t description: $scope.theChoosenMembership.ServiceName\r\n\r\n\t\t }\r\n\t\t ).closeOnCompletion();\r\n\t\t /**\r\n\t\t * Handle the error response from the server call that\r\n\t\t * failed to make a payment from the card token.\r\n\t\t */\r\n\t\t function apiPaymentErrorHandler() {\r\n\t\t // re-enable the payment button, so the user can try again.\r\n\t\t hostedPayments.enablePayBtn();\r\n\t\t // TODO: Handle error\r\n\t\t }\r\n\t\t}else{\r\n\t\t\t$(\".onepage-wrapper .actions .commbank-buttonhp\").removeClass('show');\r\n\t\t}\r\n\r\n\t\tif (paymentWayValue == 6) {\r\n $(\".onepage-wrapper .actions .commbank-button\").addClass('show');\r\n $(\".onepage-wrapper .actions .commbank-button\").on(\"click\", function () {\r\n $scope.orderLoading = true;\r\n $('.payment-form .payment-status').empty();\r\n $('.payment-form, .loader-container-loader').addClass('loading');\r\n // Disable the submit button\r\n $(\".onepage-wrapper .actions .commbank-button\").attr(\"disabled\", \"disabled\");\r\n // Generate a card token & handle the response\r\n SimplifyCommerce.generateToken({\r\n key: $scope.settings.CommBankPublicApiKey,\r\n card: {\r\n number: $(\"#cc-number\").val(),\r\n cvc: $(\"#cc-cvc\").val(),\r\n expMonth: $(\"#cc-exp-month\").val(),\r\n expYear: $(\"#cc-exp-year\").val()\r\n }\r\n }, simplifyResponseHandler);\r\n // Prevent the form from submitting\r\n return false;\r\n });\r\n\r\n function simplifyResponseHandler(data) {\r\n // Remove all previous errors\r\n $(\".error\").remove();\r\n // Check for errors\r\n if (data.error) {\r\n // Show any validation errors\r\n if (data.error.code == \"validation\") {\r\n var fieldErrors = data.error.fieldErrors,\r\n fieldErrorsLength = fieldErrors.length,\r\n errorList = \"\";\r\n for (var i = 0; i < fieldErrorsLength; i++) {\r\n errorList += \"
Field: '\" + fieldErrors[i].field +\r\n \"' is invalid - \" + fieldErrors[i].message + \"
\";\r\n }\r\n\r\n // console.log(errorList);\r\n // Display the errors\r\n $('.payment-form .payment-status').html('
');\r\n $('.payment-form .payment-status .error-msg').after('
' + errorList + '
');\r\n }\r\n // Re-enable the submit button\r\n $scope.orderLoading = false;\r\n $(\".onepage-wrapper .actions .commbank-button\").removeAttr(\"disabled\");\r\n } else {\r\n // The token contains id, last4, and card type\r\n var token = data[\"id\"];\r\n // Insert the token into the form so it gets submitted to the server\r\n $('.payment-form .payment-status').append(\"\");\r\n // Submit the form to the server\r\n\r\n $scope.token = token;\r\n $scope.placeOrder();\r\n }\r\n $('.payment-form, .loader-container-loader').removeClass('loading');\r\n }\r\n }else{\r\n $(\".onepage-wrapper .actions .commbank-button\").removeClass('show');\r\n }\r\n\t});\r\n\r\n\r\n\t// Purchase Page\r\n\t$scope.lockMembership = false;\r\n\t$scope.onePageloading = false;\r\n\r\n\r\n\t$(\".onepage-wrapper .actions .commbank-buttonhp\").on('click', function(e){\r\n\t\te.preventDefault();\r\n\t\t$('.payment-method .sections .section-title button').trigger('click');\r\n\t})\r\n\r\n\tif ( settings ) {\r\n\t\t$scope.settings = settings;\r\n\t\t// $scope.settings.CommBankHostedPayments = true;\r\n\t}\r\n\r\n\tif ( memberships ) {\r\n\t\t$scope.memberships = memberships;\r\n\r\n\t\tif ( $scope.memberships.length == 1 ) {\r\n\t\t\t$scope.lockMembership = true;\r\n\t\t\t$scope.theChoosenMembership = $scope.memberships[0];\r\n\t\t\tgetFinalPrice($scope.theChoosenMembership.OriginalPrice);\r\n\r\n\t\t\t$scope.theChoosenMembershipDate = new Date();\r\n\t\t\t$scope.orderCardReccuring = ($scope.theChoosenMembership.Fibank != true) ? false : true;\r\n\t\t\t$scope.choosenMembership = true;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t$scope.$watch('mainPaymentWay', function (v) {\r\n\t\tif ( v == 'stripe' ) {\r\n\t\t\t$timeout(function() {\r\n\t\t\t\t$scope.paymentway = 9;\r\n\t\t\t})\r\n\t\t\t// $scope.$apply();\r\n\t\t}else if ( v == 'commbank' ){\r\n\t\t\t$timeout(function() {\r\n\t\t\t\t$scope.paymentway = 6;\r\n\t\t\t})\r\n\t\t}else if ( v == 'commbankhp' ){\r\n\t\t\t$timeout(function() {\r\n\t\t\t\t$scope.paymentway = 66;\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\t$scope.paymentway = '';\r\n\t\t\t$('.onepage-wrapper .actions .stripe-button').removeClass('show');\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t$scope.theChoosenMembershipIsFree = false;\r\n\t$scope.getMembership = function(id){\r\n\t\tvar result = $scope.memberships.filter(function (obj) {\r\n\t\t\treturn obj.ServiceDefinitionID == id;\r\n\t\t});\r\n\r\n\t\t$scope.theChoosenMembership = result[0];\r\n\t\t$scope.orderCardReccuring = ($scope.theChoosenMembership.Fibank != true) ? false : true;\r\n\r\n\t\tif ( $scope.theChoosenMembership.OriginalPrice == 0 ){\r\n\t\t\t$scope.theChoosenMembershipIsFree = true;\r\n\t\t\t$scope.paymentway = 0;\r\n\t\t}else{\r\n\t\t\t$scope.theChoosenMembershipIsFree = false;\r\n\t\t\t$scope.paymentway = null;\r\n\t\t\tgetFinalPrice($scope.theChoosenMembership.OriginalPrice);\r\n\t\t}\r\n\t\t$scope.choosenMembership = true;\r\n\t}\r\n\r\n\tfunction getFinalPrice(price){\r\n\t\tif (price.toString().indexOf(\".\") == -1 ) {\r\n\t $scope.finalBankPrice = price + '00';\r\n\t }else{\r\n\t $scope.finalBankPrice = price.toString().split('.').join(\"\");\r\n\t }\r\n\r\n\t $scope.finalBankPrice = parseInt($scope.finalBankPrice);\r\n\t}\r\n\r\n\r\n\t$scope.placeOrder = function(){\r\n\r\n\t\t$scope.onePageloading = true;\r\n\t\tvar paymentProvider = '';\r\n\r\n\t\tif ( $scope.paymentway == 1 ) {\r\n\t\t\tpaymentProvider = 'paylogin';\r\n\t\t}else if ( $scope.paymentway == 2 ){\r\n\t\t\tpaymentProvider = 'credit_paydirect';\r\n\t\t}else if ( $scope.paymentway == 9 ){\r\n\t\t\tpaymentProvider = 'stripe card';\r\n\t\t}else if ( $scope.paymentway == 6 ){\r\n\t\t\tpaymentProvider = 'CommBank';\r\n\t\t}else if ( $scope.paymentway == 66 ){\r\n\t\t\tpaymentProvider = 'CommBank';\r\n\t\t}else if ( $scope.paymentway == 0 ){\r\n\t\t\tpaymentProvider = '0';\r\n\t\t}\r\n\r\n\t\tvar startDate = new Date($scope.theChoosenMembershipDate);\r\n\t\tstartDate.setHours(0,0,0,0);\r\n\r\n\r\n\t\tvar dataObject = { \r\n\t\t\tGymID: $scope.DivisionID, \r\n\t\t\tNamespace: namespace, \r\n\t\t\tmodel: { FirstName: $scope.FirstName, LastName: $scope.LastName, Email: $scope.Email, Password: $scope.Password, NewAccount: $scope.NewAccount, Telephone: $scope.Telephone, MembershipID: $scope.membershipId, PaymentProvider: paymentProvider, Token: $scope.token, MembershipID: $scope.theChoosenMembership.ServiceDefinitionID, Date: startDate, Note: $scope.Note, PromoCode: $scope.PromoCode, price: $scope.theChoosenMembership.OriginalPrice }\r\n\t\t};\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/PurchaseAndRegister',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\r\n\t\t\t// console.log(data);\r\n\r\n\t\t\tif ( data.Key == 1 || data.Key == 2 || data.Key == 3 ){\r\n\t\t\t\tSwal.fire({\r\n\t type: 'warning',\r\n\t title: data.Value\r\n\t })\r\n\t\t\t}else if ( data.Key == 0 ){\r\n\t\t\t\tvar translated = $translateThis('Payment finished with success.');\r\n\t\t\t\tSwal.fire({\r\n\t type: 'success',\r\n title: translated\r\n\t })\r\n\t\t\t}else if ( data == 'Error' ){\r\n\t\t\t\tvar translated = $translateThis('buyError');\r\n\t\t\t\tSwal.fire({\r\n\t type: 'warning',\r\n\t title: translated\r\n\t })\r\n\t\t\t}else if ( data == 'Recurring service exist!' ){\r\n\t\t\t\tvar translated = $translateThis('Recurring service exist! OnePage');\r\n\t\t\t\tSwal.fire({\r\n\t type: 'warning',\r\n\t title: translated\r\n\t })\r\n\t\t\t}else if ( data == 'succeeded' ){\r\n\t\t\t\tvar translated = $translateThis('Payment finished with success.');\r\n\t\t\t\tSwal.fire({\r\n\t type: 'success',\r\n title: translated,\r\n onAfterClose: (function () {\r\n window.location.reload(true);\r\n })\r\n\t })\r\n\t\t\t}else{\r\n\t\t\t\twindow.location.replace(data);\r\n\t\t\t}\r\n\r\n\t\t\t$scope.onePageloading = false;\r\n\t\t}).error(function () {\r\n\t\t\t$scope.onePageloading = false;\t\t\t\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tfunction getPrice(price, discount) { \r\n\t\tvar numVal1 = Number(price);\r\n\t\tvar numVal2 = Number(discount);\r\n\r\n\t\tvar totalValue = numVal1 * ( (100-numVal2) / 100 )\r\n\t\treturn totalValue.toFixed(2);\r\n\t}\r\n\r\n\t$scope.Discount = 0;\r\n\t$scope.changePromoCode = function () {\r\n\r\n\t\tif ($scope.PromoCode.length > 3) {\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: $scope.DivisionID,\r\n\t\t\t\tClientID: -1,\r\n\t\t\t\tServiceID: $scope.theChoosenMembership.ServiceDefinitionID,\r\n\t\t\t\torderType: $scope.orderType,\r\n\t\t\t\tDateStart: $scope.theChoosenMembershipDate,\r\n\t\t\t\tPromoCode: $scope.PromoCode,\r\n\t\t\t\tDiscount: $scope.Discount\r\n\t\t\t}\r\n\t\t\t// if (dataObject.GymID == undefined)\r\n\t\t\t// dataObject.GymId = $scope.Model.GymId;\r\n\t\t\t// if ($scope.orderCardId == undefined && $scope.serviceDefinitionId != undefined)\r\n\t\t\t// \tdataObject.ServiceID = $scope.serviceDefinitionId;\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/Membership/ValidatePromoCode',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\t$scope.promocodeFalse = false;\r\n\t\t\t\tif (data != 'false') {\r\n\t\t\t\t\t$scope.Discount = data.DiscountPercent;\r\n\t\t\t\t\t// if ($scope.orderCardId != undefined && $scope.serviceRealID == undefined)\r\n\t\t\t\t\t// \t$scope.serviceRealID = $scope.orderCardId;\r\n\r\n\t\t\t\t\t$scope.theChoosenMembership.OriginalPrice = getPrice($scope.theChoosenMembership.OriginalPrice, data.DiscountPercent)\r\n\t\t\t\t\t// getTermsForMembership();\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.promocodeFalse = true;\r\n\t\t\t\t}\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tfunction getTermsForMembership() {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: $scope.DivisionID,\r\n\t\t\tClientID: -1,\r\n\t\t\tServiceID: $scope.theChoosenMembership.ServiceDefinitionID,\r\n\t\t\torderType: $scope.orderType,\r\n\t\t\tDiscount: $scope.Discount\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/Terms',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.membershipTerms = data;\r\n\t\t\t$scope.theChoosenMembership.OriginalPrice = data.Price;\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t$(window).on('load', function(){\r\n\t\tif ( $('.onepage-wrapper').length ) {\r\n\t\t\t$timeout(function() {\r\n\t\t\t\tif ( $scope.theChoosenMembership && $scope.theChoosenMembership.OriginalPrice == 0 ){\r\n\t\t\t\t\t$scope.theChoosenMembershipIsFree = true;\r\n\t\t\t\t\t$('#payment-free').prop(\"checked\", true).trigger(\"click\");\r\n\t\t\t\t\t$scope.paymentway = 0;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.theChoosenMembershipIsFree = false;\r\n\t\t\t\t}\r\n\t\t });\r\n\t\t\t$scope.matchingOnePagePassword = '';\r\n\t\t\t$('#Password, #ConfirmPassword').on('keyup', function () {\r\n\t\t\t\tif ($('#Password').val() == $('#ConfirmPassword').val()) {\r\n\t\t\t\t\t$('.validation-errors').html('');\r\n\t\t\t\t\t$scope.matchingOnePagePassword = 'ass';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar translated = $translateThis('notMaching');\r\n\t\t\t\t\t$('.validation-errors').html('

' + translated + '

');\r\n\t\t\t\t\t$scope.matchingOnePagePassword = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$scope.$apply();\r\n\t\t\t});\r\n\r\n\t\t\t$('.header .logo').attr('href', '');\r\n\r\n\t\t\tif ( $('.payment-method .sections .section.active').length == 1 ){\r\n\t\t\t\t$('.payment-method .sections .section.active input[name=\"mainPaymentWay\"]').prop('checked', true);\r\n\t\t\t\t$scope.mainPaymentWay = $('.payment-method .sections .section.active input[name=\"mainPaymentWay\"]').val();\r\n\t\t\t\t$scope.$apply();\r\n\t\t\t}\r\n\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\t$('#sc-style-modal').remove()\r\n\t\t\t}, 3000);\r\n\t\t}\r\n\t})\r\n\r\n}]);\r\n\r\nmembershipApp\r\n.directive('datepicker', ['$translate', function ($translate) {\r\n\treturn {\r\n\t\tlink: function ($scope, el, attr, ngModel) {\r\n\r\n\t\t\tfunction setCookie(key, value) {\r\n\t\t\t\tvar val = value;\r\n\t\t\t\tvar expires = new Date();\r\n\t\t\t\texpires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));\r\n\t\t\t\tdocument.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + ';path=/';\r\n\t\t\t\tif (val != \"true\") {\r\n\t\t\t\t\t$('body').addClass('pound-currency');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$('body').removeClass('pound-currency');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction getCookie(key) {\r\n\t\t\t\tvar keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');\r\n\t\t\t\treturn keyValue ? keyValue[2] : null;\r\n\t\t\t}\r\n\r\n\t\t\tvar today = new Date();\r\n\t\t\tvar datepicker = $(el);\r\n\t\t\tvar lastDate = getCookie('setDate');\r\n\r\n\t\t\tdatepicker.datepicker({\r\n\t\t\t\tchangeMonth: true,\r\n\t\t\t\tchangeYear: true,\r\n\t\t\t\tyearRange: \"1920:2040\",\r\n\t\t\t\tnumberOfMonths: 1,\r\n\t\t\t\tonSelect: function (dateText, inst) {\r\n\t\t\t\t\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\t\t\t\t\tvar date = $(this).val();\r\n\r\n\t\t\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\t\t\tvar res = date.split(\"/\");\r\n\t\t\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$scope.cardStartDate = new Date(date);\r\n\t\t\t\t\t$scope.membershipStartDate = $scope.cardStartDate;\r\n\r\n\t\t\t\t\tif ($('.section-authorize').length && !$('#RegBirthdayVal').is(':checked')) {\r\n\t\t\t\t\t\t$('#RegBirthdayVal').trigger('click');\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ( $('.onepage-wrapper').length ) {\r\n\t\t\t\t\t\t$scope.theChoosenMembershipDate = $scope.cardStartDate;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$scope.$apply();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\r\n\t\t\tif ($('.membershipbuy-wrapper').length) {\r\n\r\n\t\t\t\tif (lastDate != null && lastDate != '') {\r\n\r\n\t\t\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\t\t\tvar res = lastDate.split('/');\r\n\t\t\t\t\t\tvar newDate = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t\t\t\tvar newLastDate = new Date(newDate);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar newLastDate = new Date(lastDate);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdatepicker.datepicker(\"setDate\", newLastDate);\r\n\t\t\t\t\tif (datepicker.parents('.membersip-card').is('.checked')) {\r\n\t\t\t\t\t\tsetCookie('setDate', '');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", \"minDate\", 0);\r\n\t\t\t\t\tdatepicker.datepicker(\"setDate\", today);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( $('.onepage-wrapper').length ) {\r\n\t\t\t\tdatepicker.datepicker(\"option\", \"minDate\", 0);\r\n\t\t\t\tdatepicker.datepicker(\"setDate\", today);\r\n\t\t\t\t$scope.theChoosenMembershipDate = today;\r\n\r\n\t\t\t\tif ( $scope.lockMembership ) {\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", \"maxDate\", 20);\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ($('.section-authorize').length) {\r\n\t\t\t\tdatepicker.datepicker(\"option\", \"maxDate\", 0);\r\n\t\t\t}\r\n\r\n\t\t\tdatepicker.next('i').on('click', function () {\r\n\t\t\t\tdatepicker.datepicker('show');\r\n\t\t\t});\r\n\r\n\r\n\t\t\tif ($scope.currentLang == 'en') {\r\n\t\t\t\tdatepicker.datepicker(\"option\", $.datepicker.regional['en']);\r\n\t\t\t}else if ($scope.currentLang == 'es' || $scope.currentLang == 'esc'){\r\n\t\t\t\tdatepicker.datepicker(\"option\", $.datepicker.regional['es']);\r\n\t\t\t}else {\r\n\t\t\t\tdatepicker.datepicker(\"option\", $.datepicker.regional['bg']);\r\n\t\t\t}\r\n\r\n\t\t\tif ( $scope.gym[0].Culture == 'en-US' ) {\r\n\t\t\t\tdatepicker.datepicker(\"option\", \"dateFormat\", 'mm/dd/yy');\r\n\t\t\t}else{\r\n\t\t\t\tdatepicker.datepicker(\"option\", \"dateFormat\", 'dd/mm/yy');\r\n\t\t\t}\r\n\r\n\t\t\t$(document).on('click', '.lang-nav li a', function () {\r\n\t\t\t\tvar lang = $(this).data('lang');\r\n\r\n\t\t\t\tif (lang == 'en') {\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", $.datepicker.regional['en']);\r\n\t\t\t\t}else if ($scope.currentLang == 'es' || $scope.currentLang == 'esc'){\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", $.datepicker.regional['es']);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", $.datepicker.regional['bg']);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( $scope.gym[0].Culture == 'en-US' ) {\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", \"dateFormat\", 'mm/dd/yy');\r\n\t\t\t\t}else{\r\n\t\t\t\t\tdatepicker.datepicker(\"option\", \"dateFormat\", 'dd/mm/yy');\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t};\r\n}])\r\n.controller('MembershipChangePaymentMethodController', ['$scope', '$http', '$timeout', '$translate', '$filter', function ($scope, $http, $timeout, $translate, $filter) {\r\n\t$scope.alerting = false;\r\n\tvar $translateThis = $filter('translate');\r\n\t$scope.loading = false;\r\n\r\n\r\n\tif ( lang ){\r\n\t\t$translate.use(lang);\r\n\t}\r\n\r\n\t$scope.getClientServices = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tClientID: client.ClientID\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/GetClientServices',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.clientServices = data;\r\n\t\t\t$scope.PaymentMethods.forEach(function (el) {\r\n\t\t\t\tvar el = el;\r\n\t\t\t\tvar result = $.grep($scope.clientServices, function (e) { return e.PaymentMethodID == el.ID; });\r\n\r\n\t\t\t\tif (result.length > 0) {\r\n\t\t\t\t\tel.ServiceName = result[0].ServiceName;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}).error(function () {\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getPaymentMethods = function () {\r\n\t if (client != null && client != undefined) {\r\n\t var dataObject = {\r\n\t Namespace: namespace,\r\n\t GymID: gymid,\r\n\t ClientId: client.ClientID\r\n\t }\r\n\r\n\t $http({\r\n\t method: 'POST',\r\n\t url: '/Membership/GetPaymentMethods',\r\n\t data: dataObject\r\n\t }).success(function (data) {\r\n\t $scope.PaymentMethods = data;\r\n\t $scope.getClientServices();\r\n\t }).error(function () {\r\n\t });\r\n\t }\r\n\t}\r\n\t$scope.getPaymentMethods();\r\n\r\n\r\n\t$scope.setDefaultPaymentMethod = function (id) {\r\n\t\tvar paymentId = id;\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tClientID: client.ClientID,\r\n\t\t\tId: paymentId\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/SetDefaultPaymentMethod',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\t\t\tif (data == true) {\r\n\t\t\t\t$('.paymentmethod-item[data-paymentid=\"' + paymentId + '\"]').addClass('default').siblings('.default').removeClass('default');\r\n\t\t\t}\r\n\t\t\t$scope.closePopup('setDefaultPaymentMethod');\r\n\t\t}).error(function () {\r\n\t\t});\r\n\t}\r\n\r\n\t// RemovePaymentMethod(int Id, int ClientID, int GymID, string Namespace)\r\n\r\n\t$scope.removePaymentMethod = function (id) {\r\n\t\t$scope.loading = true;\r\n\t\tvar paymentId = id;\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tClientID: client.ClientID,\r\n\t\t\tId: paymentId\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/RemovePaymentMethod',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\t\t\t$scope.loading = false;\r\n\t\t\tvar translated = $translateThis('Payment method removed!');\r\n\t\t\tSwal.fire({\r\n type: 'warning',\r\n title: translated,\r\n onAfterClose: (function () {\r\n\t\t\t\t\t$scope.closePopup('removePaymentMethod');\r\n window.location.reload(true);\r\n })\r\n })\r\n\t\t}).error(function (err) {\r\n\t\t\t$scope.loading = false;\r\n\t\t\tSwal.fire({\r\n type: 'warning',\r\n title: err\r\n })\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.addPaymentMethod = function (token) {\r\n\t\t$scope.loading = true;\r\n\r\n\t\tvar newPaymentMethodModel = { PaymentProvider: $scope.mainPaymentWay, ClientID: client.ClientID, CardID: client.CardID }\r\n\r\n\t\tif ( token ) {\r\n\t\t\tif ( $scope.mainPaymentWay == 'STRIPE CARD' ) {\r\n\t\t\t\ttoken = token.id;\r\n\t\t\t}\r\n\t\t\tvar newPaymentMethodModel = { PaymentProvider: $scope.mainPaymentWay, ClientID: client.ClientID, CardID: client.CardID, Token: token }\t\t\t\r\n\t\t}\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tmodel: newPaymentMethodModel\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/AddPaymentMethod',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\t\t\tif (data == 'error' || data == 'Error') {\r\n\t\t\t\tvar currentHref = window.location;\r\n\t\t\t\tvar href = currentHref.origin + '/membership/errorPurchase?nameSpace=' + namespace + '&gymId=' + gymid;\r\n\t\t\t\tif ( isMobile == true ) {\r\n\t\t\t\t\thref += '&isMobile=true';\r\n\t\t\t\t}\r\n\t\t\t\twindow.location.replace(href);\r\n\t\t\t}else if(data == 'done'){\r\n\t\t\t\tvar translated = $translateThis('Payment method added!');\r\n\t\t\t\tSwal.fire({\r\n\t type: 'success',\r\n title: translated,\r\n onAfterClose: (function () {\r\n window.location.reload(true);\r\n })\r\n\t })\r\n\t\t\t} else {\r\n\t\t\t\twindow.location.replace(data);\r\n\t\t\t}\r\n\t\t\t$scope.loading = false;\r\n\t\t}).error(function () {\r\n\t\t});\r\n\t}\r\n\r\n\t$('.popup-wrapper[data-id=\"setDefaultPaymentMethod\"] .btn.agree').on('click', function () {\r\n\t\tvar id = $(this).data('id');\r\n\t\t$scope.setDefaultPaymentMethod(id);\r\n\t})\r\n\r\n\t$('.popup-wrapper[data-id=\"removePaymentMethod\"] .btn.agree').on('click', function () {\r\n\t\tvar id = $(this).data('id');\r\n\t\t$scope.removePaymentMethod(id);\r\n\t})\r\n\r\n\t$('.popup-wrapper[data-id=\"addPaymentMethod\"] .btn.agree').on('click', function () {\r\n\t\t$scope.addPaymentMethod();\r\n\t})\r\n\r\n\t$scope.$watch('mainPaymentWay', function (v) {\r\n\t\tvar paymentValue = v;\r\n\t\t$scope.paymentway = '';\r\n\r\n\t\t// if (paymentValue == 'fibank'){\r\n\t\t// $scope.paymentway = 8;\r\n\t\t// }else{\r\n\t\t// }\r\n\r\n\t\tif (paymentValue == 'STRIPE CARD') {\r\n\r\n\t\t\t$('.step-actions .stripe-button').addClass('show');\r\n\t\t\t// Create a Stripe client.\r\n\t\t\tvar stripe = Stripe($scope.membershipSettings.StripePublishKey);\r\n\t\t\t// Create an instance of Elements.\r\n\t\t\tvar elements = stripe.elements();\r\n\t\t\t// Custom styling can be passed to options when creating an Element.\r\n\t\t\t// (Note that this demo uses a wider set of styles than the guide below.)\r\n\t\t\tvar style = {\r\n\t\t\t base: {\r\n\t\t\t\tcolor: '#32325d',\r\n\t\t\t\tlineHeight: '18px',\r\n\t\t\t\tfontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\r\n\t\t\t\tfontSmoothing: 'antialiased',\r\n\t\t\t\tfontSize: '16px',\r\n\t\t\t\t'::placeholder': {\r\n\t\t\t\t color: '#aab7c4'\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t invalid: {\r\n\t\t\t\tcolor: '#fa755a',\r\n\t\t\t\ticonColor: '#fa755a'\r\n\t\t\t }\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Create an instance of the card Element.\r\n\t\t\tvar card = elements.create('card', {style: style});\r\n\r\n\t\t\t// Add an instance of the card Element into the `card-element`
.\r\n\t\t\tcard.mount('#card-element');\r\n\r\n\t\t\t// Handle real-time validation errors from the card Element.\r\n\t\t\tcard.addEventListener('change', function(event) {\r\n\t\t\t\tvar displayError = document.getElementById('card-errors');\r\n\t\t\t \tif (event.error) {\r\n\t\t\t\t\tdisplayError.textContent = event.error.message;\r\n\t\t\t \t} else {\r\n\t\t\t\t\tdisplayError.textContent = '';\r\n\t\t\t \t}\r\n\t\t\t});\r\n\r\n\t\t\t// Handle form submission.\r\n\t\t\tvar form = document.getElementById('payment-form');\r\n\r\n\t\t\t$('.stripe-button').on('click', function(e){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif ($scope.loading == false || $scope.loading == undefined) {\r\n\t\t\t\t $scope.loading = true;\r\n\t\t\t\t stripe.createToken(card).then(function (result) {\r\n\t\t\t\t if (result.error) {\r\n\t\t\t\t // Inform the user if there was an error.\r\n\t\t\t\t var errorElement = document.getElementById('card-errors');\r\n\t\t\t\t errorElement.textContent = result.error.message;\r\n\t\t\t\t $scope.loading = false;\r\n\t\t\t\t } else {\r\n\t\t\t\t // Send the token to your server.\r\n\t\t\t\t var token = result.token\r\n\t\t\t\t $scope.addPaymentMethod(token);\r\n\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}else{\r\n\t\t\t$('.step-actions .stripe-button').removeClass('show');\r\n\t\t}\r\n\r\n\t\tif (paymentValue == 'paysafe') {\r\n\t\t\t$('.step-actions .paysafe-button').addClass('show');\r\n\t\t\t$scope.getPaymentMethods();\r\n\t\t\tif (!$scope.paySafeInit) {\r\n\t\t\t\tif ($scope.membershipSettings.PaySafeFrontEndKey != '') {\r\n\t\t\t\t\t$scope.paySafeInit = true;\r\n\t\t\t\t\t// Base64 encoded version the Single-use Token API key.\r\n\t\t\t\t\t// Create the key below by concatenating the API username and password\r\n\t\t\t\t\t// separated by a colon and Base64-encoding the result\r\n\t\t\t\t\tvar apiKey = $scope.membershipSettings.PaySafeFrontEndKey;\r\n\t\t\t\t\tvar Enviroment = \"TEST\";\r\n\t\t\t\t\tif ($scope.membershipSettings.PaySafeLive == true)\r\n\t\t\t\t\t\tEnviroment = \"LIVE\";\r\n\t\t\t\t\tvar options = {\r\n\r\n\t\t\t\t\t\t// select the Paysafe test / sandbox environment\r\n\t\t\t\t\t\tenvironment: Enviroment,\r\n\r\n\t\t\t\t\t\t// set the CSS selectors to identify the payment field divs above\r\n\t\t\t\t\t\t// set the placeholder text to display in these fields\r\n\t\t\t\t\t\tfields: {\r\n\t\t\t\t\t\t\tcardNumber: {\r\n\t\t\t\t\t\t\t\tselector: \"#cardNumber\",\r\n\t\t\t\t\t\t\t\tplaceholder: \"Card number\"\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\texpiryDate: {\r\n\t\t\t\t\t\t\t\tselector: \"#expiryDate\",\r\n\t\t\t\t\t\t\t\tplaceholder: \"Expiry date\"\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tcvv: {\r\n\t\t\t\t\t\t\t\tselector: \"#cvv\",\r\n\t\t\t\t\t\t\t\tplaceholder: \"CVV\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tpaysafe.fields.setup(apiKey, options, function (instance, error) {\r\n\t\t\t\t\t\t$('.step-actions .paysafe-button').on('click', function (event) {\r\n\t\t\t\t\t\t\t$scope.loading = true;\r\n\t\t\t\t\t\t\tinstance.tokenize(function (instance, error, result) {\r\n\t\t\t\t\t\t\t\tif (error) {\r\n\t\t\t\t\t\t\t\t\talert(JSON.stringify(error));\r\n\t\t\t\t\t\t\t\t\t$scope.loading = false;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tvar token = result.token\r\n\t\t\t\t\t\t\t\t\t$scope.addPaymentMethod(token);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$scope.paysafeinit = false;\r\n\t\t}\r\n\t});\r\n}])\r\n.controller('MembershipBuyController', ['$scope', '$http', '$timeout', '$translate', function ($scope, $http, $timeout, $translate) {\r\n\tvar today = new Date();\r\n\t$scope.paySafeInit = false;\r\n\t$scope.newCard = false;\r\n\t$scope.currentStep = 1;\r\n\t$scope.orderType = 'PURCHASE';\r\n\t$scope.PromoCode = '';\r\n\t$scope.Discount = 0;\r\n\t$scope.promocodeFalse = false;\r\n\t$scope.hasRecurring = false;\r\n\r\n\tif ( lang ){\r\n\t\t$translate.use(lang);\r\n\t}\r\n\r\n\t$scope.chooseCard = function (val) {\r\n\t\t$scope.hasRecurring = false;\r\n\t\t$('.step-memberships .step-actions .next').addClass('disabled');\r\n\t\tvar result = $.grep($scope.membershipCards, function (e) { return e.ServiceDefinitionID == val; });\r\n\r\n\t\t$scope.orderCardId = result[0].ServiceDefinitionID;\r\n\t\t$scope.orderCardPrice = result[0].OriginalPrice;\r\n\t\t$scope.orderCardName = result[0].ServiceName;\r\n\t\t$scope.orderCardReccuring = (result[0].Fibank != true) ? false : true;\r\n\t\t$scope.orderCardPaysafe = (result[0].IsPaySafe != true) ? false : true;\r\n\t\t$scope.orderAdditionDescription = result[0].AdditionalDescription;\r\n\t\t$scope.orderAdditionDesc = ($scope.orderAdditionDescription != null) ? true : false;\r\n\t\t$scope.cardStartDate = today;\r\n\t\t$scope.newCard = true;\r\n\r\n\t\tif ( result[0].Recurring == true ) {\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/Membership/HasRecurring',\r\n\t\t\t\tdata: { Namespace: $scope.Model.Namespace, GymID: $scope.Model.GymId }\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\tif ( data == 'True' ) {\r\n\t\t\t\t\t$scope.hasRecurring = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.hasRecurring = false;\r\n\t\t\t\t\t$('.step .step-actions .next').removeClass('disabled');\r\n\t\t\t\t}\r\n\t\t\t}).error(function () {\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\t$('.step .step-actions .next').removeClass('disabled');\r\n\t\t}\r\n\r\n\t\tvar data = $('.step .membersip-card[data-memid=\"mem' + val + '\"]').find('.info-action input').val();\r\n\t}\r\n\r\n\t$scope.changePromoCode = function () {\r\n\r\n\t\tif ($scope.PromoCode.length > 3) {\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: $scope.Model.Namespace,\r\n\t\t\t\tGymID: $scope.gymZoneId,\r\n\t\t\t\tClientID: $scope.clientInfo.ClientID,\r\n\t\t\t\tServiceID: $scope.orderCardId,\r\n\t\t\t\torderType: $scope.orderType,\r\n\t\t\t\tDateStart: $scope.cardStartDate,\r\n\t\t\t\tPromoCode: $scope.PromoCode,\r\n\t\t\t\tDiscount: $scope.Discount\r\n\t\t\t}\r\n\t\t\tif (dataObject.GymID == undefined)\r\n\t\t\t dataObject.GymId = $scope.Model.GymId;\r\n\t\t\tif ($scope.orderCardId == undefined && $scope.serviceDefinitionId != undefined)\r\n\t\t\t\tdataObject.ServiceID = $scope.serviceDefinitionId;\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/Membership/ValidatePromoCode',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\t$scope.promocodeFalse = false;\r\n\t\t\t\tif (data != 'false') {\r\n\t\t\t\t\t$scope.Discount = data.DiscountPercent;\r\n\t\t\t\t\tif ($scope.orderCardId != undefined && $scope.serviceRealID == undefined)\r\n\t\t\t\t\t\t$scope.serviceRealID = $scope.orderCardId;\r\n\t\t\t\t\tgetTermsForMembership();\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.promocodeFalse = true;\r\n\t\t\t\t}\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t$scope.changeStep = function (n) {\r\n\t\t$scope.currentStep = n;\r\n\t\t$scope.Discount = 0;\r\n\t\t$scope.PromoCode = '';\r\n\t\t// $scope.hasRecurring = false;\r\n\t\tif (n == 2) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (membershipID != null) {\r\n\t\t\t\t\tvar memId = Number(membershipID);\r\n\t\t\t\t\t$scope.chooseCard(memId);\r\n\t\t\t\t\t$('.step .membersip-card').hide();\r\n\t\t\t\t\t$('input[id=\"radio-card-' + memId + '\"]').parents('.membersip-card').show().addClass('checked');\r\n\t\t\t\t\t$('input[id=\"radio-card-' + memId + '\"]').trigger('click');\r\n\r\n\t\t\t\t\t$('.membershipbuy-wrapper').removeClass('loading');\r\n\t\t\t\t}\r\n\t\t\t}, 50);\r\n\t\t}\r\n\r\n\t\tif (n == 3) {\r\n\t\t\tvar date = $('.step .membersip-card.checked .more-info .info-action input').val();\r\n\r\n\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = date.split('/');\r\n\t\t\t\tvar newDate = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t\t$scope.cardStartDate = new Date(newDate);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$scope.cardStartDate = new Date(date);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: $scope.Model.Namespace,\r\n\t\t\t\tGymID: $scope.Model.GymId,\r\n\t\t\t\tClientID: $scope.clientInfo.ClientID,\r\n\t\t\t\tServiceID: $scope.orderCardId,\r\n\t\t\t\torderType: $scope.orderType,\r\n\t\t\t\tDateStart: $scope.cardStartDate,\r\n\t\t\t\tPromoCode: $scope.PromoCode,\r\n\t\t\t\tDiscount: $scope.Discount\r\n\t\t\t}\r\n\t\t\tif ($scope.orderCardId == undefined && !$scope.orderType == \"PAY\")\r\n\t\t\t\tdataObject.ServiceID = $scope.serviceDefinitionId;\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/Membership/Terms',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\t$scope.orderCardPrice = data.Price;\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\r\n\t\t\tif ( $scope.Model.Namespace == 'athletic') {\r\n\t\t\t\tfbq('track', 'AddToCart');\r\n\t\t\t}\r\n\r\n\t\t\tvar numItems = $('.payment-method .section.active').length\r\n\r\n\t\t\tif ( numItems == 1 ) {\r\n\t\t\t\t$('.payment-method .section.active .section-title input').trigger('click');\r\n\t\t\t\t$scope.mainPaymentWay = 'epay';\r\n\t\t\t\t$scope.$apply();\r\n\t\t\t}\r\n\r\n\t\t\t// $('.payment-method .section')\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t// Get Gyms\r\n\t$scope.getGyms = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: $scope.Model.Namespace\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/GetGyms',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.membershipGyms = data;\r\n\r\n\t\t\tif ($scope.membershipGyms.length == 1) {\r\n\t\t\t\t$scope.getCards($scope.membershipGyms[0].GymID);\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getGyms();\r\n\r\n\r\n\t$('.tooltip i').on('click', function () {\r\n\t\t$(this).parent('.tooltip').toggleClass('show');\r\n\t})\r\n\r\n\t$scope.goCheckout = function () {\r\n\t\tvar self = $(this);\r\n\t}\r\n\r\n\t// Get Cards\r\n\t$scope.getCards = function (id) {\r\n\t\t$('body').removeClass('loaded');\r\n\t\t$scope.gymZoneId = id;\r\n\t\tvar result = $scope.membershipGyms.filter(function (obj) {\r\n\t\t\treturn obj.GymID == $scope.gymZoneId;\r\n\t\t});\r\n\r\n\t\t$scope.gymZoneName = result[0].GymName;\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: $scope.Model.Namespace,\r\n\t\t\tGymID: $scope.gymZoneId\r\n\t\t}\r\n\t\t\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/GetCards',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar data = data;\r\n\t\t\t$scope.membershipCards = data;\r\n\t\t\t$scope.changeStep(2);\r\n\t\t\t$scope.hasRecurring = false;\r\n\r\n\t\t\t$('body').addClass('loaded');\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t// $scope.getCards();\r\n\r\n\t// Get Terms\r\n\tvar url = window.location.href;\r\n\tvar serviceId = url.split('ServiceID=');\r\n\t$scope.clientInfo = client;\r\n\r\n\tfunction getTermsForMembership() {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: $scope.Model.Namespace,\r\n\t\t\tGymID: $scope.Model.GymId,\r\n\t\t\tClientID: $scope.clientInfo.ClientID,\r\n\t\t\tServiceID: $scope.serviceRealID,\r\n\t\t\torderType: $scope.orderType,\r\n\t\t\tDiscount: $scope.Discount\r\n\t\t}\r\n\t\tif ($scope.orderCardId == undefined && !$scope.orderType == \"PAY\" && dataObject.ServiceID != undefined)\r\n\t\t\tdataObject.ServiceID = $scope.serviceDefinitionId;\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/Terms',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.membershipTerms = data;\r\n\t\t\t$scope.orderCardPrice = data.Price;\r\n\r\n\t\t\tif ($scope.membershipTerms == 'unactive service') {\r\n\t\t\t\t$('.invalid-card').addClass('show');\r\n\t\t\t} else {\r\n\t\t\t\t$('.invalid-card').removeClass('show');\r\n\t\t\t\t$(\"#membershipStartDate\").datepicker('option', 'minDate', new Date($scope.membershipTerms.MinimalStartingDate));\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tif (serviceId.length > 1) {\r\n\t\tvar serviceVarId = serviceId[1].split('&');\r\n\t\t$scope.serviceRealID = serviceVarId[0];\r\n\t\t$scope.orderType = serviceVarId[2].split('=')[1];\r\n\t\t$scope.serviceDefinitionId = serviceVarId[1].split('=')[1];\r\n\r\n\t\tgetTermsForMembership();\r\n\t\t// $scope.getTerms = function () {\r\n\t\t// }\r\n\r\n\t\t// $scope.getTerms();\r\n\t}\r\n\r\n\t// Get Settings\r\n\t$scope.getSettings = function () {\r\n\t\tvar dataObject = {\r\n\t\t Namespace: $scope.Model.Namespace,\r\n\t\t GymID: $scope.DivisionID\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/GetSettings',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.membershipSettings = data;\r\n\t\t\t$scope.countriesSettings = data.Countries;\r\n\r\n\t\t\tif ($scope.membershipSettings.Culture == 'bg-BG') {\r\n\t\t\t\t$scope.currency = 'лв.';\r\n\t\t\t}else if($scope.membershipSettings.Culture.includes('-ES')){\r\n\t\t\t\t$scope.currency = 'eur';\r\n\t\t\t}else {\r\n\t\t\t\t$scope.currency = '$';\r\n\t\t\t}\r\n\r\n\t\t\tif (customCurrency) {\r\n\t\t\t\t$scope.currency = customCurrency;\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getSettings();\r\n\r\n\t$scope.getPaymentMethods = function () {\r\n\t if (client != null && client != undefined) {\r\n\t var dataObject = {\r\n\t Namespace: $scope.Model.Namespace,\r\n\t GymID: $scope.Model.GymId,\r\n\t ClientId: $scope.clientInfo.ClientID\r\n\t }\r\n\r\n\t $http({\r\n\t method: 'POST',\r\n\t url: '/Membership/GetPaymentMethods',\r\n\t data: dataObject\r\n\t }).success(function (data) {\r\n\t $scope.clientPaymentCards = data;\r\n\t }).error(function () {\r\n\t });\r\n\t }\r\n\t}\r\n\r\n\t$scope.getPaymentMethods();\r\n\r\n\tfunction is_url(str)\r\n\t{\r\n\t regexp = /^(?:(?:https?|ftp):\\/\\/)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:\\/\\S*)?$/;\r\n\t regexp1 = /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/;\r\n\t if (regexp1.test(str))\r\n\t {\r\n\t return true;\r\n\t }\r\n\t else\r\n\t {\r\n\t return false;\r\n\t }\r\n\t}\r\n\r\n\t// .\r\n\tvar paymentMethodsArray = new Array(\"\", \"paylogin\", \"credit_paydirect\", \"PaySafe Card\", \"PAYSAFE SEPA\", \"PAYSAFE ACH\", \"PAYSAFE EFT\", \"PAYSAFE BACKS\", \"Fibank\", \"STRIPE CARD\");\r\n\t$scope.placeOrder = function () {\r\n\t\t$scope.loading = true;\r\n\t\t$('.steps-body .step-actions button.pay').addClass('disabled');\r\n\t\tvar gymId = $scope.Model.GymId;\r\n\t\tvar token = ''\r\n\t\tvar paymentProvider = paymentMethodsArray[$scope.paymentway];\r\n\t\t$scope.paymentError = false;\r\n\t\t$scope.paymentReccuringError = false;\r\n\r\n\t\tif (paymentProvider == 'PaySafe Card') {\r\n\t\t\tvar token = $scope.tokenPaySafe;\r\n\t\t}\r\n\r\n\t\tif (paymentProvider == 'STRIPE CARD') {\r\n\t\t var token = $scope.tokenStripe.id;\r\n\t\t}\r\n\r\n\t\tif (!$scope.newCard) {\r\n\t\t\tvar price = $scope.membershipTerms.Price;\r\n\r\n\t\t\tif ($scope.membershipTerms.CanChooseDate != false) {\r\n\t\t\t\tvar startDate = moment($scope.membershipStartDate);\r\n\t\t\t} else {\r\n\t\t\t\tvar startDate = $scope.membershipTerms.MinimalStartingDate;\r\n\t\t\t}\r\n\r\n\t\t\tvar startDate = new Date(startDate);\r\n\t\t} else {\r\n\t\t\tvar price = $scope.orderCardPrice;\r\n\t\t\tvar serviceRealId = $scope.orderCardId;\r\n\t\t\tvar startDate = $scope.cardStartDate;\r\n\t\t\tgymId = $scope.gymZoneId;\r\n\t\t}\r\n\r\n\t\tvar orderType = $scope.orderType;\r\n\r\n\t\tif (paymentProvider == 'Fibank') {\r\n\t\t\torderType = 'INITIAL PAYMENT';\r\n\t\t}\r\n\r\n\t\t// Brand New Membership\r\n\t\tvar dateObjectOrder = { paymentMethodID: $scope.paymentway, paymentProvider: paymentProvider, serviceName: $scope.orderCardName, serviceDefinitionID: serviceRealId, clientID: $scope.clientInfo.ClientID, cardId: $scope.clientInfo.CardID, price: price, dateStart: startDate, token: token, orderType: orderType, AccountHolderName: $scope.accountHolderName, AccountNumber: $scope.accountNumber, RoutingNumber: $scope.routingNumber, TransitNumber: $scope.transitNumber, InstitutionID: $scope.institutionID, Iban: $scope.iban, Bic: $scope.bic, AccountNumber: $scope.accountNumber, SortCode: $scope.sortCode, RecipentName: $scope.recipentName, Telephone: $scope.telephone, Country: $scope.country, State: $scope.state, Zip: $scope.zip, City: $scope.city, Street: $scope.street, PromoCode: $scope.PromoCode }\r\n\r\n\t\t// Old Membership\r\n\t\tif ($scope.serviceRealID > 0 && ($scope.orderType == \"RENEW\" || $scope.orderType == \"PAY\")) {\r\n\t\t\tdateObjectOrder = { paymentMethodID: $scope.paymentway, paymentProvider: paymentProvider, serviceName: $scope.membershipTerms.ServiceName, serviceDefinitionID: $scope.serviceDefinitionId, clientID: $scope.clientInfo.ClientID, cardId: $scope.clientInfo.CardID, price: price, dateStart: startDate, token: token, orderType: $scope.orderType, serviceID: $scope.serviceRealID, AccountNumber: $scope.accountNumber, RoutingNumber: $scope.routingNumber, TransitNumber: $scope.transitNumber, InstitutionID: $scope.institutionID, Iban: $scope.iban, Bic: $scope.bic, AccountNumber: $scope.accountNumber, SortCode: $scope.sortCode, RecipentName: $scope.recipentName, Telephone: $scope.telephone, Country: $scope.country, State: $scope.state, Zip: $scope.zip, City: $scope.city, Street: $scope.street, PromoCode: $scope.PromoCode }\r\n\t\t}\r\n\r\n\t\tif ($scope.paymentway == 'usedcardStripe') {\r\n\t\t\tdateObjectOrder.paymentMethodID = 9;\r\n\t\t\tdateObjectOrder.paymentProvider = 'STRIPE CARD';\r\n\t\t\tdateObjectOrder.selectedPaymentMethodID = $scope.preChoosedCardStripe;\r\n\t\t}\r\n\r\n\t\tif ($scope.paymentway == 'usedcardPaysafe') {\r\n\t\t\tdateObjectOrder.paymentMethodID = 3;\r\n\t\t\tdateObjectOrder.paymentProvider = 'PaySafe Card';\r\n\t\t\tdateObjectOrder.selectedPaymentMethodID = $scope.preChoosedCardPaysafe;\r\n\t\t}\r\n\r\n\t\tif ($scope.paymentway == 'usedcardFibank') {\r\n\t\t\tdateObjectOrder.paymentMethodID = 8;\r\n\t\t\tdateObjectOrder.paymentProvider = 'Fibank';\r\n\t\t\tdateObjectOrder.selectedPaymentMethodID = $scope.preChoosedCardFibank;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: $scope.Model.Namespace,\r\n\t\t\tGymID: gymId,\r\n\t\t\torder: dateObjectOrder\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/PlaceOrder',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar currentHref = window.location;\r\n\r\n\t\t\tif ( data == 'succeeded'){\r\n\t\t\t\tvar href = currentHref.origin + '/membership/SuccessPurchase?nameSpace=' + $scope.Model.Namespace + '&gymId=' + gymId;\r\n\t\t\t\tif ( isMobile == true ) {\r\n\t\t\t\t\thref += '&isMobile=true';\r\n\t\t\t\t}\r\n\t\t\t\twindow.location.replace(href);\r\n\t\t\t}else if ( data == 'Recurring service exist!' ){\r\n\t\t\t\t$scope.paymentReccuringError = true;\r\n\t\t\t}else if ( data == 'error' || data == 'Object reference not set to an instance of an object.' || data == 'Sequence contains more than one element' || data == 'Your card was declined.' || !is_url(data) ){\r\n\t\t\t\t$scope.paymentError = true;\r\n\t\t\t}else{\r\n\t\t\t\t$('.steps-body .step-actions button.pay').removeClass('disabled');\r\n\t\t\t\twindow.location.replace(data);\r\n\t\t\t}\r\n\r\n\t\t\t$scope.loading = false;\r\n\t\t}).error(function () {\r\n\t\t\t$('.steps-body .step-actions button.pay').removeClass('disabled');\r\n\t\t\t$scope.loading = false;\r\n\t\t});\r\n\r\n\t\t// PlaceOrder\r\n\t}\r\n\r\n\t$scope.$watch('paymentway', function (v) {\r\n\t\tvar paymentWayValue = v;\r\n\r\n\t\tif (paymentWayValue == '9') {\r\n\r\n\t\t\t$('.step-actions .stripe-button').addClass('show');\r\n\t\t\t// Create a Stripe client.\r\n\t\t\tvar stripe = Stripe($scope.membershipSettings.StripePublishKey);\r\n\t\t\t// Create an instance of Elements.\r\n\t\t\tvar elements = stripe.elements();\r\n\t\t\t// Custom styling can be passed to options when creating an Element.\r\n\t\t\t// (Note that this demo uses a wider set of styles than the guide below.)\r\n\t\t\tvar style = {\r\n\t\t\t base: {\r\n\t\t\t\tcolor: '#32325d',\r\n\t\t\t\tlineHeight: '18px',\r\n\t\t\t\tfontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\r\n\t\t\t\tfontSmoothing: 'antialiased',\r\n\t\t\t\tfontSize: '16px',\r\n\t\t\t\t'::placeholder': {\r\n\t\t\t\t color: '#aab7c4'\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t invalid: {\r\n\t\t\t\tcolor: '#fa755a',\r\n\t\t\t\ticonColor: '#fa755a'\r\n\t\t\t }\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Create an instance of the card Element.\r\n\t\t\tvar card = elements.create('card', {style: style});\r\n\r\n\t\t\t// Add an instance of the card Element into the `card-element`
.\r\n\t\t\tcard.mount('#card-element');\r\n\r\n\t\t\t// Handle real-time validation errors from the card Element.\r\n\t\t\tcard.addEventListener('change', function(event) {\r\n\t\t\t\tvar displayError = document.getElementById('card-errors');\r\n\t\t\t \tif (event.error) {\r\n\t\t\t\t\tdisplayError.textContent = event.error.message;\r\n\t\t\t \t} else {\r\n\t\t\t\t\tdisplayError.textContent = '';\r\n\t\t\t \t}\r\n\t\t\t});\r\n\r\n\t\t\t// Handle form submission.\r\n\t\t\tvar form = document.getElementById('payment-form');\r\n\r\n\t\t\t$('.stripe-button').on('click', function(e){\r\n\t\t\t e.preventDefault();\r\n\t\t\t if ($scope.loading == false || $scope.loading == undefined) {\r\n\t\t\t $scope.loading = true;\r\n\t\t\t stripe.createToken(card).then(function (result) {\r\n\t\t\t if (result.error) {\r\n\t\t\t // Inform the user if there was an error.\r\n\t\t\t var errorElement = document.getElementById('card-errors');\r\n\t\t\t errorElement.textContent = result.error.message;\r\n\t\t\t $scope.loading = false;\r\n\t\t\t } else {\r\n\t\t\t // Send the token to your server.\r\n\t\t\t $scope.tokenStripe = result.token\r\n\t\t\t $scope.placeOrder();\r\n\t\t\t }\r\n\t\t\t });\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\t$('.step-actions .stripe-button').removeClass('show');\r\n\t\t}\r\n\r\n\t\tif (paymentWayValue == '3') {\r\n\t\t\t$('.step-actions .paysafe-button').addClass('show');\r\n\t\t\tif (!$scope.paySafeInit) {\r\n\t\t\t\tif ($scope.membershipSettings.PaySafeFrontEndKey != '') {\r\n\t\t\t\t\t$scope.paySafeInit = true;\r\n\t\t\t\t\t// Base64 encoded version the Single-use Token API key.\r\n\t\t\t\t\t// Create the key below by concatenating the API username and password\r\n\t\t\t\t\t// separated by a colon and Base64-encoding the result\r\n\t\t\t\t\tvar apiKey = $scope.membershipSettings.PaySafeFrontEndKey;\r\n\t\t\t\t\tvar Enviroment = \"TEST\";\r\n\t\t\t\t\tif ($scope.membershipSettings.PaySafeLive == true)\r\n\t\t\t\t\t\tEnviroment = \"LIVE\";\r\n\t\t\t\t\tvar options = {\r\n\r\n\t\t\t\t\t\t// select the Paysafe test / sandbox environment\r\n\t\t\t\t\t\tenvironment: Enviroment,\r\n\r\n\t\t\t\t\t\t// set the CSS selectors to identify the payment field divs above\r\n\t\t\t\t\t\t// set the placeholder text to display in these fields\r\n\t\t\t\t\t\tfields: {\r\n\t\t\t\t\t\t\tcardNumber: {\r\n\t\t\t\t\t\t\t\tselector: \"#cardNumber\",\r\n\t\t\t\t\t\t\t\tplaceholder: \"Card number\"\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\texpiryDate: {\r\n\t\t\t\t\t\t\t\tselector: \"#expiryDate\",\r\n\t\t\t\t\t\t\t\tplaceholder: \"Expiry date\"\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tcvv: {\r\n\t\t\t\t\t\t\t\tselector: \"#cvv\",\r\n\t\t\t\t\t\t\t\tplaceholder: \"CVV\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tpaysafe.fields.setup(apiKey, options, function (instance, error) {\r\n\t\t\t\t\t\t$('.step-actions .paysafe-button').on('click', function (event) {\r\n\t\t\t\t\t\t\tinstance.tokenize(function (instance, error, result) {\r\n\t\t\t\t\t\t\t\tif (error) {\r\n\t\t\t\t\t\t\t\t\talert(JSON.stringify(error));\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$scope.tokenPaySafe = result.token\r\n\t\t\t\t\t\t\t\t\t$scope.placeOrder();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$scope.paysafeinit = false;\r\n\t\t\t$('.step-actions .paysafe-button').removeClass('show');\r\n\t\t}\r\n\r\n\t\t$('#placeOrder input.inputField').val('');\r\n\t});\r\n\r\n\t$scope.$watch('mainPaymentWay', function (v) {\r\n\t\tvar paymentValue = v;\r\n\t\t$scope.paymentway = '';\r\n\t\t$('.payment-method .sections .section-title input[value=\"' + paymentValue + '\"]')\r\n\t\t\t.parents('.section')\r\n\t\t\t.addClass('active')\r\n\t\t\t.siblings('.active')\r\n\t\t\t.removeClass('active');\r\n\t});\r\n\r\n\t$(window).on('load', function () {\r\n\t\tif (selectedGym != null) {\r\n\t\t\t$('.membershipbuy-wrapper').addClass('loading');\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tvar id = Number(selectedGym);\r\n\t\t\t\t$scope.getCards(id);\r\n\t\t\t}, 500);\r\n\t\t}\r\n\t});\r\n\r\n}]);\r\n\r\n\r\nmembershipApp.controller('ScheduleController', ['$scope', '$http', '$timeout', '$translate', '$filter', '$compile', function ($scope, $http, $timeout, $translate, $filter, $compile) {\r\n\r\n\t$scope.text = 'me@example.com';\r\n\t$scope.emailFormat = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\n\t// Default variables\r\n\r\n\tvar now = new Date();\r\n\tvar dd = now.getDate();\r\n\tvar mm = now.getMonth() + 1;\r\n\tvar yyyy = now.getFullYear();\r\n\tvar nextYear = now.getFullYear() + 1;\r\n\r\n\t$scope.visitArea = 0;\r\n\t$scope.visitInstructor = 0;\r\n\t$scope.nameInstructor;\r\n\t$scope.choosenInstructor = false;\r\n\t$scope.filterActivity = filterActivity;\r\n\t$scope.nameActivity;\r\n\t$scope.choosenActivity = false;\r\n\t$scope.modalLoading = false;\r\n\t$scope.activityId = null;\r\n\t$scope.smodal = {paymentMethod: null, email: ''};\r\n\t// if ( lang == null ){\r\n\t// \tlang = 'en';\r\n\t// }\r\n\r\n\r\n\tif ( lang ){\r\n\t\t$translate.use(lang);\r\n\t}else{\r\n\t\tlang = $translate.proposedLanguage() || $translate.use();\r\n\t}\r\n\r\n\t$scope.lang = lang;\r\n\r\n\t$scope.paymentMethods = new Array(\"OnSide\", \"Membership\", \"Sodexo\", \"MultiSport\", \"Voucher\", \"EPay\", \"PaySafe\");\r\n\r\n\tif (settings) {\r\n\t\t$scope.classSettings = settings\r\n\t}\r\n\r\n\tif (dd < 10) {\r\n\t\tdd = '0' + dd\r\n\t}\r\n\r\n\tif (mm < 10) {\r\n\t\tmm = '0' + mm\r\n\t}\r\n\r\n\ttoday = mm + '/' + dd + '/' + yyyy;\r\n\ttodayInOneYear = mm + '/' + dd + '/' + nextYear;\r\n\r\n\tvar schedule_from = $(\"#schedule_from\");\r\n\tvar schedule_to = $(\"#schedule_to\");\r\n\t$scope.scheduleStartDate = today;\r\n\t$scope.scheduleEndDate = todayInOneYear;\r\n\r\n\tif ( $scope.mobileApp ){\r\n\t\t$scope.scheduleStartDate = new Date(today);\r\n\t\t$scope.scheduleEndDate = new Date(todayInOneYear);\r\n\t}\r\n\r\n\tfunction findElement(arr, propName, propValue) {\r\n\t\tfor (var i = 0; i < arr.length; i++)\r\n\t\t\tif (arr[i][propName] == propValue)\r\n\t\t\t\treturn arr[i];\r\n\t\t// will return undefined if not found; you could return a default instead\r\n\t}\r\n\r\n\r\n\tif (clientModel) {\r\n\t\t$scope.client = clientModel.Client;\r\n\t}\r\n\r\n\t$scope.getClientServices = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tEmail: $scope.client.Email,\r\n\t\t\tdatestart: $scope.scheduleStartDate,\r\n\t\t\tdateend: $scope.scheduleEndDate\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl:'/ScheduleV2/GetClientSchedule',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tconsole.log(data);\r\n\t\t\tif ( data.length == 0 ) {\r\n\t\t\t\t$scope.noEvents = true;\r\n\t\t\t\t$scope.clientSchedule = {};\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvar today = new Date();\r\n\t\t\t\t$scope.testData = [];\r\n\t\t\t\tangular.copy(data, $scope.testData);\r\n\t\t\t\tfor (var i = 0; i < $scope.testData.length; ++i) {\r\n\t\t\t\t\tvar DateNewDate = new Date($scope.testData[i]['Date']);\r\n\t\t\t\t\tvar DateNewDateEnd = new Date($scope.testData[i]['DateEnd']);\r\n\r\n\t\t\t\t\tvar convertedDate = DateNewDate.toString();\r\n\t\t\t\t\tvar convertedDateEnd = DateNewDateEnd.toString();\r\n\t\t\t\t\tvar x = findElement($scope.schedule_areas, \"AreaID\", $scope.testData[i]['AreaID']);\r\n\r\n\t\t\t\t\t$scope.testData[i]['NewDate'] = new Date(convertedDate);\r\n\t\t\t\t\t$scope.testData[i]['NewDateEnd'] = new Date(convertedDateEnd);\r\n\t\t\t\t\tif (x != undefined && x['Name'] != undefined)\r\n\t\t\t\t\t $scope.testData[i]['AreaName'] = x['Name'];\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$scope.testData = $scope.convertTo($scope.testData, 'Date', true);\r\n\r\n\t\t\t\t$scope.clientSchedule = {};\r\n\t\t\t\tObject.keys($scope.testData).sort().forEach(function (key) {\r\n\t\t\t\t\t$scope.clientSchedule[key] = $scope.testData[key];\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.beforLeaveEvent = function(visitDate, visitId) {\r\n\t\t$scope.currentVisitDate = visitDate;\r\n\t\t$scope.currentVisitID = visitId;\r\n\t\t$('#shcedule-popup').addClass('show');\r\n\t\t$('#shcedule-popup .popup').addClass('show');\r\n\t}\r\n\r\n\t$scope.leaveEvent = function () {\r\n\t\tvar now = new Date();\r\n\r\n\t\tvar dateBeforeCancel = new Date($scope.currentVisitDate);\r\n\t\tdateBeforeCancel.setHours(dateBeforeCancel.getHours() - $scope.classSettings.HoursBeforeCanceling);\r\n\r\n\t\tif (now < dateBeforeCancel) {\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: gymid,\r\n\t\t\t\tId: $scope.currentVisitID,\r\n\t\t\t\tClientID: $scope.client.ClientID\r\n\t\t\t}\r\n\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/api/private/leaveEvent',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\tif (data == true) {\r\n\t\t\t\t\t$('#shcedule-popup .popup-body').addClass('show-success');\r\n\t\t\t\t\t$scope.getClientServices();\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$('#shcedule-popup .popup-body').addClass('show-error');\r\n\t\t\t\t}\r\n\t\t\t}).error(function () {\r\n\t\t\t\t$('#shcedule-popup .popup-body').addClass('show-error');\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$('#shcedule-popup .popup-body').addClass('show-error');\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.getEventsType = function(dgymID){\r\n\t\tif ( dgymID ) {\r\n\t\t\tgymid = dgymID;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetPublicEvents?nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.schedule_activities = data;\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\t$scope.getEventsType();\r\n \r\n\r\n\t// Get Schedule\r\n\r\n\t$scope.getSchedule = function (from, to, dgymID, dontUpdateActInstr) {\r\n\t\tvar updateActInstr = true;\r\n\r\n\t\tif ( dontUpdateActInstr != undefined ){\r\n\t\t\tupdateActInstr = false;\r\n\t\t}\r\n\r\n\t\tif ( dgymID ) {\r\n\t\t\tgymid = dgymID;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tGymID: gymid,\r\n\t\t\tNamespace: namespace,\r\n\t\t\tDateStart: $scope.scheduleStartDate,\r\n\t\t\tDateEnd: $scope.scheduleEndDate,\r\n\t\t\tAreaID: $scope.visitArea,\r\n\t\t\tInstructorID: $scope.visitInstructor,\r\n\t\t\tPrivate: true,\r\n\t\t\tPublicEventID: $scope.activityId\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/api/public/GetSchedule',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar today = new Date();\r\n\t\t\t$scope.testData = [];\r\n\t\t\tvar currentActivities = [];\r\n\t\t\tvar currentInstructors = [];\r\n\t\t\tangular.copy(data, $scope.testData);\r\n\t\t\tfor (var i = 0; i < $scope.testData.length; ++i) {\r\n\t\t\t\tvar DateNewDate = new Date($scope.testData[i]['Date']);\r\n\t\t\t\tvar DateNewDateEnd = new Date($scope.testData[i]['DateEnd']);\r\n\r\n\t\t\t\tvar convertedDate = DateNewDate.toString();\r\n\t\t\t\tvar convertedDateEnd = DateNewDateEnd.toString();\r\n\t\t\t\tvar x = findElement($scope.schedule_areas, \"AreaID\", $scope.testData[i]['AreaID']);\r\n\r\n\t\t\t\t$scope.testData[i]['NewDate'] = new Date(convertedDate);\r\n\t\t\t\t$scope.testData[i]['NewDateEnd'] = new Date(convertedDateEnd);\r\n\t\t\t\tif (x != undefined && x['Name'] != undefined)\r\n\t\t\t\t $scope.testData[i]['AreaName'] = x['Name'];\r\n\r\n\t\t\t\tvar testDateBeforeBooking = new Date(convertedDate);\r\n\t\t\t\ttestDateBeforeBooking.setHours(testDateBeforeBooking.getHours() - $scope.classSettings.HoursBeforeBooking);\r\n\t\t\t\t$scope.testData[i]['HoursBeforeBooking'] = testDateBeforeBooking;\r\n\r\n\t\t\t\tvar testDatedaysAheadBooking = new Date(convertedDate);\r\n\t\t\t\ttestDatedaysAheadBooking.setDate(testDatedaysAheadBooking.getDate() - $scope.classSettings.DaysAheadBooking);\r\n\r\n\t\t\t\tif (today >= testDatedaysAheadBooking || $scope.classSettings.DaysAheadBooking == 0) {\r\n\t\t\t\t\t$scope.testData[i]['AheadBooking'] = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$scope.testData[i]['AheadBooking'] = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( $scope.testData[i]['PeopleAttending'] >= $scope.testData[i]['MaxClients']) {\r\n\t\t\t\t\t$scope.testData[i]['FullCapacity'] = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.testData[i]['FullCapacity'] = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$scope.testData[i]['SlotsLeft'] = $scope.testData[i]['MaxClients'] - $scope.testData[i]['PeopleAttending'];\r\n\r\n\t\t\t\t// console.log($scope.testData[i]);\r\n\t\t\t\tif ( updateActInstr == true ){\r\n\t\t\t\t\tif ( !currentActivities.includes($scope.testData[i]['PublicEventID']) ) {\r\n\t\t\t\t\t\tcurrentActivities.push($scope.testData[i]['PublicEventID']);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( $scope.testData[i]['InstructorIDs'] != null ) {\r\n\t\t\t\t\tvar manageInstrucors = $scope.testData[i]['InstructorIDs'];\r\n\r\n\t\t\t\t\tif ( manageInstrucors.indexOf(',') > -1 ) {\r\n\t\t\t\t\t\tvar res = manageInstrucors.split(',');\r\n\r\n\t\t\t\t\t\tfor (var n = 0; n < res.length; n++) {\r\n\t\t\t\t\t\t\tif ( !currentInstructors.includes(res[n]) ) {\r\n\t\t\t\t\t\t\t\tcurrentInstructors.push(res[n]);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar result = $.grep($scope.schedule_instructors, function (e) { return e.Id == res[n] });\r\n\t\t\t\t\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t\t\t\t\tvar instructor = result[0].Name;\r\n\t\t\t\t\t\t\t\tif ( n > 0 ) {\r\n\t\t\t\t\t\t\t\t\tinstructor = ', ' + instructor;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t$scope.testData[i]['Instructors'] += instructor;\r\n\t\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\tif ( !currentInstructors.includes(manageInstrucors) && manageInstrucors != '00000000-0000-0000-0000-000000000000' && manageInstrucors != '' ) {\r\n\t\t\t\t\t\t\tcurrentInstructors.push(manageInstrucors);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result = $.grep($scope.schedule_instructors, function (e) { return e.Id == manageInstrucors });\r\n\t\t\t\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t\t\t\t$scope.testData[i]['Instructors'] = result[0].Name;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( updateActInstr == true ){\r\n\t\t\t\tgetCurrentActivities(currentActivities);\r\n\t\t\t\tgetCurrentInstructors(currentInstructors);\r\n\t\t\t}\r\n\r\n\t\t\t$scope.originalData = $scope.testData;\r\n\t\t\t$scope.testData = $scope.convertTo($scope.testData, 'Date', true);\r\n\r\n\t\t\t$scope.Schedule = {};\r\n\t\t\tObject.keys($scope.testData).sort().forEach(function (key) {\r\n\t\t\t\t$scope.Schedule[key] = $scope.testData[key];\r\n\t\t\t});\r\n\r\n\t\t\t$('body').addClass('loaded-body');\r\n\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getCurrentActivities(array){\r\n\t\t$scope.current_activities = [];\r\n\r\n\t\tfor (var i = 0; i < array.length; i++) {\r\n\t\t\tvar activity = array[i];\r\n\t\t\tvar result = $.grep($scope.schedule_activities, function (e) { return e.Id == activity });\r\n\r\n\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t$scope.current_activities.push(result[0]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getCurrentInstructors(array){\r\n\t\t$scope.current_instructors = [];\r\n\r\n\t\tfor (var i = 0; i < array.length; i++) {\r\n\t\t\tvar instructor = array[i];\r\n\t\t\tvar result = $.grep($scope.schedule_instructors, function (e) { return e.Id == instructor });\r\n\r\n\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t$scope.current_instructors.push(result[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconsole.log($scope.current_instructors);\r\n\t}\r\n\r\n\t$scope.convertTo = function (arr, key, dayWise) {\r\n\t\tvar groups = {};\r\n\t\tfor (var i = 0; l = arr.length, i < l; i++) {\r\n\t\t\tvar newDateLocal = new Date(arr[i][key]).toISOString().slice(0, 10);\r\n\t\t\t// console.log(newDateLocal);\r\n\r\n\t\t\tarr[i]['DateLocal'] = new Date(arr[i][key]).toISOString().slice(0, 10);\r\n\r\n\t\t\tgroups[arr[i]['DateLocal']] = groups[arr[i]['DateLocal']] || [];\r\n\t\t\tgroups[arr[i]['DateLocal']].push(arr[i]);\r\n\t\t}\r\n\t\treturn groups;\r\n\t};\r\n\r\n\t$scope.updateActivity = function (activityId) {\r\n\t\t$('body').removeClass('loaded-body');\r\n\t\t$scope.activityId = activityId;\r\n\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, gymid, 'dontUpdateActInstr');\r\n\t\tif (activityId != null) {\r\n\t\t\tvar x = findElement($scope.schedule_activities, \"Id\", activityId);\r\n\r\n\t\t\t$scope.choosenActivity = true;\r\n\t\t\t$scope.nameActivity = x['Name'];\r\n\t\t} else {\r\n\t\t\t$scope.choosenActivity = false;\r\n\t\t}\r\n\r\n\t\t$('.schedule-wrapper .filter-section .filter-col-activities .dd').removeClass('show');\r\n\t}\r\n\r\n\r\n\t// Get Areas\r\n\r\n\t$scope.getAreas = function (gymid, allAreas) {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid,\r\n\t\t\tAllAreas: false\r\n\t\t}\r\n\r\n\t\tif ( allAreas ) {\r\n\t\t\tdataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymId: gymid,\r\n\t\t\t\tAllAreas: true\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetAreas?AllAreas=' + allAreas + '&nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.schedule_areas = data;\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.updateAreaId = function (id, gymID) {\r\n\t\t$('body').removeClass('loaded-body');\r\n\t\t$('.filter-col-activities input:checked').prop('checked', false);\r\n\t\t$scope.choosenActivity = false;\r\n\t\t$scope.scheduleActivity = null;\r\n\t\t$scope.activityId = null;\r\n\t\t$('.filter-col-instructors input:checked').prop('checked', false);\r\n\t\t$scope.visitInstructor = 0;\r\n\t\t$scope.choosenInstructor = false;\r\n\t\t$scope.scheduleActivity = 'null';\r\n\t\t$scope.scheduleInstructor = '0';\r\n\t\t$scope.visitArea = id;\r\n\t\tif ( gymID ) {\r\n\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, gymID);\r\n\t\t}else{\r\n\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate);\r\n\t\t}\r\n\t}\r\n\r\n\t// Get Instructors\r\n\t$scope.getInstructors = function (gymid) {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetInstructors?nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.schedule_instructors = data;\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t$(window).on('load', function () {\r\n\t\tsetTimeout(function () {\r\n\t\t\tif ($scope.membershipGyms.length > 1 && $('.schedule-wrapper-main').length) {\r\n\t\t\t\t$('.schedule-wrapper-main').addClass('loading');\r\n\t\t\t\t$scope.getAreas(gymid, false);\r\n\t\t\t} else {\r\n\t\t\t\t$scope.getAreas(gymid, true);\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$scope.getSchedule(today, todayInOneYear, gymid);\r\n\t\t\t\t\t$scope.getClientServices();\r\n\t\t\t\t}, 100);\r\n\t\t\t\t$scope.getInstructors(gymid);\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t})\r\n\r\n\t$scope.changeScheduleZone = function () {\r\n\t\tvar id = $scope.scheduleZone;\r\n\t\tvar x = findElement($scope.membershipGyms, \"GymID\", id);\r\n\t\t$scope.scheduleZoneName = x.GymName;\r\n\t\t$scope.choosenActivity = false;\r\n\t\t$scope.scheduleActivity = null;\r\n\t\t$scope.activityId = null\r\n\r\n\t\t$('.filter-col-instructors input:checked').prop('checked', false);\r\n\t\t$scope.choosenInstructor = false;\r\n\t\t$scope.visitInstructor = 0;\r\n\r\n\t\t$scope.scheduleActivity = 'null';\r\n\t\t$scope.scheduleInstructor = '0';\r\n\t\t$scope.scheduleArea = '0';\r\n\r\n\t\t$scope.getAreas(id, false);\r\n\t\t$scope.getInstructors(id);\r\n\t\t$scope.getSettings(id);\r\n\t\t$scope.getEventsType(id);\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, id);\r\n\r\n\t\t\tif (days != null) {\r\n\t\t\t\t$('.schedule-list').addClass('hide');\r\n\t\t\t\tfor (var i = 0; i < days; i++) {\r\n\t\t\t\t\t$('.schedule-list .list-item').eq(i).addClass('show');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$('.schedule-wrapper').removeClass('loading');\r\n\t\t}, 500);\r\n\r\n\t}\r\n\r\n\t$scope.getSettings = function (id) {\r\n\t\tvar dataObject = {\r\n\t\t Namespace: namespace,\r\n\t\t GymID: id\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/ScheduleV2/GetSettings',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.classSettings = data;\r\n\r\n\t\t\t$scope.showCapacity = data.ShowCapacityCustomersPortal;\r\n\t\t\t$scope.showInstructor = data.ShowInstructorCustomersPortal;\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.updateInstructorId = function (id) {\r\n\t\t$scope.visitInstructor = id;\r\n\r\n\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, gymid, 'dontUpdateActInstr');\r\n\r\n\t\tif (id != '0') {\r\n\t\t\tvar x = findElement($scope.schedule_instructors, \"Id\", id);\r\n\r\n\t\t\t$scope.choosenInstructor = true;\r\n\t\t\t$scope.nameInstructor = x['Name'];\r\n\t\t} else {\r\n\t\t\t$scope.choosenInstructor = false;\r\n\t\t}\r\n\r\n\t\t$('.schedule-wrapper .filter-section .dd').removeClass('show');\r\n\t}\r\n\r\n\t$scope.updateVisitProduct = function(id){\r\n\t\tif ( id != '-1') {\r\n\t\t\tvar result = $.grep($scope.visitProducts, function (e) { return e.ProductID == id });\r\n\t\t\t$scope.productId = id;\r\n\t\t\t$scope.productName = result[0].ProductName;\r\n\t\t}else{\r\n\t\t\t$scope.productId = '-1';\r\n\t\t\t$scope.productName = 'Own equipment'\r\n\t\t}\r\n\t}\r\n\r\n\t// Join Event\r\n\r\n\tfunction paymentChange(){\r\n\t\tif ($scope.smodal.paymentMethod == '7') {\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: gymid,\r\n\t\t\t\tid: $scope.PublicEventID,\r\n\t\t\t}\r\n\t\t \r\n\t\t $http({\r\n\t\t method: 'GET',\r\n\t\t url: '/api/private/GetPublicEventPrice?Namespace=' + namespace + '&GymID=' + gymid + '&id=' + $scope.PublicEventID,\r\n\t\t data: dataObject\r\n\t\t }).success(function (data) {\r\n\t\t $scope.modalPrice = data;\r\n\t\t }).error(function () {\r\n\t\t });\r\n\r\n\t\t\t$('.popup-wrapper .popup .stripe-button').addClass('show');\r\n\t\t\t// Create a Stripe client.\r\n\t\t\tvar stripe = Stripe($scope.classSettings.StripePublishKey);\r\n\t\t\t// Create an instance of Elements.\r\n\t\t\tvar elements = stripe.elements();\r\n\t\t\t// Custom styling can be passed to options when creating an Element.\r\n\t\t\t// (Note that this demo uses a wider set of styles than the guide below.)\r\n\t\t\tvar style = {\r\n\t\t\t base: {\r\n\t\t\t\tcolor: '#32325d',\r\n\t\t\t\tlineHeight: '18px',\r\n\t\t\t\tfontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\r\n\t\t\t\tfontSmoothing: 'antialiased',\r\n\t\t\t\tfontSize: '16px',\r\n\t\t\t\t'::placeholder': {\r\n\t\t\t\t color: '#aab7c4'\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t invalid: {\r\n\t\t\t\tcolor: '#fa755a',\r\n\t\t\t\ticonColor: '#fa755a'\r\n\t\t\t }\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Create an instance of the card Element.\r\n\t\t\tvar card = elements.create('card', {style: style});\r\n\r\n\t\t\t// Add an instance of the card Element into the `card-element`
.\r\n\t\t\tcard.mount('#card-element');\r\n\r\n\t\t\t// Handle real-time validation errors from the card Element.\r\n\t\t\tcard.addEventListener('change', function(event) {\r\n\t\t\t\tvar displayError = document.getElementById('card-errors');\r\n\t\t\t \tif (event.error) {\r\n\t\t\t\t\tdisplayError.textContent = event.error.message;\r\n\t\t\t \t} else {\r\n\t\t\t\t\tdisplayError.textContent = '';\r\n\t\t\t \t}\r\n\t\t\t});\r\n\r\n\t\t\t// Handle form submission.\r\n\t\t\tvar form = document.getElementById('payment-form');\r\n\r\n\t\t\t$('.stripe-button').on('click', function(e){\r\n\t\t\t e.preventDefault();\r\n\t\t\t if ($scope.loading == false || $scope.loading == undefined) {\r\n\t\t\t $scope.loading = true;\r\n\t\t\t stripe.createToken(card).then(function (result) {\r\n\t\t\t if (result.error) {\r\n\t\t\t // Inform the user if there was an error.\r\n\t\t\t var errorElement = document.getElementById('card-errors');\r\n\t\t\t errorElement.textContent = result.error.message;\r\n\t\t\t $scope.loading = false;\r\n\t\t\t } else {\r\n\t\t\t // Send the token to your server.\r\n\t\t\t $scope.token = result.token.id\r\n\t\t\t $scope.joinEvent();\r\n\t\t\t }\r\n\t\t\t });\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\t$('.popup-wrapper .popup .stripe-button').removeClass('show');\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.formLoaded = true;\r\n\tvar joinEventResponses = new Array('joinEventResponse1', 'joinEventResponse2', 'joinEventResponse3', 'joinEventResponse4', 'joinEventResponse5', 'joinEventResponse6', 'joinEventResponse7');\r\n\r\n\t$scope.joinEvent = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tId: $scope.modalVisit.ID,\r\n\t\t\tEmail: $scope.Client.Email,\r\n\t\t\tFirstName: $scope.Client.FirstName,\r\n\t\t\tLastName: $scope.Client.LastName,\r\n\t\t\tTelephone: $scope.Client.Telephone,\r\n\t\t\tDate: $scope.modalVisit.NewDate,\r\n\t\t\tVisitName: $scope.modalVisit.VisitName,\r\n\t\t\t// PaymentMethod: $scope.paymentMethod,\r\n\t\t\tPaymentMethod: 0,\r\n\t\t\tLanguage: $scope.currentLang,\r\n\t\t\tProductID: $scope.productId,\r\n\t\t\tProductName: $scope.productName\r\n\t\t}\r\n\r\n\t\tif ( $scope.smodal.paymentMethod == '7' ) {\r\n\t\t\tdataObject.PaymentMethod = 7;\r\n\t\t\tdataObject.Token = $scope.token;\r\n\t\t\tdataObject.Price = $scope.modalPrice;\r\n\t\t\tdataObject.PublicEventID = $scope.PublicEventID;\r\n\t\t}\r\n\r\n\t\tif ($scope.formLoaded = true) {\r\n\t\t $scope.formLoaded = false;\r\n\t\t $http({\r\n\t\t method: 'POST',\r\n\t\t url: '/api/private/JoinEvent',\r\n\t\t data: dataObject\r\n\t\t }).success(function (data) {\r\n\t\t $scope.loading = false;\r\n\t\t var responseI = data;\r\n\t\t $scope.joinEventResponse = joinEventResponses[responseI];\r\n\r\n\t\t $('#shcedule-popup .error-msg').removeClass('show');\r\n\t\t $('#shcedule-popup .success-msg').addClass('show');\r\n\r\n\t\t if (responseI == 0) {\r\n\t\t $('#shcedule-popup .success-msg').addClass('green');\r\n\t\t setTimeout(function() {\r\n\t\t \tif ( !$scope.formLoaded ) {\r\n\t\t \t\t$scope.closePopup();\r\n\t\t \t}\r\n\t\t }, 3000);\r\n\t\t }else{\r\n\t\t \t$scope.formLoaded = true;\r\n\t\t }\r\n\r\n\t\t if (responseI == 6) {\r\n\t\t $('#shcedule-popup .success-msg').addClass('red');\r\n\t\t }\r\n\r\n\t\t }).error(function () {\r\n\t\t $('#shcedule-popup .error-msg').addClass('show');\r\n\t\t $('#shcedule-popup .form-actions .button-join').addClass('disabled');\r\n\t\t $scope.formLoaded = true;\r\n\t\t $scope.loading = false;\r\n\t\t });\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.closePopup = function () {\r\n\t\t$('.popup-wrapper, #shcedule-popup .success-msg').removeClass('show');\r\n\t\t$scope.resetForm();\r\n\t\t$('#shcedule-popup .success-msg').removeClass('green');\r\n\t\t$('#shcedule-popup .form-actions .button-join .button').addClass('disabled');\r\n\t\t$scope.formLoaded = true;\r\n\t}\r\n\r\n\t$scope.resetForm = function () {\r\n\t\t$('#shcedule-popup .popup-body').find('input').val('');\r\n\t\t$('#shcedule-popup .dd .dd-head').html('');\r\n\t\t$('.shcedule-popup .form-field .dd-field input:checked').prop('checked', false);\r\n\t\t$('.popup-wrapper .popup .stripe-button').removeClass('show');\r\n\t\t$scope.smodal = {paymentMethod: null, email: ''};\r\n\t}\r\n\r\n\t$scope.validateForm = function(){\r\n\t\t$('#shcedule-popup .form-actions .button').removeClass('disabled');\r\n\t}\r\n\r\n\r\n\t// Join Modal\r\n\r\n\t$scope.joinModal = function (visitId) {\r\n\t\t$scope.modalLoading = true;\r\n\t\t$scope.visitProducts = [];\r\n\t\tvar result = $.grep($scope.originalData, function (e) { return e.ID == visitId; });\r\n\r\n\t\tif ( result.length > 0 ) {\r\n\t\t\t$scope.modalVisit = result[0];\r\n\t\t\t$scope.PublicEventID = result[0].PublicEventID;\r\n\r\n\t\t\tvar dayOfWeek = $filter('date')($scope.modalVisit.NewDate, 'EEEE');\r\n\t\t\tvar compiledeHTML = $compile(\"\" + dayOfWeek + \"\")($scope);\r\n\t\t\t$(\".dayofweekn\").html(compiledeHTML);\r\n\r\n\r\n\t\t\tvar now = new Date();\r\n\r\n\t\t\tif (now < $scope.modalVisit.HoursBeforeBooking) {\r\n\t\t\t\t$('#shcedule-popup').addClass('show');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tvar dataObject = {\r\n\t\t\t\t\t\tNamespace: namespace,\r\n\t\t\t\t\t\tGymID: gymid,\r\n\t\t\t\t\t\tID: visitId\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$http({\r\n\t\t\t\t method: 'GET',\r\n\t\t\t\t url: '/api/public/GetEqipment?nameSpace=' + namespace + '&gymId=' + gymid + '&ID=' + visitId,\r\n\t\t\t\t data: dataObject\r\n\t\t\t\t }).success(function (data) {\r\n\t\t\t\t $scope.visitProducts = data;\r\n\t\t\t\t $scope.modalLoading = false;\r\n\t\t\t\t }).error(function () {\r\n\t\t\t\t });\r\n\t\t\t\t\t$('#shcedule-popup .popup').addClass('show');\r\n\t\t\t\t\t$('#shcedule-popup .form-actions .button-join').removeClass('disabled');\r\n\t\t\t\t}, 10);\r\n\t\t\t} else {\r\n\t\t\t\t$('#shcedule-not-popup').addClass('show');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$('#shcedule-not-popup .popup').addClass('show');\r\n\t\t\t\t}, 10);\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t$scope.getAttendingClients = function(item){\r\n\r\n\t\tif(!item.AttendingClients){\r\n\t\t\t$scope.modalLoading = true;\r\n\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: gymid,\r\n\t\t\t\tScheduleID: item.ID,\r\n\t\t\t\tAreaID: item.AreaID\r\n\t\t\t}\r\n\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: '/api/private/GetAttendingClients?Namespace=' + namespace + '&GymID=' + gymid + '&ScheduleID=' + item.ID + '&AreaID=' + item.AreaID,\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\titem.attedingCleints = data;\r\n\r\n\t\t\t\t$scope.clientsData = item.attedingCleints;\r\n\t\t\t\t$('#clients-popup, #clients-popup .popup').addClass('show');\r\n\t\t\t\t$scope.modalLoading = false;\r\n\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\t$('#clients-popup, #clients-popup .popup').addClass('show');\r\n\t\t\t$scope.clientsData = item.AttendingClients\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t$('.popup-wrapper .close, .popup-wrapper .popup-overlay').on('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$('.popup-wrapper, #shcedule-popup .popup, #shcedule-popup .error-msg, #shcedule-popup .success-msg').removeClass('show');\r\n\t\t$('#shcedule-popup .popup-body').removeClass('show-success show-error');\r\n\t\t$scope.resetForm();\r\n\t})\r\n\r\n\t// Datepickers\r\n\t$scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\r\n\tschedule_from.datepicker({\r\n\t\tchangeMonth: true,\r\n\t\tnumberOfMonths: 2,\r\n\t\tminDate: 0,\r\n\t\tonSelect: function (dateText, inst) {\r\n\t\t\tvar date = dateText;\r\n\t\t\tschedule_to.datepicker(\"option\", \"minDate\", date);\r\n\r\n\r\n\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = date.split(\"/\");\r\n\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t}\r\n\r\n\t\t\t$scope.scheduleStartDate = date;\r\n\t\t}\r\n\t});\r\n\r\n\tschedule_to.datepicker({\r\n\t\tchangeMonth: true,\r\n\t\tnumberOfMonths: 2,\r\n\t\tonSelect: function (dateText, inst) {\r\n\t\t\tvar date = dateText;\r\n\t\t\tschedule_from.datepicker(\"option\", \"maxDate\", date);\r\n\r\n\t\t\tif ($scope.gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = date.split(\"/\");\r\n\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t}\r\n\r\n\t\t\tvar tomorrow = new Date(date);\r\n\t\t\ttomorrow.setDate(tomorrow.getDate() + 1);\r\n\r\n\r\n\t\t\t$scope.scheduleEndDate = tomorrow;\r\n\t\t}\r\n\t});\r\n\r\n\tif ($scope.currentLang == 'bg') {\r\n\t\t$('#schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['bg']);\r\n\t}else if($scope.currentLang == 'es' || $scope.currentLang == 'esc'){\r\n\t\t$('#schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['es']);\r\n\t}else{\r\n\t\t$('#schedule_to, #schedule_from').datepicker(\"option\", $.datepicker.regional['en']);\r\n\t}\r\n\r\n\tif ($scope.gym[0].Culture == 'en-US') {\r\n\t\t$('#schedule_to, #schedule_from').datepicker( \"option\", \"dateFormat\", \"mm/dd/yy\" );\r\n\t} else {\r\n\t\t$('#schedule_to, #schedule_from').datepicker( \"option\", \"dateFormat\", \"dd/mm/yy\" );\r\n\t}\r\n\r\n\r\n\tfunction getDate(element) {\r\n\t\tvar date;\r\n\t\ttry {\r\n\t\t\tdate = $.datepicker.parseDate(dateFormat, element.value);\r\n\t\t} catch (error) {\r\n\t\t\tdate = null;\r\n\t\t}\r\n\t\treturn date;\r\n\t}\r\n\r\n\r\n\t$(document).on('click', '.dd .dd-head', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$(this).parent('.dd').toggleClass('show');\r\n\t});\r\n\r\n\t$(document).click(function (e) {\r\n\t\tif ($(e.target).closest('.dd').length === 0 && $('.dd').is('.show')) {\r\n\t\t\t$('.dd').removeClass('show');\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on('click', '#shcedule-popup .dd-field', function () {\r\n\t\tvar content = $(this).find('label').html();\r\n\t\t$scope.paymentMethod = $(this).find('input').val();\r\n\t\t$('#shcedule-popup .dd-head').html(content);\r\n\t\t$('#shcedule-popup .dd').removeClass('show');\r\n\t\tpaymentChange();\r\n\t})\r\n\r\n\t$('.schedule-wrapper .filter-section .date-col i').on('click', function (e) {\r\n\t\t$(this).parent().find('input').datepicker('show');\r\n\t})\r\n\r\n\t$(window)\r\n\t.on('load', function(){\r\n\t\tresizeAndDatepicker();\r\n\t})\r\n\t.on('resize', function(){\r\n\t\tresizeAndDatepicker();\r\n\t})\r\n\r\n\t// Check Window Size and change datepicker options\r\n\tfunction resizeAndDatepicker(){\r\n\t\tvar windowWidth = $(window).width();\r\n\r\n\t\tif ( windowWidth <= 768 ) {\r\n\t\t\tschedule_from.datepicker(\"option\", \"numberOfMonths\", 1);\r\n\t\t\tschedule_to.datepicker(\"option\", \"numberOfMonths\", 1);\r\n\t\t}else{\r\n\t\t\tschedule_from.datepicker(\"option\", \"numberOfMonths\", 2);\r\n\t\t\tschedule_to.datepicker(\"option\", \"numberOfMonths\", 2);\r\n\t\t}\r\n\t}\r\n\r\n}])\r\n.directive('translateDateObject', ['$timeout', '$translate', function ($timeout, $translate) {\r\n\treturn {\r\n\t\tcontroller: function ($scope) {\r\n\t\t\treturn {};\r\n\t\t},\r\n\t\trequires: 'translateDateObject',\r\n\t\tlink: function (scope, element, attrs, thisController) {\r\n\r\n\t\t\t$timeout(function () {\r\n\r\n\t\t\t\tthisController.html = element[0].innerHTML;\r\n\r\n\t\t\t\t// CLEAN THE STRING TO GET A CLEAN NAME DAY\r\n\t\t\t\tvar content_temp1 = thisController.html.replace('', '');\r\n\t\t\t\tvar content_temp2 = content_temp1.replace('', '').toLowerCase();\r\n\r\n\t\t\t\tvar day_name = '';\r\n\r\n\t\t\t\tfor (var i = 0, len = content_temp2.length; i < len; i++) {\r\n\t\t\t\t\t// CHECK IF IS A CHAR\r\n\t\t\t\t\tif (content_temp2[i].match(/[a-z]/i)) {\r\n\t\t\t\t\t\tday_name += content_temp2[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// CHECK THE ACTIVE LANGUAGE\r\n\t\t\t\tvar lang = $translate.proposedLanguage() || $translate.use();\r\n\r\n\t\t\t\tif (lang == 'bg') {\r\n\t\t\t\t\t// ASSIGN A DIFFERENT TRANSLATION FOR EACH DAY\r\n\t\t\t\t\tswitch (day_name) {\r\n\t\t\t\t\t\tcase 'monday':\r\n\t\t\t\t\t\t\telement.html('Понеделник');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'tuesday':\r\n\t\t\t\t\t\t\telement.html('Вторник');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'wednesday':\r\n\t\t\t\t\t\t\telement.html('Сряда');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'thursday':\r\n\t\t\t\t\t\t\telement.html('Четвъртък');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'friday':\r\n\t\t\t\t\t\t\telement.html('Петък');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'saturday':\r\n\t\t\t\t\t\t\telement.html('Събота');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'sunday':\r\n\t\t\t\t\t\t\telement.html('Неделя');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(document).on('click', '.lang-nav li a', function () {\r\n\t\t\t\t\tvar lang = $(this).data('lang');\r\n\r\n\t\t\t\t\tif (lang == 'en') {\r\n\t\t\t\t\t\tswitch (day_name) {\r\n\t\t\t\t\t\t\tcase 'monday':\r\n\t\t\t\t\t\t\t\telement.html('Monday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'tuesday':\r\n\t\t\t\t\t\t\t\telement.html('Tuesday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'wednesday':\r\n\t\t\t\t\t\t\t\telement.html('Wednesday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'thursday':\r\n\t\t\t\t\t\t\t\telement.html('Thursday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'friday':\r\n\t\t\t\t\t\t\t\telement.html('Friday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'saturday':\r\n\t\t\t\t\t\t\t\telement.html('Saturday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'sunday':\r\n\t\t\t\t\t\t\t\telement.html('Sunday');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswitch (day_name) {\r\n\t\t\t\t\t\t\tcase 'monday':\r\n\t\t\t\t\t\t\t\telement.html('Понеделник');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'tuesday':\r\n\t\t\t\t\t\t\t\telement.html('Вторник');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'wednesday':\r\n\t\t\t\t\t\t\t\telement.html('Сряда');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'thursday':\r\n\t\t\t\t\t\t\t\telement.html('Четвъртък');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'friday':\r\n\t\t\t\t\t\t\t\telement.html('Петък');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'saturday':\r\n\t\t\t\t\t\t\t\telement.html('Събота');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 'sunday':\r\n\t\t\t\t\t\t\t\telement.html('Неделя');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}]);\r\n\r\nscheduleApp.controller('ScheduleController', ['$scope', '$http', '$timeout', '$translate', '$compile', '$filter', function ($scope, $http, $timeout, $translate, $compile, $filter) {\r\n\r\n\t$scope.text = 'me@example.com';\r\n\t$scope.emailFormat = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\n\t// Default variables\r\n\r\n\tvar today = new Date();\r\n\tvar dd = today.getDate();\r\n\tvar mm = today.getMonth() + 1;\r\n\tvar yyyy = today.getFullYear();\r\n\tvar nextYear = today.getFullYear() + 1;\r\n\t$scope.visitArea = 0;\r\n\t$scope.visitInstructor = 0;\r\n\t$scope.nameInstructor;\r\n\t$scope.choosenInstructor = false;\r\n\t$scope.nameActivity;\r\n\t$scope.choosenActivity = false;\r\n\t$scope.showFilters = showFilters;\r\n\t$scope.showCapacity = showCapacity;\r\n\t$scope.allowBooking = allowBooking;\r\n\t$scope.startMonday = startMonday;\r\n\t$scope.filterActivity = filterActivity;\r\n\t$scope.showInstructor = showInstructor;\r\n\t$scope.paymentMethods = new Array(\"OnSide\", \"Membership\", \"Sodexo\", \"MultiSport\", \"Voucher\", \"EPay\", \"PaySafe\", \"Stripe\");\r\n\t$scope.listView = true;\r\n\t$scope.currentGymId = gymid;\r\n\t$scope.modalLoading = false;\r\n\t$scope.activityId = null;\r\n\t$scope.logo = logo;\r\n\t$scope.showLogo = showLogo;\r\n\t$scope.smodal = {paymentMethod: null, email: ''};\r\n\tif ( lang == null ) {\r\n\t\tlang = 'bg';\r\n\t}\r\n\r\n\tif( client != null ){\r\n\t\t$scope.client = client;\r\n\t}\r\n\r\n\tif ( gym[0].Culture ) {\r\n\t\tif (gym[0].Culture == 'bg-BG') {\r\n\t\t\t$scope.currency = 'лв.';\r\n\t\t}else if(gym[0].Culture.includes('-ES')){\r\n\t\t\t$scope.currency = 'eur';\r\n\t\t}else if(gym[0].Culture == \"fr-CH\"){\r\n\t\t\t$scope.currency = 'CHF';\r\n\t\t}else {\r\n\t\t\t$scope.currency = '$';\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.gymAreaOnly = false;\r\n\tif ( gymArea ){\r\n\t\t$scope.gymAreaOnly = true;\r\n\t}\r\n\r\n\t$scope.lang = lang;\r\n\r\n\tif (settings) {\r\n\t\t$scope.classSettings = settings;\r\n\t}\r\n\r\n\tif (showFilters == false) {\r\n\t\tvar time = new Date().getTime();\r\n\t\t$(document.body).bind(\"mousemove keypress touchstart touch\", function (e) {\r\n\t\t\ttime = new Date().getTime();\r\n\t\t});\r\n\r\n\t\tvar timeout = 900000;\r\n\r\n\t\tfunction refresh() {\r\n\t\t\tif (new Date().getTime() - time >= timeout) {\r\n\t\t\t\twindow.location.reload(true);\r\n\t\t\t} else {\r\n\t\t\t\tsetTimeout(refresh, timeout);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsetTimeout(refresh, timeout);\r\n\t}\r\n\r\n\tif (dd < 10) {\r\n\t\tdd = '0' + dd\r\n\t}\r\n\r\n\tif (mm < 10) {\r\n\t\tmm = '0' + mm\r\n\t}\r\n\r\n\ttoday = mm + '/' + dd + '/' + yyyy;\r\n\ttodayInOneYear = mm + '/' + dd + '/' + nextYear;\r\n\r\n\tvar schedule_from = $(\"#schedule_from\");\r\n\tvar schedule_to = $(\"#schedule_to\");\r\n\t$scope.scheduleStartDate = today;\r\n\t$scope.scheduleEndDate = todayInOneYear;\r\n\r\n\tfunction findElement(arr, propName, propValue) {\r\n\t\tfor (var i = 0; i < arr.length; i++)\r\n\t\t\tif (arr[i][propName] == propValue)\r\n\t\t\t\treturn arr[i];\r\n\t\t// will return undefined if not found; you could return a default instead\r\n\t}\r\n\r\n\t// Get Areas\r\n\r\n\t$scope.getAreas = function (dgymID) {\r\n\t\tif ( dgymID ) {\r\n\t\t\tgymid = dgymID;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetAreas?nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.schedule_areas = data;\r\n\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tif ( dgymID ) {\r\n\t\t\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, dgymID);\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate);\r\n\t\t\t\t}\r\n\t\t\t}, 500);\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getMonday(d) {\r\n\t\td = new Date(d);\r\n\t\tvar day = d.getDay();\r\n\r\n\t\tvar diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\r\n\r\n\t\t$scope.scheduleStartDate = new Date(d.setDate(diff));\r\n\t}\r\n\r\n\t$scope.getEventsType = function(dgymID){\r\n\t\tif ( dgymID ) {\r\n\t\t\tgymid = dgymID;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetPublicEvents?nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.schedule_activities = data;\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\t$scope.getEventsType();\r\n\r\n\r\n\t// Get Schedule\r\n\t$scope.getSchedule = function (from, to, dgymID, dontUpdateActInstr) {\r\n\t\tvar updateActInstr = true;\r\n\r\n\t\tif ( dontUpdateActInstr != undefined ){\r\n\t\t\tupdateActInstr = false;\r\n\t\t}\r\n\r\n\t\tif ($scope.startMonday == true) {\r\n\t\t\tgetMonday($scope.scheduleStartDate);\r\n\t\t}\r\n\r\n\t\tif ( dgymID ) {\r\n\t\t\tgymid = dgymID;\r\n\t\t}\r\n\r\n\t\tif ( gymArea ){\r\n\t\t\t$scope.visitArea = gymArea;\r\n\t\t}\r\n\r\n\t\tif ( currentActivity ){\r\n\t\t\t$scope.activityId = currentActivity;\r\n\t\t}\r\n\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tGymID: gymid,\r\n\t\t\tNamespace: namespace,\r\n\t\t\tDateStart: $scope.scheduleStartDate,\r\n\t\t\tDateEnd: $scope.scheduleEndDate,\r\n\t\t\tAreaID: $scope.visitArea,\r\n\t\t\tInstructorID: $scope.visitInstructor,\r\n\t\t\tPrivate: true,\r\n\t\t\tPublicEventID: $scope.activityId\r\n\t\t}\r\n\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/api/public/GetSchedule',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar today = new Date();\r\n\t\t\tvar currentActivities = [];\r\n\t\t\tvar currentInstructors = [];\r\n\t\t\t$scope.originalData = data;\r\n\t\t\t$scope.testData = [];\r\n\t\t\t$scope.calendarSchedule = [];\r\n\r\n\t\t\tangular.copy(data, $scope.testData);\r\n\t\t\tfor (var i = 0; i < $scope.testData.length; ++i) {\r\n\t\t\t\tvar DateNewDate = new Date($scope.testData[i]['Date']);\r\n\t\t\t\tvar DateNewDateEnd = new Date($scope.testData[i]['DateEnd']);\r\n\r\n\t\t\t\tvar convertedDate = DateNewDate.toString();\r\n\t\t\t\tvar convertedDateEnd = DateNewDateEnd.toString();\r\n\t\t\t\tvar x = findElement($scope.schedule_areas, \"AreaID\", $scope.testData[i]['AreaID']);\r\n\r\n\t\t\t\t$scope.testData[i]['NewDate'] = new Date(convertedDate);\r\n\t\t\t\t$scope.testData[i]['NewDateEnd'] = new Date(convertedDateEnd);\r\n\t\t\t\tif (x != undefined && x['Name'] != undefined)\r\n\t\t\t\t $scope.testData[i]['AreaName'] = x['Name'];\r\n\r\n\t\t\t\tvar testDateBeforeBooking = new Date(convertedDate);\r\n\t\t\t\ttestDateBeforeBooking.setHours(testDateBeforeBooking.getHours() - $scope.classSettings.HoursBeforeBooking);\r\n\t\t\t\t$scope.testData[i]['HoursBeforeBooking'] = testDateBeforeBooking;\r\n\r\n\t\t\t\tvar testDatedaysAheadBooking = new Date(convertedDate);\r\n\t\t\t\ttestDatedaysAheadBooking.setDate(testDatedaysAheadBooking.getDate() - $scope.classSettings.DaysAheadBooking);\r\n\r\n\t\t\t\tif (today >= testDatedaysAheadBooking || $scope.classSettings.DaysAheadBooking == 0) {\r\n\t\t\t\t\t$scope.testData[i]['AheadBooking'] = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$scope.testData[i]['AheadBooking'] = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( $scope.testData[i]['PeopleAttending'] >= $scope.testData[i]['MaxClients']) {\r\n\t\t\t\t\t$scope.testData[i]['FullCapacity'] = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t$scope.testData[i]['FullCapacity'] = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$scope.testData[i]['SlotsLeft'] = $scope.testData[i]['MaxClients'] - $scope.testData[i]['PeopleAttending'];\r\n\r\n\t\t\t\tvar item = {\r\n\t\t\t\t\ttitle: $scope.testData[i]['VisitName'],\r\n\t\t\t\t\tstart: $scope.testData[i]['NewDate'],\r\n\t\t\t\t\tend: $scope.testData[i]['NewDateEnd'],\r\n\t\t\t\t\tzone: $scope.testData[i]['AreaName'],\r\n\t\t\t\t\titemId: $scope.testData[i]['ID'],\r\n\t\t\t\t\tAheadBooking: $scope.testData[i]['AheadBooking'],\r\n\t\t\t\t\tBookOnline: $scope.testData[i]['BookOnline'],\r\n\t\t\t\t\tHoursBeforeBooking: $scope.testData[i]['HoursBeforeBooking'],\r\n\t\t\t\t\tcolor: $scope.testData[i]['Color'],\r\n\t\t\t\t\tfullCapacity: $scope.testData[i]['FullCapacity']\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$scope.calendarSchedule.push(item);\r\n\r\n\t\t\t\tif ( updateActInstr == true ) {\r\n\t\t\t\t\tif ( !currentActivities.includes($scope.testData[i]['PublicEventID']) ) {\r\n\t\t\t\t\t\tcurrentActivities.push($scope.testData[i]['PublicEventID']);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( $scope.testData[i]['InstructorIDs'] != null ) {\r\n\t\t\t\t\tvar manageInstrucors = $scope.testData[i]['InstructorIDs'];\r\n\r\n\t\t\t\t\tif ( manageInstrucors.indexOf(',') > -1 ) {\r\n\t\t\t\t\t\tvar res = manageInstrucors.split(',');\r\n\r\n\t\t\t\t\t\tfor (var n = 0; n < res.length; n++) {\r\n\t\t\t\t\t\t\tif ( !currentInstructors.includes(res[n]) ) {\r\n\t\t\t\t\t\t\t\tcurrentInstructors.push(res[n]);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar result = $.grep($scope.schedule_instructors, function (e) { return e.Id == res[n] });\r\n\t\t\t\t\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t\t\t\t\tvar instructor = result[0].Name;\r\n\t\t\t\t\t\t\t\tif ( n > 0 ) {\r\n\t\t\t\t\t\t\t\t\tinstructor = ', ' + instructor;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t$scope.testData[i]['Instructors'] += instructor;\r\n\t\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\tif ( !currentInstructors.includes(manageInstrucors) && manageInstrucors != '00000000-0000-0000-0000-000000000000' && manageInstrucors != '' ) {\r\n\t\t\t\t\t\t\tcurrentInstructors.push(manageInstrucors);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar result = $.grep($scope.schedule_instructors, function (e) { return e.Id == manageInstrucors });\r\n\t\t\t\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t\t\t\t$scope.testData[i]['Instructors'] = result[0].Name;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( updateActInstr == true ){\r\n\t\t\t\tgetCurrentActivities(currentActivities);\r\n\t\t\t\tgetCurrentInstructors(currentInstructors);\r\n\t\t\t}\r\n\r\n\t\t\t$scope.originalData = $scope.testData;\r\n\t\t\t$scope.testData = $scope.convertTo($scope.testData, 'Date', true);\r\n\r\n\t\t\t$scope.Schedule = {};\r\n\t\t\tObject.keys($scope.testData).sort().forEach(function (key) {\r\n\t\t\t\t$scope.Schedule[key] = $scope.testData[key];\r\n\t\t\t});\r\n\r\n\t\t\tif( $('.schedule-wrapper .filter-section .switch-field a.calendar').is('.active') ){\r\n\t\t\t\tfullCalendar($scope.calendarSchedule);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (days != null) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tmanageDays();\r\n\t\t\t\t\t\r\n\t\t\t\t\t$('body').addClass('loaded-body');\r\n\t\t\t\t}, 500);\r\n\t\t\t}else{\r\n\t\t\t\t$('body').addClass('loaded-body');\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getCurrentActivities(array){\r\n\t\t$scope.current_activities = [];\r\n\r\n\t\tfor (var i = 0; i < array.length; i++) {\r\n\t\t\tvar activity = array[i];\r\n\t\t\tvar result = $.grep($scope.schedule_activities, function (e) { return e.Id == activity });\r\n\r\n\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t$scope.current_activities.push(result[0]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getCurrentInstructors(array){\r\n\t\t$scope.current_instructors = [];\r\n\r\n\t\tfor (var i = 0; i < array.length; i++) {\r\n\t\t\tvar instructor = array[i];\r\n\t\t\tvar result = $.grep($scope.schedule_instructors, function (e) { return e.Id == instructor });\r\n\r\n\t\t\tif ( result.length > 0 ) {\r\n\t\t\t\t$scope.current_instructors.push(result[0]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction fullCalendar(calendarSchedule){\r\n\t\tif ( $('#calendar').children().length > 0 ) {\r\n\t\t $('#calendar').fullCalendar('destroy');\r\n\t\t}\r\n\r\n\t\t$('#calendar').fullCalendar({\r\n\t\t\tevents: calendarSchedule,\r\n\t\t\tlistDayAltFormat: false,\r\n listDayFormat: 'dddd DD.MM.YYYY ',\r\n nowIndicator: true,\r\n header: {\r\n left: 'title',\r\n center: '',\r\n right: 'prev,next'\r\n },\r\n lang: lang,\r\n locale: lang,\r\n height: 'auto',\r\n slotDuration: '00:30:00',\r\n timeFormat: 'HH:mm',\r\n defaultView: 'agendaWeek',\r\n allDaySlot: false,\r\n editable: false,\r\n droppable: false,\r\n minTime: '07:00:00',\r\n maxTime: '23:00:00',\r\n eventColor: '#3799b1',\r\n timezone: 'Europe/Sofia',\r\n\t\t\teventRender: function(event, element) {\r\n\t\t\t\tif ( event.fullCapacity == true ) {\r\n \telement.css({\r\n \t\t\"opacity\": 0.5,\r\n \t\t\"pointer-events\": \"none\"\r\n \t})\r\n\t\t\t\t}\r\n\r\n element.find('.fc-title').html(''+event.title+''+event.zone+'').css('white-space','nowrap');\r\n\t\t\t},\r\n\t\t\teventClick: function(event, jsEvent){\r\n\t\t\t\tif ( $scope.allowBooking && event.AheadBooking && event.fullCapacity == false && event.BookOnline == true ){\r\n\t\t\t\t\tvar convertedDate = event.start.toString();\r\n\t\t\t\t\tvar convertedDateEnd = event.end.toString();\r\n\t\t\t\t\tvar eventStart = new Date(convertedDate);\r\n\t\t\t\t\tvar eventEnd = new Date(convertedDateEnd);\r\n\t\t\t\t\t$scope.joinModal(event.itemId);\r\n }\r\n\t\t\t},\r\n\t\t\teventAfterAllRender: function(view) {\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$('body').addClass('loaded-body');\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t// Get Gyms\r\n\t$scope.getGyms = function () {\r\n\t\t$scope.membershipGyms = [];\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/Membership/GetGyms',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tif ( data.length > 0 ) {\r\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\r\n\t\t\t\t\tif ( data[i].IsOnline == true ) {\r\n\t\t\t\t\t\t$scope.membershipGyms.push(data[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$scope.gymid = $scope.membershipGyms[0].GymID;\r\n\t\t\t}else{\r\n\t\t\t\t$scope.gymAreaOnly = true;\r\n\t\t\t}\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getGyms();\r\n\r\n\t$('.schedule-wrapper .filter-section .switch-field a').on('click', function(e){\r\n\t\te.preventDefault();\r\n\t\tvar item = $(this);\r\n\r\n\t\tif ( !item.is('.active') ){\r\n\t\t\titem.addClass('active').siblings('.active').removeClass('active');\r\n\t\t}\r\n\r\n\t\tif ( item.is('.list') ){\r\n\t\t\t$('.schedule-list').show();\r\n\t\t\t$('#calendar').hide();\r\n\t\t}else{\r\n\t\t\t$('.schedule-list').hide();\r\n\t\t\t$('#calendar').show();\r\n\t\t\tfullCalendar($scope.calendarSchedule);\r\n\t\t}\r\n\t})\r\n\r\n\t$scope.convertTo = function (arr, key, dayWise) {\r\n\t\tvar groups = {};\r\n\r\n\t\tfor (var i = 0; l = arr.length, i < l; i++) {\r\n\t\t\tarr[i]['DateLocal'] = new Date(arr[i][key]).toISOString().slice(0, 10);\r\n\r\n\t\t\tgroups[arr[i]['DateLocal']] = groups[arr[i]['DateLocal']] || [];\r\n\t\t\tgroups[arr[i]['DateLocal']].push(arr[i]);\r\n\t\t}\r\n\t\treturn groups;\r\n\t};\r\n\t$scope.getAreas();\r\n\r\n\t$scope.updateAreaId = function (id, gymID) {\r\n\t\t$('body').removeClass('loaded-body');\r\n\t\t$('.filter-col-activities input:checked').prop('checked', false);\r\n\t\t$('.filter-col-instructors input:checked').prop('checked', false);\r\n\t\t$scope.activityId = null;\r\n\t\t$scope.choosenActivity = false;\r\n\t\t$scope.scheduleActivity = 'null';\r\n\t\t$scope.visitInstructor = 0;\r\n\t\t$scope.choosenInstructor = false;\r\n\t\t$scope.scheduleInstructor = '0';\r\n\t\t$scope.visitArea = id;\r\n\t\tif ( gymID ) {\r\n\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, gymID);\r\n\t\t}else{\r\n\t\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate);\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.getSettings = function (id) {\r\n\t\tvar dataObject = {\r\n\t\t Namespace: namespace,\r\n\t\t GymID: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: '/ScheduleV2/GetSettings',\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.classSettings = data;\r\n\t\t}).error(function () {\r\n\t\t\t// console.log('error');\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.updategymId = function (gymID) {\r\n\t\t$('body').removeClass('loaded-body');\r\n\t\t$scope.visitArea = 0;\r\n\t\t$scope.scheduleActivity = null;\r\n\t\t$scope.choosenActivity = false;\r\n\t\t$scope.activityId = null;\r\n\t\t$('.filter-col-instructors input:checked').prop('checked', false);\r\n\t\t$scope.choosenInstructor = false;\r\n\t\t$scope.visitInstructor = 0;\r\n\t\t$scope.scheduleActivity = 'null';\r\n\t\t$scope.scheduleInstructor = '0';\r\n\t\t$scope.scheduleArea = '0';\r\n\t\t$scope.getAreas(gymID);\r\n\t\t$scope.getEventsType(gymID);\r\n\t\t$scope.getSettings(gymID);\r\n\t\t$scope.getInstructors(gymID);\r\n\t\t$('.schedule-wrapper .filter-section').addClass('choosedGym');\r\n\t}\r\n\r\n\t$scope.updateActivity = function (activityId) {\r\n\t\t$('body').removeClass('loaded-body');\r\n\t\t$scope.activityId = activityId;\r\n\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, gymid, 'dontUpdateActInstr');\r\n\r\n\t\tif (activityId != null) {\r\n\t\t\tvar x = findElement($scope.schedule_activities, \"Id\", activityId);\r\n\r\n\t\t\t$scope.choosenActivity = true;\r\n\t\t\t$scope.nameActivity = x['Name'];\r\n\t\t} else {\r\n\t\t\t$scope.choosenActivity = false;\r\n\t\t}\r\n\r\n\t\t$('.schedule-wrapper .filter-section .filter-col-activities .dd').removeClass('show');\r\n\t}\r\n\r\n\r\n\t// Get Instructors\r\n\r\n\t$scope.getInstructors = function (dgymID) {\r\n\t\tif ( dgymID ) {\r\n\t\t\tgymid = dgymID;\r\n\t\t}\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetInstructors?nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\t$scope.schedule_instructors = data;\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getInstructors();\r\n\r\n\t$scope.updateInstructorId = function (id) {\r\n\t\t$scope.visitInstructor = id;\r\n\r\n\t\t$scope.getSchedule($scope.scheduleStartDate, $scope.scheduleEndDate, gymid, 'dontUpdateActInstr');\r\n\r\n\t\tif (id != '0') {\r\n\t\t\tvar x = findElement($scope.schedule_instructors, \"Id\", id);\r\n\r\n\t\t\t$scope.choosenInstructor = true;\r\n\t\t\t$scope.nameInstructor = x['Name'];\r\n\t\t} else {\r\n\t\t\t$scope.choosenInstructor = false;\r\n\t\t}\r\n\r\n\t\t$('.schedule-wrapper .filter-section .dd').removeClass('show');\r\n\t}\r\n\r\n\t$scope.updateVisitProduct = function(item){\r\n\t\tif (item.productName) {\r\n\t\t\tvar result = $.grep($scope.visitProducts, function (e) { return e.ProductName == item.productName });\r\n\t\t\tresult[0].ItemsLeft = ++result[0].ItemsLeft;\r\n\t\t}\r\n\r\n\t\tif ( item.productId != '-1' ) {\r\n\t\t\tvar result = $.grep($scope.visitProducts, function (e) { return e.ProductID == item.productId });\r\n\t\t\titem.productName = result[0].ProductName;\r\n\t\t\titem.productItemsLeft = result[0].ItemsLeft;\r\n\t\t\tresult[0].ItemsLeft = --result[0].ItemsLeft;\r\n\t\t}else{\r\n\t\t\titem.productName = 'Own equipment'\r\n\t\t}\r\n\r\n\t\treturn item;\r\n\t}\r\n\r\n\tfunction getEventPrice() {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tid: $scope.PublicEventID,\r\n\t\t}\r\n\t \r\n\t $http({\r\n\t method: 'GET',\r\n\t url: '/api/private/GetPublicEventPrice?Namespace=' + namespace + '&GymID=' + gymid + '&id=' + $scope.PublicEventID,\r\n\t data: dataObject\r\n\t }).success(function (data) {\r\n\t // console.log(data);\r\n\t $scope.modalPrice = data;\r\n\t calculateEventPrice();\r\n\t }).error(function () {\r\n\t });\r\n\t}\r\n\r\n\r\n\t// Join Event\r\n\r\n\tfunction paymentChange(){\r\n\t\tif ($scope.smodal.paymentMethod == '7') {\r\n\r\n\t\t\t$('.shcedule-popup .form-actions .button.stripe-button').addClass('show');\r\n\t\t\t// Create a Stripe client.\r\n\t\t\tvar stripe = Stripe($scope.classSettings.StripePublishKey);\r\n\t\t\t// Create an instance of Elements.\r\n\t\t\tvar elements = stripe.elements();\r\n\t\t\t// Custom styling can be passed to options when creating an Element.\r\n\t\t\t// (Note that this demo uses a wider set of styles than the guide below.)\r\n\t\t\tvar style = {\r\n\t\t\t base: {\r\n\t\t\t\tcolor: '#32325d',\r\n\t\t\t\tlineHeight: '18px',\r\n\t\t\t\tfontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\r\n\t\t\t\tfontSmoothing: 'antialiased',\r\n\t\t\t\tfontSize: '16px',\r\n\t\t\t\t'::placeholder': {\r\n\t\t\t\t color: '#aab7c4'\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t invalid: {\r\n\t\t\t\tcolor: '#fa755a',\r\n\t\t\t\ticonColor: '#fa755a'\r\n\t\t\t }\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Create an instance of the card Element.\r\n\t\t\tvar card = elements.create('card', {style: style});\r\n\r\n\t\t\t// Add an instance of the card Element into the `card-element`
.\r\n\t\t\tcard.mount('#card-element');\r\n\r\n\t\t\t// Handle real-time validation errors from the card Element.\r\n\t\t\tcard.addEventListener('change', function(event) {\r\n\t\t\t\tvar displayError = document.getElementById('card-errors');\r\n\t\t\t \tif (event.error) {\r\n\t\t\t\t\tdisplayError.textContent = event.error.message;\r\n\t\t\t \t} else {\r\n\t\t\t\t\tdisplayError.textContent = '';\r\n\t\t\t \t}\r\n\t\t\t});\r\n\r\n\t\t\t// Handle form submission.\r\n\t\t\tvar form = document.getElementById('payment-form');\r\n\r\n\t\t\t$('.stripe-button').on('click', function(e){\r\n\t\t\t e.preventDefault();\r\n\t\t\t if ($scope.loading == false || $scope.loading == undefined) {\r\n\t\t\t $scope.loading = true;\r\n\t\t\t stripe.createToken(card).then(function (result) {\r\n\t\t\t if (result.error) {\r\n\t\t\t // Inform the user if there was an error.\r\n\t\t\t $scope.loading = false;\r\n\t\t\t var errorElement = document.getElementById('card-errors');\r\n\t\t\t errorElement.textContent = result.error.message;\r\n\t\t\t } else {\r\n\t\t\t // Send the token to your server.\r\n\t\t\t $scope.token = result.token.id\r\n\t\t\t $scope.joinEvent($scope.smodal.email, $scope.smodal.telephone, $scope.smodal.paymentMethod);\r\n\t\t\t }\r\n\t\t\t });\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\t$('.shcedule-popup .form-actions .button.stripe-button').removeClass('show');\r\n\t\t}\r\n\t}\r\n\t\t\r\n\r\n\t$scope.formLoaded = true;\r\n\r\n\tvar joinEventResponses = new Array('joinEventResponse1', 'joinEventResponse2', 'joinEventResponse3', 'joinEventResponse4', 'joinEventResponse5', 'joinEventResponse6', 'joinEventResponse7');\r\n\r\n\t$scope.joinEvent = function (email, telephone, paymentMethod, productId) {\r\n\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymID: gymid,\r\n\t\t\tId: $scope.modalVisit.ID,\r\n\t\t\tEmail: $scope.client ? $scope.client.Email : email,\r\n\t\t\tDate: $scope.modalVisit.NewDate,\r\n\t\t\tVisitName: $scope.modalVisit.VisitName,\r\n\t\t\tPaymentMethod: paymentMethod,\r\n\t\t\tLanguage: lang,\r\n\t\t\tProductID: $scope.smodal.productId,\r\n\t\t\tProductName: $scope.smodal.productName,\r\n\t\t\tAdditionalGuests: $scope.people\r\n\t\t}\r\n\r\n\t\tif ( $scope.classSettings.ClassBookingRequireProfile != true ) {\r\n\t\t\tdataObject.FirstName = $scope.client ? $scope.client.FirstName : $scope.scheduleFirstName;\r\n\t\t\tdataObject.LastName = $scope.client ? $scope.client.LastName : $scope.scheduleLastName;\r\n\t\t\tdataObject.Telephone = $scope.client ? $scope.client.Telephone : telephone;\r\n\t\t}\r\n\r\n\t\tif ( $scope.smodal.paymentMethod == '7' ) {\r\n\t\t\tdataObject.Token = $scope.token;\r\n\t\t\tdataObject.Price = $scope.totalPrice;\r\n\t\t\tdataObject.PublicEventID = $scope.PublicEventID;\r\n\t\t}\r\n\r\n\t\tif ($scope.formLoaded == true) {\r\n\t\t $scope.formLoaded = false;\r\n\t\t $http({\r\n\t\t method: 'POST',\r\n\t\t url: '/api/private/JoinEvent',\r\n\t\t data: dataObject\r\n\t\t }).success(function (data) {\r\n\t\t var responseI = data;\r\n\t\t $scope.joinEventResponse = joinEventResponses[responseI];\r\n\r\n\t\t $('#shcedule-popup .error-msg').removeClass('show');\r\n\t\t $('#shcedule-popup .success-msg').addClass('show');\r\n\r\n\t\t if (responseI == 0) {\r\n\t\t $('#shcedule-popup .success-msg').addClass('green');\r\n\r\n\t\t setTimeout(function() {\r\n\t\t \tif ( !$scope.formLoaded ) {\r\n\t\t \t\t$scope.closePopup();\r\n\t\t \t}\r\n\t\t }, 3000);\r\n\t\t }else{\r\n\t\t \t$scope.formLoaded = true;\r\n\t\t }\r\n\r\n\t\t if (responseI == 6) {\r\n\t\t $('#shcedule-popup .success-msg').addClass('red');\r\n\t\t }\r\n\t\t }).error(function () {\r\n\t\t $('#shcedule-popup .error-msg').addClass('show');\r\n\t\t $scope.formLoaded = true;\r\n\t\t });\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.closePopup = function () {\r\n\t\t$('.popup-wrapper, #shcedule-popup .success-msg').removeClass('show');\r\n\t\t$scope.resetForm();\r\n\t\t$scope.formLoaded = true;\r\n\t\t$('#shcedule-popup .success-msg').removeClass('green');\r\n\t}\r\n\r\n\t$scope.resetForm = function () {\r\n\t\t$('#shcedule-popup .popup-body').find('input').val('');\r\n\t\t$('.shcedule-popup .form-field .dd-field input:checked').prop('checked', false);\r\n\t\t$('.shcedule-popup .dd .dd-head').html('');\r\n\t\t$('.shcedule-popup .form-actions .button.stripe-button').removeClass('show');\r\n\t\t$scope.people = [];\r\n\t\t$scope.smodal = [];\r\n\t\t$scope.$apply();\r\n\t}\r\n\r\n\t$scope.redirectToDashboard = function(){\r\n\t\tvar currentHref = window.location;\r\n\t\tvar href = currentHref.origin + '/Account/Dashboard?nameSpace=' + namespace + '&gymId=' + gymid;\r\n\t\twindow.location.replace(href);\r\n\t}\r\n\r\n\r\n\t// Join Modal\r\n\r\n\t$scope.joinModal = function (visitId) {\r\n\t\t$scope.visitProducts = [];\r\n\t\t$scope.modalLoading = true;\r\n\t\tvar result = $.grep($scope.originalData, function (e) { return e.ID == visitId; });\r\n\r\n\t\tif ( result.length > 0 ) {\r\n\t\t\t$scope.PublicEventID = result[0].PublicEventID;\r\n\t\t\t$scope.modalVisit = result[0];\r\n\t\t\t$scope.noSlotsLeft = $scope.modalVisit.SlotsLeft > 1 ? false : true;\r\n\r\n\t\t\tvar dayOfWeek = $filter('date')($scope.modalVisit.NewDate, 'EEEE');\r\n\t\t\tvar compiledeHTML = $compile(\"\" + dayOfWeek + \"\")($scope);\r\n\t\t\t$(\".dayofweekn\").html(compiledeHTML);\r\n\r\n\r\n\t\t\tvar now = new Date();\r\n\r\n\t\t\tif (now < $scope.modalVisit.HoursBeforeBooking) {\r\n\t\t\t\t$('#shcedule-popup').addClass('show');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$('#shcedule-popup .popup').addClass('show');\r\n\r\n\t\t\t\t\tvar dataObject = {\r\n\t\t\t\t\t\tNamespace: namespace,\r\n\t\t\t\t\t\tGymID: gymid,\r\n\t\t\t\t\t\tID: visitId\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$http({\r\n\t\t\t\t method: 'GET',\r\n\t\t\t\t url: '/api/public/GetEqipment?nameSpace=' + namespace + '&gymId=' + gymid + '&ID=' + visitId,\r\n\t\t\t\t data: dataObject\r\n\t\t\t\t }).success(function (data) {\r\n\t\t\t\t $scope.visitProducts = data;\r\n\t\t\t\t $scope.modalLoading = false;\r\n\t\t\t\t }).error(function () {\r\n\r\n\t\t\t\t });\r\n\t\t\t\t}, 10);\r\n\r\n\t\t\t\tgetEventPrice();\r\n\t\t\t} else {\r\n\t\t\t\t$('#shcedule-not-popup').addClass('show');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$('#shcedule-not-popup .popup').addClass('show');\r\n\t\t\t\t}, 10);\r\n\t\t\t}\r\n\r\n\t\t}else{\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.getAttendingClients = function(item){\r\n\r\n\t\tif(!item.AttendingClients){\r\n\t\t\t$scope.modalLoading = true;\r\n\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: gymid,\r\n\t\t\t\tScheduleID: item.ID,\r\n\t\t\t\tAreaID: item.AreaID\r\n\t\t\t}\r\n\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: '/api/private/GetAttendingClients?Namespace=' + namespace + '&GymID=' + gymid + '&ScheduleID=' + item.ID + '&AreaID=' + item.AreaID,\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\titem.attedingCleints = data;\r\n\r\n\t\t\t\t$scope.clientsData = item.attedingCleints;\r\n\t\t\t\t$('#clients-popup, #clients-popup .popup').addClass('show');\r\n\t\t\t\t$scope.modalLoading = false;\r\n\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\t$('#clients-popup, #clients-popup .popup').addClass('show');\r\n\t\t\t$scope.clientsData = item.AttendingClients\r\n\t\t}\r\n\t}\r\n\r\n\t// $scope.dashLogin = true;\r\n\t$scope.loginModal = function () {\r\n\t $scope.modalLoading = true;\r\n\r\n\t $('#login-popup').addClass('show');\r\n\t $('#login-popup .popup').addClass('show');\r\n\t $timeout(function() {\r\n\t $scope.modalLoading = false; \r\n\t }, 100);\r\n\t}\r\n\r\n\tfunction calculateEventPrice(){\r\n\t\tif ( $scope.people.length > 0 ) {\r\n\t\t\t$scope.additionPrice = 0;\r\n\t\t\tfor (var i = 0; i < $scope.people.length; i++) {\r\n\t\t\t\t$scope.additionPrice += $scope.modalPrice;\r\n\t\t\t}\r\n\r\n\t\t\t$scope.totalPrice = $scope.additionPrice + $scope.modalPrice;\r\n\t\t}else{\r\n\t\t\t$scope.totalPrice = $scope.modalPrice;\r\n\t\t}\r\n\r\n\t\t$scope.noSlotsLeft = $scope.modalVisit.SlotsLeft > $scope.people.length + 1 ? false : true;\r\n\t}\r\n\r\n\t$scope.people = [];\r\n\t$scope.noSlotsLeft = false;\r\n\r\n\t$scope.addPerson = function(){\r\n\t\tlet person = {};\r\n\t\t$scope.people.push(person);\r\n\t\tcalculateEventPrice();\r\n\t}\r\n\r\n\t$scope.deletePerson = function(index){\r\n\t\tlet item = $scope.people[index];\r\n\r\n\t\tif (item.productId > -1) {\r\n\t\t\tlet result = $.grep($scope.visitProducts, function (e) { return e.ProductID == item.productId });\r\n\t\t\tresult[0].ItemsLeft = ++result[0].ItemsLeft;\r\n\t\t}\r\n\t\t$scope.people.splice(index,1);\r\n\t\tcalculateEventPrice();\r\n\t}\r\n\r\n\t$('.popup-wrapper .close, .popup-wrapper .popup-overlay').on('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$('.popup-wrapper, #shcedule-popup .popup, #shcedule-popup .error-msg, #shcedule-popup .success-msg').removeClass('show');\r\n\t\t$scope.resetForm();\r\n\t})\r\n\r\n\t// Datepickers\r\n\r\n\tschedule_from.datepicker({\r\n\t\tchangeMonth: true,\r\n\t\tnumberOfMonths: 2,\r\n\t\tminDate: 0,\r\n\t\tonSelect: function (dateText, inst) {\r\n\t\t\tvar date = $(this).val();\r\n\t\t\tschedule_to.datepicker(\"option\", \"minDate\", date);\r\n\r\n\t\t\tif (gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = date.split(\"/\");\r\n\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t}\r\n\r\n\t\t\t$scope.scheduleStartDate = date;\r\n\t\t}\r\n\t});\r\n\r\n\tschedule_to.datepicker({\r\n\t\tchangeMonth: true,\r\n\t\tnumberOfMonths: 2,\r\n\t\tonSelect: function (dateText, inst) {\r\n\t\t\tvar date = $(this).val();\r\n\t\t\tschedule_from.datepicker(\"option\", \"maxDate\", date);\r\n\r\n\t\t\tif (gym[0].Culture != 'en-US') {\r\n\t\t\t\tvar res = date.split(\"/\");\r\n\t\t\t\tvar date = res[1] + '/' + res[0] + '/' + res[2];\r\n\t\t\t}\r\n\r\n\t\t\tvar tomorrow = new Date(date);\r\n\t\t\ttomorrow.setDate(tomorrow.getDate() + 1);\r\n\r\n\t\t\t$scope.scheduleEndDate = tomorrow;\r\n\t\t}\r\n\t});\r\n\r\n\tif (gym[0].Culture == 'en-US') {\r\n\t\t$('#schedule_to, #schedule_from').datepicker( \"option\", \"dateFormat\", \"mm/dd/yy\" );\r\n\t} else {\r\n\t\t$('#schedule_to, #schedule_from').datepicker( \"option\", \"dateFormat\", \"dd/mm/yy\" );\r\n\t}\r\n\r\n\r\n\tfunction getDate(element) {\r\n\t\tvar date;\r\n\t\ttry {\r\n\t\t\tdate = $.datepicker.parseDate(dateFormat, element.value);\r\n\t\t} catch (error) {\r\n\t\t\tdate = null;\r\n\t\t}\r\n\t\treturn date;\r\n\t}\r\n\r\n\r\n\t$(document).on('click', '.dd .dd-head', function (e) {\r\n\t\te.preventDefault();\r\n\t\t$(this).parent('.dd').toggleClass('show');\r\n\t});\r\n\r\n\t$(document).click(function (e) {\r\n\t\tif ($(e.target).closest('.dd').length === 0 && $('.dd').is('.show')) {\r\n\t\t\t$('.dd').removeClass('show');\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on('click', '#shcedule-popup .dd-field', function () {\r\n\t\tvar content = $(this).find('label').html();\r\n\t\tvar dd = $(this).parents('.dd');\r\n\t\tdd.find('.dd-head').html(content);\r\n\t\tdd.removeClass('show');\r\n\t\tpaymentChange();\r\n\t})\r\n\r\n\t$('.schedule-wrapper .filter-section .date-col i').on('click', function (e) {\r\n\t\t$(this).parent().find('input').datepicker('show');\r\n\t})\r\n\r\n\tfunction manageDays(){\r\n\t\t$('.schedule-list .col').removeClass('show');\r\n\t\t$('.schedule-list').addClass('hide');\r\n\t\tfor (var i = 0; i < days; i++) {\r\n\t\t\t$('.schedule-list .col').eq(i).addClass('show');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction scroll(){\r\n\r\n\t\tvar windowHeight = $(window).height();\r\n\t\tvar contentHeight = $('.schedule-wrapper').height();\r\n\r\n\t\tconsole.log(windowHeight);\r\n\t\tconsole.log(contentHeight);\r\n\r\n\t\tif ( contentHeight > windowHeight ) {\r\n\t\t\tvar timeScrollDown = contentHeight;\r\n\t\t\tvar timeScrollUp = contentHeight;\r\n\r\n\t\t\tif ( (contentHeight - windowHeight) > 2000 ) {\r\n\t\t\t\ttimeScrollDown = parseInt(timeScrollDown*25);\r\n\t\t\t\ttimeScrollUp = parseInt(timeScrollUp*20);\r\n\t\t\t}else if ( (contentHeight - windowHeight) > 500 ){\r\n\t\t\t\ttimeScrollDown = parseInt(timeScrollDown*25);\r\n\t\t\t\ttimeScrollUp = parseInt(timeScrollUp*10);\r\n\t\t\t}else if( (contentHeight - windowHeight) > 250 ){\r\n\t\t\t\ttimeScrollDown = parseInt(timeScrollDown*22);\r\n\t\t\t\ttimeScrollUp = parseInt(timeScrollUp*7);\r\n\t\t\t}else if( (contentHeight - windowHeight) > 100 ){\r\n\t\t\t\ttimeScrollDown = parseInt(timeScrollDown*21);\r\n\t\t\t\ttimeScrollUp = parseInt(timeScrollUp*5);\r\n\t\t\t}else{\r\n\t\t\t\ttimeScrollDown = parseInt(timeScrollDown*20);\r\n\t\t\t\ttimeScrollUp = parseInt(timeScrollUp*3);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ( $(window).scrollTop() == 0 ){\r\n\t\t\t\t$('html, body').clearQueue();\r\n \t\t\t\t$('html, body').stop();\r\n \t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$(\"html, body\").animate({ scrollTop: $(document).height() }, timeScrollDown, 'linear');\r\n \t\t\t\t}, 2000);\r\n\t\t\t}else if ( $(window).scrollTop() + $(window).height() == $(document).height() ){\r\n\t\t\t\t$('html, body').clearQueue();\r\n \t\t\t\t$('html, body').stop();\r\n \t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$('html, body').animate({scrollTop:0}, timeScrollUp, 'linear');\r\n \t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t$(window)\r\n\t.on('load', function () {\r\n\t\tsetTimeout(function () {\r\n\r\n\t\t\tif (calendarView) {\r\n\t\t\t\t$('.schedule-wrapper .filter-section .switch-field a.calendar').trigger('click');\r\n\t\t\t}else{\r\n\t\t\t\t$('#calendar').hide();\r\n\t\t\t\t$('body').addClass('loaded-body');\r\n\t\t\t}\r\n\r\n\t\t\tif (pageScroll) {\r\n\t\t\t\tscroll();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}, 1000);\r\n\r\n\t\tresizeAndDatepicker();\r\n\t})\r\n\t.on('resize', function(){\r\n\t\tresizeAndDatepicker();\r\n\t})\r\n\t.on('scroll', function(){\r\n\t\tif (pageScroll) {\r\n\t\t\tscroll();\r\n\t\t}\r\n\t})\r\n\r\n\t$scope.dateFeaturedFormat = 'dd/MM/yyyy';\r\n\r\n\tif (gym) {\r\n\t\tif (gym[0].PortalColor != null && gym[0].PortalColor != 'default') {\r\n\t\t\t$('.schedule-wrapper').addClass('theme-' + gym[0].PortalColor);\r\n\t\t}\r\n\r\n\t\tif ( gym[0].Culture == 'en-US' ) {\r\n\t\t\t$scope.dateFeaturedFormat = 'MM/dd/yyyy';\r\n\t\t}\r\n\t}\r\n\r\n\t// Check Window Size and change datepicker options\r\n\tfunction resizeAndDatepicker(){\r\n\t\tvar windowWidth = $(window).width();\r\n\r\n\t\tif ( windowWidth <= 768 ) {\r\n\t\t\tschedule_from.datepicker(\"option\", \"numberOfMonths\", 1);\r\n\t\t\tschedule_to.datepicker(\"option\", \"numberOfMonths\", 1);\r\n\t\t}else{\r\n\t\t\tschedule_from.datepicker(\"option\", \"numberOfMonths\", 2);\r\n\t\t\tschedule_to.datepicker(\"option\", \"numberOfMonths\", 2);\r\n\t\t}\r\n\t}\r\n\r\n}])\r\n.controller('GetScheduleController', ['$scope', '$http', '$timeout', '$translate', '$compile', '$filter', function ($scope, $http, $timeout, $translate, $compile, $filter) {\r\n\t$scope.noSchedule = false;\r\n\r\n\tif ( schedule != null ) {\r\n\t\t$scope.schedule = schedule;\r\n\t\t$scope.gym = gym[0];\r\n\t\t$scope.visitProducts = $scope.schedule.Products;\r\n\r\n\t\tif ( lang == null ){\r\n\t\t\tlang = 'en';\r\n\t\t}\r\n\r\n\t\tvar DateNewDate = new Date($scope.schedule['Date']);\r\n\t\tvar DateNewDateEnd = new Date($scope.schedule['DateEnd']);\r\n\r\n\t\tvar convertedDate = DateNewDate.toString();\r\n\t\tvar convertedDateEnd = DateNewDateEnd.toString();\r\n\r\n\t\t$scope.schedule['NewDate'] = new Date(convertedDate);\r\n\t\t$scope.schedule['NewDateEnd'] = new Date(convertedDateEnd);\r\n\r\n\r\n\t\tvar dayOfWeek = $filter('date')($scope.schedule.NewDate, 'EEEE');\r\n\t\tvar compiledeHTML = $compile(\"\" + dayOfWeek + \"\")($scope);\r\n\t\t$(\".dayofweekn\").html(compiledeHTML);\r\n\r\n\t $scope.getSettings = function (id) {\r\n\t\t\tvar dataObject = {\r\n\t\t\t Namespace: namespace,\r\n\t\t\t GymID: gymid\r\n\t\t\t}\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/ScheduleV2/GetSettings',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\tconsole.log(data);\r\n\t\t\t\t$scope.classSettings = data;\r\n\t\t\t}).error(function () {\r\n\t\t\t\t// console.log('error');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$scope.getSettings();\r\n\r\n\r\n\t\t$scope.updateVisitProduct = function(id){\r\n\t\t\tif ( id != '-1' ) {\r\n\t\t\t\tvar result = $.grep($scope.visitProducts, function (e) { return e.ProductID == id });\r\n\t\t\t\t$scope.productId = id;\r\n\t\t\t\t$scope.productName = result[0].ProductName;\r\n\t\t\t}else{\r\n\t\t\t\t$scope.productId = '-1';\r\n\t\t\t\t$scope.productName = 'Own equipment'\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// Join Event\r\n\r\n\t\t$scope.formLoaded = true;\r\n\r\n\t\tvar joinEventResponses = new Array('joinEventResponse1', 'joinEventResponse2', 'joinEventResponse3', 'joinEventResponse4', 'joinEventResponse5', 'joinEventResponse6', 'joinEventResponse7');\r\n\r\n\t\t$scope.joinEvent = function (email, telephone, paymentMethod, productId) {\r\n\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: gymid,\r\n\t\t\t\tId: $scope.schedule.ID,\r\n\t\t\t\tEmail: email,\r\n\t\t\t\tFirstName: $scope.scheduleFirstName,\r\n\t\t\t\tLastName: $scope.scheduleLastName,\r\n\t\t\t\tTelephone: telephone,\r\n\t\t\t\tDate: $scope.schedule.NewDate,\r\n\t\t\t\tVisitName: $scope.schedule.VisitName,\r\n\t\t\t\tPaymentMethod: paymentMethod,\r\n\t\t\t\tLanguage: lang,\r\n\t\t\t\tProductID: $scope.productId,\r\n\t\t\t\tProductName: $scope.productName\r\n\t\t\t}\r\n\r\n\t\t\tif ( $scope.classSettings.ClassBookingRequireProfile == true ) {\r\n\t\t\t\tdataObject = {\r\n\t\t\t\t\tNamespace: namespace,\r\n\t\t\t\t\tGymID: gymid,\r\n\t\t\t\t\tId: $scope.schedule.ID,\r\n\t\t\t\t\tEmail: email,\r\n\t\t\t\t\tDate: $scope.schedule.NewDate,\r\n\t\t\t\t\tVisitName: $scope.schedule.VisitName,\r\n\t\t\t\t\tPaymentMethod: paymentMethod,\r\n\t\t\t\t\tLanguage: lang,\r\n\t\t\t\t\tProductID: $scope.productId,\r\n\t\t\t\t\tProductName: $scope.productName\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ($scope.formLoaded == true) {\r\n\t\t\t $scope.formLoaded = false;\r\n\t\t\t $http({\r\n\t\t\t method: 'POST',\r\n\t\t\t url: '/api/private/JoinEvent',\r\n\t\t\t data: dataObject\r\n\t\t\t }).success(function (data) {\r\n\t\t\t var responseI = data;\r\n\t\t\t $scope.joinEventResponse = joinEventResponses[responseI];\r\n\r\n\t\t\t $('.event-single-box .error-msg').removeClass('show');\r\n\t\t\t $('.event-single-box .success-msg').addClass('show');\r\n\r\n\t\t\t if (responseI == 0) {\r\n\t\t\t $('.event-single-box .success-msg').addClass('green');\r\n\t\t\t }\r\n\r\n\t\t\t if (responseI == 6) {\r\n\t\t\t $('.event-single-box .success-msg').addClass('red');\r\n\t\t\t }\r\n\t\t\t $scope.formLoaded = true;\r\n\t\t\t }).error(function () {\r\n\t\t\t $('.event-single-box .error-msg').addClass('show');\r\n\t\t\t $scope.formLoaded = true;\r\n\t\t\t });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$(document).on('click', '.dd .dd-head', function (e) {\r\n\t\t\t$(this).parent('.dd').toggleClass('show');\r\n\t\t});\r\n\r\n\t\t$(document).click(function (e) {\r\n\t\t\tif ($(e.target).closest('.dd').length === 0 && $('.dd').is('.show')) {\r\n\t\t\t\t$('.dd').removeClass('show');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(document).on('click', '.event-single-box .dd-field', function () {\r\n\t\t\tvar content = $(this).find('label').html();\r\n\t\t\tvar dd = $(this).parents('.dd');\r\n\t\t\tdd.find('.dd-head').html(content);\r\n\t\t\tdd.removeClass('show');\r\n\t\t})\r\n\r\n\t\tif (gym) {\r\n\t\t\tif (gym[0].PortalColor != null && gym[0].PortalColor != 'default') {\r\n\t\t\t\t$('.schedule-wrapper').addClass('theme-' + gym[0].PortalColor);\r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\t$scope.noSchedule = true;\r\n\t}\r\n\r\n\r\n}])\r\n.controller('ScheduleEventInfoController', ['$scope', '$http', '$timeout', '$translate', function ($scope, $http, $timeout, $translate) {\r\n\r\n\t$scope.schedule = schedule;\r\n\t$scope.client = client;\r\n\t$scope.attending = attending;\r\n\r\n\tvar scheduleDate = new Date(schedule.Date);\r\n\tvar dateBeforeCancel = new Date(schedule.Date);\r\n\tdateBeforeCancel.setHours(dateBeforeCancel.getHours() - settings.HoursBeforeCanceling);\r\n\tvar today = new Date();\r\n\r\n\tif (scheduleDate > today) {\r\n\t\t$scope.canCancel = true;\r\n\t}\r\n\r\n\tfunction findElement(arr, propName, propValue) {\r\n\t\tfor (var i = 0; i < arr.length; i++)\r\n\t\t\tif (arr[i][propName] == propValue)\r\n\t\t\t\treturn arr[i];\r\n\t\t// will return undefined if not found; you could return a default instead\r\n\t}\r\n\r\n\t// Get Areas\r\n\t$scope.getAreas = function () {\r\n\t\tvar dataObject = {\r\n\t\t\tNamespace: namespace,\r\n\t\t\tGymId: gymid\r\n\t\t}\r\n\t\t$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: '/api/public/GetAreas?nameSpace=' + namespace + '&gymId=' + gymid,\r\n\t\t\tdata: dataObject\r\n\t\t}).success(function (data) {\r\n\t\t\tvar x = findElement(data, \"AreaID\", $scope.schedule.AreaID);\r\n\t\t\t$scope.areaName = x['Name'];\r\n\r\n\t\t}).error(function () {\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t$scope.getAreas();\r\n\r\n\t$scope.leaveEvent = function () {\r\n\t\tvar now = new Date();\r\n\r\n\t\tif (now < dateBeforeCancel) {\r\n\t\t\tvar dataObject = {\r\n\t\t\t\tNamespace: namespace,\r\n\t\t\t\tGymID: gymid,\r\n\t\t\t\tId: $scope.schedule.ID,\r\n\t\t\t\tClientID: $scope.client.ClientID\r\n\t\t\t}\r\n\r\n\t\t\t$http({\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: '/api/private/leaveEvent',\r\n\t\t\t\tdata: dataObject\r\n\t\t\t}).success(function (data) {\r\n\t\t\t\tif (data == true) {\r\n\t\t\t\t\t$('.event-box .actions').addClass('show-success');\r\n\t\t\t\t}\r\n\t\t\t}).error(function () {\r\n\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$('.event-box .actions').addClass('show-error');\r\n\t\t}\r\n\t}\r\n\r\n}])\r\n.directive('translateDateObjectSchedule', function ($timeout) {\r\n\treturn {\r\n\t\tcontroller: function ($scope) {\r\n\t\t\treturn {};\r\n\t\t},\r\n\t\trequires: 'translateDateObjectSchedule',\r\n\t\tlink: function (scope, element, attrs, thisController) {\r\n\r\n\t\t\t$timeout(function () {\r\n\r\n\t\t\t\tthisController.html = element[0].innerHTML;\r\n\r\n\t\t\t\t// CLEAN THE STRING TO GET A CLEAN NAME DAY\r\n\t\t\t\tvar content_temp1 = thisController.html.replace('', '');\r\n\t\t\t\tvar content_temp2 = content_temp1.replace('', '').toLowerCase();\r\n\r\n\t\t\t\tvar day_name = '';\r\n\r\n\t\t\t\tfor (var i = 0, len = content_temp2.length; i < len; i++) {\r\n\t\t\t\t\t// CHECK IF IS A CHAR\r\n\t\t\t\t\tif (content_temp2[i].match(/[a-z]/i)) {\r\n\t\t\t\t\t\tday_name += content_temp2[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// CHECK THE ACTIVE LANGUAGE\r\n\t\t\t\tif (lang == 'bg') {\r\n\t\t\t\t\t// ASSIGN A DIFFERENT TRANSLATION FOR EACH DAY\r\n\t\t\t\t\tswitch (day_name) {\r\n\t\t\t\t\t\tcase 'monday':\r\n\t\t\t\t\t\t\telement.html('Понеделник');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'tuesday':\r\n\t\t\t\t\t\t\telement.html('Вторник');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'wednesday':\r\n\t\t\t\t\t\t\telement.html('Сряда');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'thursday':\r\n\t\t\t\t\t\t\telement.html('Четвъртък');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'friday':\r\n\t\t\t\t\t\t\telement.html('Петък');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'saturday':\r\n\t\t\t\t\t\t\telement.html('Събота');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'sunday':\r\n\t\t\t\t\t\t\telement.html('Неделя');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if (lang == 'es' || lang == 'esc'){\r\n\t\t\t\t\t// ASSIGN A DIFFERENT TRANSLATION FOR EACH DAY\r\n\t\t\t\t\tswitch (day_name) {\r\n\t\t\t\t\t\tcase 'monday':\r\n\t\t\t\t\t\t\telement.html('Lunes');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'tuesday':\r\n\t\t\t\t\t\t\telement.html('Martes');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'wednesday':\r\n\t\t\t\t\t\t\telement.html('Miércoles');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'thursday':\r\n\t\t\t\t\t\t\telement.html('Jueves');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'friday':\r\n\t\t\t\t\t\t\telement.html('Viernes');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'saturday':\r\n\t\t\t\t\t\t\telement.html('Sábado');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'sunday':\r\n\t\t\t\t\t\t\telement.html('Domingo');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})\r\n.directive('numbersOnly', function () {\r\n\treturn {\r\n\t\trequire: 'ngModel',\r\n\t\tlink: function (scope, element, attr, ngModelCtrl) {\r\n\t\t\tfunction fromUser(text) {\r\n\t\t\t\tif (text) {\r\n\t\t\t\t\tvar transformedInput = text.replace(/[^0-9]/g, '');\r\n\r\n\t\t\t\t\tif (transformedInput !== text) {\r\n\t\t\t\t\t\tngModelCtrl.$setViewValue(transformedInput);\r\n\t\t\t\t\t\tngModelCtrl.$render();\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn transformedInput;\r\n\t\t\t\t}\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\tngModelCtrl.$parsers.push(fromUser);\r\n\t\t}\r\n\t};\r\n});","angular.\r\n module('scheduleApp').\r\n component('authorization', { // This name is what AngularJS uses to match to the `` element.\r\n templateUrl: '../Frontend/CustomersPortal/src/partials/authorization.template.html',\r\n controller: ['$scope', '$http', '$translate', '$filter', '$timeout', AuthorizationController],\r\n bindings: {\r\n login: '<'\r\n }\r\n});\r\n\r\nfunction AuthorizationController($scope, $http, $translate, $filter, $timeout){\r\n $scope.Namespace = namespace;\r\n $scope.GymID = gymid;\r\n $scope.dashLogin = this.login ? this.login : false;\r\n\r\n if ( isMobile ){\r\n $scope.mobileApp = isMobile;\r\n }\r\n\r\n if (gym)\r\n $scope.gym = gym;\r\n\r\n if (learnedFrom)\r\n $scope.learnedFrom = learnedFrom\r\n\r\n var $translateThis = $filter('translate');\r\n\r\n $scope.showLogin = function () {\r\n $scope.dashLogin = true;\r\n }\r\n\r\n $scope.hideLogin = function () {\r\n $scope.dashLogin = false;\r\n }\r\n\r\n\r\n // Get Gyms\r\n getGyms = function () {\r\n var dataObject = {\r\n Namespace: namespace\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/Membership/GetGyms',\r\n data: dataObject\r\n }).success(function (data) {\r\n $scope.membershipGyms = data;\r\n \r\n //$scope.$apply();\r\n\r\n if ($scope.membershipGyms.length == 1) {\r\n $timeout(function () {\r\n $scope.RegGymName = $scope.membershipGyms[0].GymID;\r\n })\r\n }\r\n }).error(function () {\r\n // console.log('error');\r\n });\r\n }\r\n\r\n getGyms();\r\n\r\n $scope.accRegister = function () {\r\n $scope.loading = true;\r\n $scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n var GymID = gymid;\r\n var Namespace = namespace;\r\n var regbirthdate = $('#RegBirthdate').val();\r\n var res = regbirthdate.split(\"/\");\r\n var date = res[1] + '/' + res[0] + '/' + res[2];\r\n var intlNumber = $(\".flag-container .selected-dial-code\").html() + $('#RegPhone').val();\r\n\r\n if ($scope.gym[0].Culture == 'en-US') {\r\n date = regbirthdate;\r\n } else {\r\n date = date;\r\n }\r\n\r\n var dataObject = {\r\n RegEmail: $('#RegEmail').val(),\r\n RegPassword: $('#RegPassword').val(),\r\n RegConfirmPassword: $('#RegConfirmPassword').val(),\r\n RegFirstName: $('#RegFirstName').val(),\r\n RegLastName: $('#RegLastName').val(),\r\n Namespace: namespace,\r\n GymID: gymid,\r\n Male: $scope.regSexRadio,\r\n Telephone: intlNumber,\r\n DivisionID: $('#RegGym').val(),\r\n Birthdate: date,\r\n LearnedFrom: $('#RegLearnedFrom').val(),\r\n WorkAddress: $('#RegWorkAddress').val(),\r\n RecommendBy: $('#RegRecommendBy').val(),\r\n\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/account/register/',\r\n data: dataObject\r\n }).success(function (data) {\r\n var data = data;\r\n\r\n if (data == 'Success') {\r\n var currentHref = window.location;\r\n var href = currentHref.origin + '/Account/ConfirmYourEmail?nameSpace=' + namespace + '&gymId=' + gymid;\r\n if ( isMobile == true ) {\r\n href += '&isMobile=true';\r\n } \r\n\r\n window.location.replace(href);\r\n } else {\r\n var n = data.search(\"com is already taken\");\r\n\r\n if (n > 0) {\r\n var translated = $translateThis('User Taken');\r\n $('.validation-errors').html('

' + translated + '

');\r\n } else {\r\n var res = data.split(\".\");\r\n\r\n if (res.length > 2) {\r\n $('.validation-errors').html('
');\r\n for (var i = 0; i < res.length - 1; i++) {\r\n var msg = res[i] + '.';\r\n var translated = $translateThis(msg);\r\n $('.validation-errors .section-valid').append('

' + translated + '

');\r\n }\r\n } else {\r\n var translated = $translateThis(data);\r\n $('.validation-errors').html('

' + translated + '

');\r\n }\r\n }\r\n }\r\n $scope.loading = false;\r\n\r\n }).error(function () {\r\n // console.log('error');\r\n });\r\n };\r\n\r\n $scope.accLogin = function () {\r\n\r\n $scope.loading = true;\r\n var gymid = $('#accGymID').val();\r\n var namespace = $('#Namespace').val();\r\n\r\n var email = $('#Email').val();\r\n email = email.replace(/ /g,'');\r\n var password = $('#Password').val();\r\n var rememberme = $('#rememberMe').val();\r\n\r\n var dataObject = {\r\n Email: email,\r\n Password: password,\r\n RememberMe: rememberme,\r\n Namespace: namespace,\r\n GymID: gymid\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/account/login/',\r\n data: dataObject\r\n }).success(function (data) {\r\n var data = data;\r\n var currentHref = window.location;\r\n var href = currentHref.origin + '/Account/Dashboard?nameSpace=' + namespace + '&gymId=' + gymid;\r\n\r\n if (data == 'Success') {\r\n window.location.replace(href);\r\n } else {\r\n var translated = $translateThis(data);\r\n $('.validation-errors').html('

' + translated + '

');\r\n }\r\n $scope.loading = false;\r\n\r\n }).error(function () {\r\n // console.log('error');\r\n });\r\n };\r\n\r\n\r\n function setCookie(key, value) {\r\n var val = value;\r\n var expires = new Date();\r\n expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));\r\n document.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + ';path=/';\r\n if (val != \"true\") {\r\n $('body').addClass('pound-currency');\r\n } else {\r\n $('body').removeClass('pound-currency');\r\n }\r\n }\r\n\r\n function getCookie(key) {\r\n var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');\r\n return keyValue ? keyValue[2] : null;\r\n }\r\n\r\n var today = new Date();\r\n var datepicker = $('#RegBirthdate');\r\n var lastDate = getCookie('setDate');\r\n\r\n datepicker.datepicker({\r\n changeMonth: true,\r\n changeYear: true,\r\n yearRange: \"1920:2040\",\r\n numberOfMonths: 1,\r\n onSelect: function (dateText, inst) {\r\n $scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n var date = $(this).val();\r\n\r\n if ($scope.gym[0].Culture != 'en-US') {\r\n var res = date.split(\"/\");\r\n var date = res[1] + '/' + res[0] + '/' + res[2];\r\n }\r\n $scope.cardStartDate = new Date(date);\r\n $scope.membershipStartDate = $scope.cardStartDate;\r\n\r\n if ($('.section-authorize').length && !$('#RegBirthdayVal').is(':checked')) {\r\n $('#RegBirthdayVal').trigger('click');\r\n }\r\n \r\n if ( $('.onepage-wrapper').length ) {\r\n $scope.theChoosenMembershipDate = $scope.cardStartDate;\r\n }\r\n $scope.$apply();\r\n }\r\n });\r\n $scope.currentLang = $translate.proposedLanguage() || $translate.use();\r\n\r\n if ($('.section-authorize').length) {\r\n datepicker.datepicker(\"option\", \"maxDate\", 0);\r\n }\r\n\r\n datepicker.next('i').on('click', function () {\r\n datepicker.datepicker('show');\r\n });\r\n\r\n\r\n if ($scope.currentLang == 'en') {\r\n datepicker.datepicker(\"option\", $.datepicker.regional['en']);\r\n }else if ($scope.currentLang == 'es' || $scope.currentLang == 'esc'){\r\n datepicker.datepicker(\"option\", $.datepicker.regional['es']);\r\n }else {\r\n datepicker.datepicker(\"option\", $.datepicker.regional['bg']);\r\n }\r\n\r\n if ( $scope.gym[0].Culture == 'en-US' ) {\r\n datepicker.datepicker(\"option\", \"dateFormat\", 'mm/dd/yy');\r\n }else{\r\n datepicker.datepicker(\"option\", \"dateFormat\", 'dd/mm/yy');\r\n }\r\n\r\n // $(document).on('click', '.lang-nav li a', function () {\r\n // var lang = $(this).data('lang');\r\n\r\n // if (lang == 'en') {\r\n // datepicker.datepicker(\"option\", $.datepicker.regional['en']);\r\n // }else if ($scope.currentLang == 'es' || $scope.currentLang == 'esc'){\r\n // datepicker.datepicker(\"option\", $.datepicker.regional['es']);\r\n // } else {\r\n // datepicker.datepicker(\"option\", $.datepicker.regional['bg']);\r\n // }\r\n\r\n // if ( $scope.gym[0].Culture == 'en-US' ) {\r\n // datepicker.datepicker(\"option\", \"dateFormat\", 'mm/dd/yy');\r\n // }else{\r\n // datepicker.datepicker(\"option\", \"dateFormat\", 'dd/mm/yy');\r\n // }\r\n // })\r\n\r\n $(window).on('load', function () {\r\n\r\n let phoneLang = $scope.currentLang == 'en' ? 'gb' : $scope.currentLang;\r\n phoneLang = $scope.currentLang == 'esc' ? 'es' : $scope.currentLang;\r\n\r\n\r\n $('#RegPhone').intlTelInput({\r\n autoHideDialCode: false,\r\n preferredCountries: [phoneLang],\r\n separateDialCode: true\r\n });\r\n })\r\n}"],"sourceRoot":"/source/"}