PageSourceSearch

https://ultrasingapore.com/wp-content/themes/ultra-2015/assets/js/upp.js?ver=3.7.283

js ultrasingapore.com collected 2026-09-28 11:36:02 UTC 389,870 bytes, 9,068 lines download raw bytes

1//if ( pplang == 'en') {
2  var
3
4  // Config = '// Config',
5  locale = 'en',
6  helpurl = 'https://ultrapassport.com/help/',
7  _lwidth = '3em',
8
9
10  // Globals = '// Globals',
11  _globalnotice = `${regname} Ticket Registration Is Now Open! &nbsp;&nbsp;  <a href="${regurl}"><em>Register Here</em> <i class="fas fa-chevron-right"></i></a>`,
12  _globalnotice2 = `${regname} Ticket Registration Is Now Open!`,
13  _globalnoticereg = __( 'Check your email! We have sent you purchase instructions for tomorrow’s ticket sale.', 'ultra-2015' ),
14  _maintenance = __( 'Ultra Passport is currently unavailable, please check back soon.', 'ultra-2015' ),
15
16  // Guest = '// Guest',
17  _guestnotice = __( 'You must be logged in to view this page.', 'ultra-2015' ),
18
19  // Labels = '// Labels',
20  _fullname = __( 'Full Name', 'ultra-2015' ),
21  _firstname = __( 'First Name', 'ultra-2015' ),
22  _lastname = __( 'Last Name', 'ultra-2015' ),
23  _email = __( 'Email', 'ultra-2015' ),
24  _emailaddy = __( 'Email Address', 'ultra-2015' ),
25  _confirmemailaddy = __( 'Confirm Email Address', 'ultra-2015' ),
26  _birthday = __( 'Birthday', 'ultra-2015' ),
27  _location = __( 'Location', 'ultra-2015' ),
28  _country = __( 'Country', 'ultra-2015' ),
29  _homeevent = __( 'Home Event', 'ultra-2015' ),
30  _gender = __( 'Gender', 'ultra-2015' ),
31  _password = __( 'Password', 'ultra-2015' ),
32  _male = __( 'Male', 'ultra-2015' ),
33  _female = __( 'Female', 'ultra-2015' ),
34  _other = 'Non Binary',
35  _unknown = 'Prefer Not To Say',
36  _pleaseselect = __( 'Please Select', 'ultra-2015' ),
37  _signuptitle = __( 'Ultra Passport Enrollment', 'ultra-2015' ),
38  _enteryouremail = __( 'Enter Your Email Address', 'ultra-2015' ),
39  _backtologin = __( 'Back to Login', 'ultra-2015' ),
40  _requestnewpass = __( 'Request New Password', 'ultra-2015' ),
41  _on = __( 'On', 'ultra-2015' ),
42  _off = __( 'Off', 'ultra-2015' ),
43  _enrollmentavailable = __( 'Enrollment Now Available', 'ultra-2015' ),
44  _goback = __( 'Go Back', 'ultra-2015' ),
45
46
47  // Text Labels = '// Text Labels',
48  _logintext = __( 'Login', 'ultra-2015' ),
49  _password = __( 'Password', 'ultra-2015' ),
50  _welcome = __( 'Welcome', 'ultra-2015' ),
51  _account = __( 'Account', 'ultra-2015' ),
52  _myaccount = __( 'My Account', 'ultra-2015' ),
53  _mypassport = __( 'My Passport', 'ultra-2015' ),
54  _events = __( 'Events', 'ultra-2015' ),
55  _points = __( 'Points', 'ultra-2015' ),
56  _updates = __( 'Updates', 'ultra-2015' ),
57  _signout = __( 'Log Out', 'ultra-2015' ),
58  _signin = __( 'Log In', 'ultra-2015' ),
59  _signedin = __( 'Logged In', 'ultra-2015' ),
60  _signuptext = __( 'Sign Up', 'ultra-2015' ),
61  _nextlevel = __( 'Next Level', 'ultra-2015' ),
62  _forgot = __( 'Forgot your password?', 'ultra-2015' ),
63  _subscribed = __( 'Subscribed', 'ultra-2015' ),
64  _subscribe = __( 'Subscribe', 'ultra-2015' ),
65  _helpcenter = __( 'Help Center', 'ultra-2015' ),
66  _error = __( 'Error', 'ultra-2015' ),
67  _silver = __( 'Silver', 'ultra-2015' ),
68  _gold = __( 'Gold', 'ultra-2015' ),
69  _platinum = __( 'Platinum', 'ultra-2015' ),
70
71  // Validation Messages = '// Validation Messages',
72  _gendertext = __( 'Please select a gender option.', 'ultra-2015' ),
73  _accepttext = __( 'You must accept the terms.', 'ultra-2015' ),
74
75
76  // Email Verifications = '// Email Verifications',
77  _resendverify = __( 'Verify Email', 'ultra-2015' ),
78  _revalidate = __( 'Please check your email to validate your new email address.', 'ultra-2015' ),
79  _sendingverification = __( 'Sending Verification Email...', 'ultra-2015' ),
80  _verifysent = __( 'Email Verification Sent', 'ultra-2015' ),
81  _emailverifydashboard = __( 'Be sure to verify your email address for access to updates and ticket registrations.', 'ultra-2015' ),
82  _emailverifyupdates = __( 'Be sure to verify your email to activate email updates.', 'ultra-2015' ),
83
84
85  // Edit Page = '// Edit Page',
86  _editaccount = __( 'Edit Account', 'ultra-2015' ),
87  _nochanges = __( 'No Changes Detected', 'ultra-2015' ),
88  _accountupdated = __( 'Account Updated', 'ultra-2015' ),
89  _emailupdatedstarted = __( 'New email addresses must be verified, please check your email to confirm.', 'ultra-2015' ),
90  _emailupdatedverified = __( 'Your new email address is now verified.', 'ultra-2015' ),
91  _passwordresetsent = __( 'Password reset email sent.', 'ultra-2015' ),
92
93
94  // Footer Signup = '// Footer Signup',
95  _startinput = __( 'Enter your email address to get started...', 'ultra-2015' ),
96  _starttext = __( 'Don’t have an account? Sign up to register <br class="small-hide">for events, earn points, and more!', 'ultra-2015' ),
97  _getstarted = __( 'Get Started', 'ultra-2015' ),
98
99
100  // Signup Page = '// Signup Page',
101  _createaccount = __( 'Create My Account', 'ultra-2015' ),
102  _almost = __( 'Almost Finished...', 'ultra-2015' ),
103  _almost2 = 'Congratulations $user_firstname on creating your Ultra Passport<span class="tm">™</span> Account!',
104  _almost3 = 'To activate your account, <strong><u>you MUST validate your email address</u></strong>
104 by clicking the confirmation link we just sent to <strong>$user_email</strong>.',
105  _almost4 = 'If you have not received any email <strong><u>please check your spam folder</u></strong> and add <strong><u>[email protected]</u></strong> to your <strong><u>address book</u></strong>.',
106  _almost5 = __( 'Continue', 'ultra-2015' ),
107  _createdsuccess = __( 'Account created.', 'ultra-2015' ),
108  _createdinfo = __( 'Account is being created:', 'ultra-2015' ),
109  _accountactivated = __( 'Your account is now activated.', 'ultra-2015' ),
110  _accountverified = __( 'Your email address has now been verified.', 'ultra-2015' ),
111  _passwordresetsuccess = __( 'Password Reset Success', 'ultra-2015' ),
112
113
114  // Updates = '// Updates',
115  _updatestext1 = __( 'You must be logged in to subscribe for updates.', 'ultra-2015' ),
116  _updatestextPending = __( 'Please verify your email address to receive updates.', 'ultra-2015' ),
117  _updatessubsrcibe = __( 'You subscribed to receive updates for:', 'ultra-2015' ),
118  _updatesunsubsrcibe = __( 'You unsubscribed to receive updates for:', 'ultra-2015' ),
119
120
121  // Registration = '// Registration',
122  _rbtnbuy = __( 'Buy Tickets Now', 'ultra-2015' ),
123  _regbuy = __( 'Buy Tickets', 'ultra-2015' ),
124  _rbtnregister = __( 'Register For Tickets', 'ultra-2015' ),
125  _rbtnclosed = __( 'Registration Closed', 'ultra-2015' ),
126  _rbtnsoon = __( 'Coming Soon', 'ultra-2015' ),
127  _rbtnupdates = __( 'Get Updates', 'ultra-2015' ),
128  _rbtnsoldout = __( 'Sold Out', 'ultra-2015' ),
129  _rbtnwaitlist = __( 'Join Waitlist', 'ultra-2015' ),
130  _verifyemailregister = __( 'You must verify your email address before registering.', 'ultra-2015' ),
131  _registerbtn = __( 'Register', 'ultra-2015' ),
132  _regbtnhtml = __( 'Registered', 'ultra-2015' ),
133  _regerror = __( 'Error!', 'ultra-2015' ),
134  _regerror2 = __( 'Please try again.', 'ultra-2015' ),
135  _regprocessing = __( 'Your Registration is Processing...', 'ultra-2015' ),
136  _registersuccess = __( 'Registration Successful', 'ultra-2015' ),
137  _regaccepted = __( 'Your <u class="regtype"></u> registration was accepted on', 'ultra-2015' ),
138  _regaccepted2 = __( 'Ticket purchase instructions will be sent to your email 24 hours prior to going on sale.', 'ultra-2015' ),
139  _regaccepted2_2 = __( 'Ticket purchase instructions will be sent to your email 24-48 hours prior to going on sale.', 'ultra-2015' ),
140  _regaccepted2_3 = __( "Ticket purchase instructions have been sent to your email.", 'ultra-2015' ),
141  _regaccepted2_4 = __( "You will be the first to know when tickets are available. Stay tuned.", 'ultra-2015' ),
142  _regaccepted3 = __( 'Ticket purchase instructions were sent to your email with your unique registration code.', 'ultra-2015' ),
143  _regdone1 = __( 'Registration Code', 'ultra-2015' ),
144  _regdone2 = __( 'You Registered on', 'ultra-2015' ),
145  _regdone3 = __( 'Resend Purchase Instructions', 'ultra-2015' ),
146  _selectregtype = __( 'Select Registration Type', 'ultra-2015' ),
147  _regtype = __( 'Registration Type', 'ultra-2015' ),
148
149  // Registrations Confirm = '// Registrations Confirm',
150  _regtext1 = __( 'Is your information up-to-date?', 'ultra-2015' ),
151  _regtext2 = __( 'Please confirm your registration information for', 'ultra-2015' ),
152  _regguest1 = __( 'You must be logged in to register for events.', 'ultra-2015' ),
153  _regpending1 = __( `You're almost there!`, 'ultra-2015' ),
154  _regpending2 = __( 'Please verify your <strong>email address</strong> to unlock registration access.', 'ultra-2015' ),
155  _updateinfobtn = __( 'Update My Information', 'ultra-2015' ),
156  _confirmreg = __( 'Confirm my registration', 'ultra-2015' ),
157
158  _waitlistguest1 = __( 'You must be logged in to join the waitlist', 'ultra-2015' ),
159  _waitlistbtnjoin = __( 'Join Waitlist', 'ultra-2015' ),
160  _waitlistbtnjoined = __( 'Waitlist Joined', 'ultra-2015' ),
161  _waitlistdone = __( 'You Joined the Waitlist on', 'ultra-2015' ),
162  _waitlistsuccess = __( `You're on the Waitlist!`, 'ultra-2015' ),
163  _waitlistpending2 = __( 'Please verify your <strong>email address</strong> to unlock waitlist access.', 'ultra-2015' ),
164
165  // Privacy / Terms Notice = '// Privacy / Terms Notice',
166  privacytext = __( 'Privacy Policy', 'ultra-2015' ),
167  termsofuse = __( 'Terms of Use', 'ultra-2015' ),
168
169  // Copyright == '// Copyright ',
170  upptextlogo = __( 'Ultra Passport<span class="tm">&trade;</span>', 'ultra-2015' ),
171  privacylink = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${privacytext}</a>`,
172  termslink = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${termsofuse}</a>`,
173  _agreesignup = `I agree to the ${upptextlogo} ${privacylink} and ${termslink}.`,
174  _agreesignup2 = `By signing up, you agree to the ${upptextlogo} ${privacylink} and ${termslink}.`,
175  _agreeregister = `By <strong>registering</strong>, you agree to the ${upptextlogo} ${privacylink} and ${termslink}.`,
176  _agreewaitlist = `By <strong>joining the waitlist</strong>, you agree to the ${upptextlogo} ${privacylink} and ${termslink}.`,
177
178  // Passport Dashboard = '// Passport Dashboard',
179  _action = __( 'Action', 'ultra-2015' ),
180  _awarded = __( 'Awarded', 'ultra-2015' ),
181  _award = __( 'Award', 'ultra-2015' ),
182  _benefit = __( 'Benefit', 'ultra-2015' ),
183  _howtoqualify = __( 'How to Earn', 'ultra-2015' ),
184  _pointsexpire = __( '*Points Expire After 25 Calendar Months', 'ultra-2015' ),
185  _qualifydisclaimer = __( '*Please note a "Full Ultra Festival" excludes: Road To Ultra, Ultra Beach and Resistance-only Events.', 'ultra-2015' ),
186  _active = __( 'Active', 'ultra-2015' ),
187  _deleted = __( 'Deleted', 'ultra-2015' ),
188  _expired = __( 'Expired', 'ultra-2015' ),
189
190  _btn_dashboard = __( 'Dashboard', 'ultra-2015' ),
191  _btn_benefits = __( 'Benefits', 'ultra-2015' ),
192  _btn_qualify = __( 'Earn', 'ultra-2015' ),
193  _btn_points = __( 'My Points', 'ultra-2015' ),
194
195  leveltext = _silver,
196  nextlevel = _gold;
197
198  var months = '';
199
200
201
202    // Benefits : '// Benefits',
203    var _silverbenefits = [
204    'Access to Register for Early Bird Tickets for Ultra events before the general public',
205    ];
206    var _goldbenefits = [
207    'Access to Early Bird Tickets before Silver level buyers and the general public',
208    'Use of a separate line for entry into festivals',
209    'Access to the Ultra Passport Lounge',
210    'Priority Customer Service'
211    ];
212    var _platinumbenefits = [
213    'Access to Early Bird Tickets before Gold & Silver level Passport holders and the general public',
214    'Subject to availability, access to special viewing platforms for select artist performances',
215    'Special Benefits specific to each festival'
216    ];
217
218
219    // Errors : '// Errors',
220    var errors = {
221        reset : __( 'Invalid email or expired token, please make sure your cookies are enabled.', 'ultra-2015' ),
222        create : __( 'Creation failed, please make sure your cookies are enabled.', 'ultra-2015' ),
223        general : __( 'Oops! Something went wrong. Please make sure cookies are enabled.', 'ultra-2015' ),
224        password : __( 'Password must be at least 8 characters.', 'ultra-2015' ),
225        duplicateemail : __( 'Email account already in use.', 'ultra-2015' ),
226        matchemail : __( `Your email addresses don't match. Please confirm and reenter your email address.`, 'ultra-2015' ),
227        loginfail : __( 'The username and password you entered did not match our records. Please double-check and try again', 'ultra-2015' ),
228        token : __( 'Invalid Token, Please Log in and try sending a new validation email.', 'ultra-2015' ),
229        pnc : __( 'Please complete your profile to activate your account.', 'ultra-2015' ),
230        birthday : __( 'You must be 18 years of age or older to enroll in Ultra Passport.', 'ultra-2015' ),
231    }
232
233    // Point Labels : '// Point Labels'
234    var pointcodes = {
235        manual : __( 'Passport Admin Adjustment', 'ultra-2015' ),
236        unknown : __( 'Passport Admin Adjustment', 'ultra-2015' ),
237        verify : __( 'Verified Account Email', 'ultra-2015' ),
238        attend_festival : __( 'Attend a Full Ultra Festival', 'ultra-2015' ),
239        attend_rtu : __( 'Attend a Road to Ultra Event', 'ultra-2015' ),
240        attend_resistance : __( 'Attend a Resistance Only Event', 'ultra-2015' ),
241        away_bonus : __( 'Attend Another Continent Event', 'ultra-2015' ),
242        home_bonus_1 : __( 'Attend Your Home Event', 'ultra-2015' ),
243        home_bonus_2 : __( 'Attend Your Home Event x 2', 'ultra-2015' ),
244        home_bonus_3 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
245        home_bonus_4 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
246        home_bonus_5 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
247        home_bonus_6 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
248        home_bonus_7 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
249        home_bonus_8 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
250        home_bonus_9 : __( 'Attend Your Home Event x 3+', 'ultra-2015' ),
251        activate_wristband : __( 'Activate Your Wristband', 'ultra-2015' ),
252    };
253
254    var pointcodes2 = {
255        manual : __( 'Passport Admin Adjustment', 'ultra-2015' ),
256        unknown : __( 'Passport Admin Adjustment', 'ultra-2015' ),
257        verify : __( 'Verified Account Email', 'ultra-2015' ),
258        attend_festival : __( 'Attend an Ultra Worldwide Festival', 'ultra-2015' ),
259        attend_rtu : __( 'Attend a Road to Ultra Event', 'ultra-2015' ),
260        attend_resistance : __( 'Attend a Resistance Only Event', 'ultra-2015' ),
261        away_bonus : __( 'Traveler Bonus', 'ultra-2015' ),
262        home_bonus_1 : __( 'Home Bonus', 'ultra-2015' ),
263        home_bonus_2 : __( 'Loyalty Bonus', 'ultra-2015' ),
264        home_bonus_3 : __( 'Expert Bonus', 'ultra-2015' ),
265        activate_wristband : __( 'Activate Your Wristband', 'ultra-2015' ),
266    };
267
268    // Qualify : '// Qualify'
269    var _qualify = {
270        q1: [ 'Successfully confirm your Ultra Passport Enrollment', 1000 ],
271        q2: [ 'Attend a Full Ultra Festival*', 30000 ],
272        q3: [ 'Attend a Road To Ultra Event', 10000 ],
273        q4: [ 'BONUS · Attend any event on a continent other than your home event', 20000 ],
274        q5: [ 'BONUS · Attend your home event', 10000 ],
275        q6: [ 'BONUS · Attend your home event for a second consecutive year', 20000 ],
276        q7: [ 'BONUS · Attend your home event for a third consecutive year (and any consecutive year therereafter)', 30000 ],
277    }
278
279//}
280
281if ( pplang == 'pt') {
282
283
284    //Notices =
285    var locale = 'pt';
286    var helpurl = 'https://ultrapassport.com/ajuda/';
287    var _lwidth = '3em';
288
289
290    var _globalnotice = `Os Ingressos para o ${regname} estarão à venda amanha`;
291    var _globalnoticereg = 'Confira seu email! Nós mandamos as intruções de compra do ingresso.';
292    var _maintenance = 'Ultra Passport está indisponível no momento, tente novamente mais tarde.';
293    var _guestnotice = 'É necessário estar logado para ver está página.';
294
295    //Labels =
296    var _fullname = 'Nome Completo';
297    var _firstname = 'Primeiro Nome';
298    var _lastname = 'Sobrenome';
299    var _email = 'Email';
300    var _emailaddy = 'Endereço de email';
301    var _confirmemailaddy = 'Confirm Email Address';
302    var _birthday = 'Data de Nascimento';
303    var _location = 'Local de Nascimento';
304    var _country = 'País';
305    var _homeevent = 'Evento de seu interesse';
306    var _gender = 'Sexo';
307    var _password = 'Senha';
308    var _male = 'Masculino';
309    var _female = 'Feminino';
310    var _pleaseselect = 'Selecione';
311    var _signuptitle = 'Ultra Passport Cadastro';
312    var _enteryouremail = 'Preencha seu endereço de Email';
313    var _backtologin = 'Entrar Novamente';
314    var _requestnewpass = 'Solicitar Troca de Senha';
315    var _on = 'Ligado';
316    var _off = 'Desligado';
317    var _enrollmentavailable = 'Inscrições disponíveis agora';
318
319    //Text =
320    var _logintext = 'Entrar';
321    var _password = 'Senha';
322    var _welcome = 'Bem-Vindo';
323    var _account = 'Conta';
324    var _myaccount = 'Minha Conta';
325    var _mypassport = 'Minha Passport';
326    var _events = 'Eventos';
327    var _points = 'Pontos';
328    var _updates = 'Updates';
329    var _signout = 'Sair';
330    var _signin = 'Entrar';
331    var _signedin = 'Assinado';
332    var _signuptext = 'Cadastrar-se';
333    var _nextlevel = 'Proximo nível';
334    var _forgot = 'Esqueceu sua senha?';
335    var _subscribed = 'Inscrito';
336    var _helpcenter = 'Centro de ajuda';
337    var _error = 'Erro';
338    var _silver = 'Prata';
339    var _gold = 'Ouro';
340    var _platinum = 'Platinum';
341
342    //Validation =
343    var _gendertext = 'É necessário escolher um sexo';
344    var _accepttext = 'É necessário aceitar os termos';
345
346
347    //Email Verifications =
348    var _resendverify = 'Reenviar confirmação de email';
349    var _revalidate = 'Cheque seu email para validar sua conta';
350    var _sendingverification = 'Enviando verificação de email...';
351    var _verifysent = 'Verificação enviada';
352    var _emailverifydashboard = 'Não esqueça de confimar seu email para ter acesso a updates e cadastro de ingressos';
353    var _emailverifyupdates = 'Não esqueça de confirmar seu email para receber updates';
354
355
356    //Edit =
357    var _editaccount = 'Editar Conta';
358    var _nochanges = 'Nenhuma edição detectada';
359    var _accountupdated = 'Conta atualizada';
360    var _emailupdatedstarted = 'Novo email precisa ser verificado, confira seu email.';
361    var _emailupdatedverified = 'Seu novo email esta verificado';
362    var _passwordresetsent = 'Email para troca de senha enviado';
363
364
365    //Footer =
366    var _startinput = 'Preencha seu email para começar...';
367    var _starttext = 'Não tem uma conta? Cadastre-se para estar elegível <br class ="small-hide">à eventos, pontos e mais!';
368    var _getstarted = 'Comece Aqui';
369
370
371    //Signup =
372    var _createaccount = 'Criar Minha Conta';
373    var _almost = 'Quase Lá...';
374    var _almost2 = 'Parabéns $user_firstname, você criou sua conta Ultra Passport! <span class="tm">™</span>';
375    var _almost3 = 'Para ativar sua conta <strong><u>é ncessário verificar seu email</u></strong> clicando no link de confirmação que enviamos ao seu <strong>$user_email</strong>..';
376    var _almost4 = 'Caso não tenha recebido nenhum email <strong><u>confira sua pasta de spam</u></strong> e inclua <strong><u><a href="mailto:[email protected]">[email protected]</a></u></strong> a seus <strong><u>contatos confiavéis</u></strong>';
377    var _almost5 = 'Prosseguir';
378    var _createdsuccess = 'Conta Criada';
379    var _createdinfo = 'Sua Conta esta sendo criada:';
380    var _accountactivated = 'Sua Conta foi ativada';
381    var _accountverified = 'Seu email foi verificado.';
382    var _passwordresetsuccess = 'Troca de Senha com sucesso';
383
384
385    //Updates =
386    var _updatestext1 = 'É necessário entrar para se registrar e receber updates.';
387    var _updatestextPending = 'Por favor verifique seu endereço de email para receber updates.';
388    var _updatessubsrcibe = 'Você está inscrito para receber updates do:';
389    var _updatesunsubsrcibe = 'Você cancelou a inscrição para receber updates do:';
390
391
392    //Registration =
393    var _rbtnbuy = 'Compre Ingressos agora';
394    var _regbuy = 'Compre Ingressos';
395    var _rbtnregister = 'Registro para Ingressos';
396    var _rbtnclosed = 'Fechado';
397    var _rbtnsoon = 'Em Breve';
398    var _rbtnupdates = 'Receber Updates';
399    var _verifyemailregister = 'É necessário verificar seu email antes de se registrar';
400    var _regbtnhtml = 'Registrado';
401    var _regerror = 'Erro!';
402    var _regerror2 = 'Por favor tente novamente';
403    var _regprocessing = 'Seu Registro está sendo processado...';
404    var _registersuccess = 'Registro feito com sucesso.';
405    var _regaccepted = 'Seu <u class="regtype"></u> registro foi aceito no';
406    var _regaccepted2 = 'Instruções de compra são enviadas ao seu email entra 24-48 horas antes do início das vendas.';
407    var _regdone1 = 'Código de registro';
408    var _regdone2 = 'Você se registrou em';
409    var _regdone3 = 'Reenviar instruções de compra';
410
411    //Registrations =
412    var _regtext1 = 'Suas Informações estão atualizadas?';
413    var _regtext2 = 'Por Favor confirme sua informação de registro para';
414    var _regguest1 = 'É necessario estar logado para registrar à eventos';
415    var _regpending1 = 'Quase lá!';
416    var _regpending2 = 'Por favor confirme sua <strong>conta de email</strong> para liberar o cadastro.';
417    var _updateinfobtn = 'Atualizar Minhas Informações';
418    var _confirmreg = 'Confirme Meu Registro';
419
420
421    // Privacy / Terms Notice =
422    var privacytext = 'Política de Privacidade';
423    var termsofuse = 'Termos de Uso';
424    var upptextlogo = 'Ultra Passport<span class="tm">&trade;</span>';
425    var privacylink = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${privacytext}</a>`;
426    var termslink = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${termsofuse}</a>`;
427    var _agreesignup = `Eu concordo com os ${termslink} e a ${privacylink} no ${upptextlogo}`;
428    var _agreesignup2 = `Ao Cadastrar, você concorda com os ${termslink} e a ${privacylink} do ${upptextlogo}`;
429    var _agreeregister = `Ao Registrar, você concorda com os ${termslink} e a ${privacylink} do ${upptextlogo}`;
430
431
432  // Passport Labels
433    _action = 'Ação',
434    _award = 'Prêmio',
435    _benefit = 'Benefício',
436    _pointsexpire = '*OS PONTOS EXPIRAM APÓS 25 MESES ',
437    _qualifydisclaimer = '*ATENÇÃO O "FULL ULTRA FESTIVAL" NÃO INCLUI O ROAD TO ULTRA, ULTRA BEACH E OS EVENTOS RESISTANCE.',
438
439    _howtoqualify = 'Como se Registrar',
440
441    _btn_dashboard = 'Página Inicial',
442    _btn_benefits = 'Benefícios',
443    _btn_qualify = 'Registre-se',
444    _btn_points = 'Meus Pontos',
445
446    leveltext = _silver,
447    nextlevel = _gold;
448
449
450
451    // Errors =
452    var errors = {
453        reset : 'Email inválido ou token expirado.',
454        create : 'Criação sem sucesso, por favor tente novamente.',
455        general : 'Oops! Algo deu errado. Por favor confira se os cookies estçao permitidos.',
456        password : 'Senha deve conter no mínimo 8 caracteres.',
457        duplicateemail : 'Conta de email já está em uso.',
458        matchemail : 'Your email addresses don\'t match. Please confirm and reenter your email address.',
459        loginfail : 'O nome de usuário e a senha digitados não correspondem aos nossos registros.',
460        token : 'Token Inválido',
461        birthday : "You must be 18 years of age or older to enroll in Ultra Passport.",
462    }
463
464    // Point Labels
465    var pointcodes = {
466        manual : 'Passport Admin',
467        unknown : 'Ajuste del Administrador de Pasaportes',
468        verify : 'Conta de Email Verificada',
469        attend_festival : 'Vá ao Full Ultra Festival',
470        attend_rtu : 'Attend a Road to Ultra Event',
471        attend_resistance : 'Attend a Resistance Only Event',
472        away_bonus : 'Vá a um Evento em Outro Continente',
473        home_bonus_1 : 'Vá ao Evento no seu País',
474        home_bonus_2 : 'Vá ao Evento no seu País x2',
475        home_bonus_3 : 'Vá ao Evento no seu País x3'
476    };
477
478}
479
480if ( pplang == 'es') {
481
482
483    // Notices = //
484    var locale = 'es';
485    var helpurl = 'https://ultrapassport.com/help';
486    var _globalnotice = `¡Ya puedes registrarse para comprar las entradas de ${regname}! &nbsp;&nbsp; <a href="${regurl}"><em>inscríbirte Aquí</em> <i class="fas fa-chevron-right"></i></a>`;
487    var _globalnotice2 = `¡Registro de entradas de ${regname} ya está abierto!`;
488    var _globalnoticereg = '¡Revise su correo electrónico! Hemos enviado instrucciones para la venta de entradas de mañana.';
489    var _maintenance = 'Ultra Passport no está disponible en este momento, por favor revise de nuevo pronto.';
490    var _guestnotice = 'Debe iniciar una nueva sesión para ver esta página.';
491    var _fullname = 'Nombre y apellido';
492    var _firstname = 'Nombre';
493    var _lastname = 'Apellido';
494    var _email = 'Correo Electrónico';
495    var _emailaddy = 'Dirección de correo electrónico';
496    var _confirmemailaddy = 'Confirmar dirección de email';
497    var _birthday = 'Fecha de Nacimento';
498    var _location = 'Ubicación';
499    var _country = 'País';
500    var _homeevent = 'Evento local';
501    var _gender = 'Sexo';
502    var _male = 'Masculino';
503    var _female = 'Femenino';
504    var _pleaseselect = 'Por favor, seleccione';
505    var _signuptitle = 'Inscripción del Ultra Passport';
506    var _enteryouremail = 'Introduzca su dirección de correo electrónico';
507    var _backtologin = 'Volver a Inicio de sesión';
508    var _requestnewpass = 'Solicitar nueva contraseña';
509    var _on = 'Encendido';
510    var _off = 'Apagado';
511    var _lwidth = '3em';
512    var _enrollmentavailable = 'Inscripción ya disponible';
513    var _logintext = 'Iniciar sesión';
514    var _password = 'Contraseña';
515    var _welcome = 'Bienvenido';
516    var _account = 'Cuenta';
517    var _myaccount = 'Mi Cuenta';
518    var _mypassport = 'Mi Passport';
519    var _events = 'Eventos';
520    var _points = 'Puntos';
521    var _updates = 'Actualizaciones';
522    var _signout = 'Cerrar sessión';
523    var _signin = 'Iniciar sesión';
524    var _signedin = 'Conectado';
525    var _signuptext = 'Crear cuenta nueva';
526    var _nextlevel = 'Siguiente nivel';
527    var _forgot = '¿Ha olvidado su contraseña?';
528    var _subscribed = 'Suscrito';
529    var _helpcenter = 'Preguntas';
530    var _error = 'Error';
531    var _silver = 'Plata';
532    var _gold = 'Oro';
533    var _platinum = 'Platíno';
534    var _gendertext = 'Debe especificar su sexo';
535    var _accepttext = 'Debe aceptar los términos';
536    var _resendverify = 'Reenviar verificación';
537    var _revalidate = 'Por favor revise su correo electrónico para validar su dirección de correo electrónico.';
538    var _sendingverification = 'Enviando verificación de correo electrónico...';
539    var _verifysent = 'La verificación de correo electrónico ha sido envi
539ada.';
540    var _emailverifydashboard = 'Asegúrese de verificar su dirección de correo electrónico para tener acceso a actualizaciones y registros de boletos.';
541    var _emailverifyupdates = 'Asegúrese de verificar su correo electrónico para activar las actualizaciones por correo electrónico.';
542    var _editaccount = 'Editar cuenta';
543    var _nochanges = 'No se detectaron cambios';
544    var _accountupdated = 'Cuenta actualizada';
545    var _emailupdatedstarted = 'Nuevas direcciones de correo electrónico deben ser verificadas. Por favor compruebe su correo electrónico para confirmar.';
546    var _emailupdatedverified = 'Su nueva dirección de correo electrónico ha sido verificada.';
547    var _passwordresetsent = 'Correo electrónico de restablecimiento de contraseña ha sido enviado.';
548    var _startinput = 'Introduzca su dirección de correo electrónico para empezar...';
549    var _starttext = '¿No tienes una cuenta? ¡Abre una cuenta para inscribirte en los eventos, ganar puntos y mucho más!';
550    var _getstarted = 'Empezar';
551    var _createaccount = 'Crear mi cuenta';
552    var _almost = 'Falta poco...';
553    var _almost2 = '¡Felicidades por crear su nueva cuenta Ultra Passport $user_firstname!';
554    var _almost3 = 'Para activar su cuenta, <strong><u>usted debe validar su dirección de correo electrónico</u></strong> haciendo clic en el enlace de confirmación que acabamos de enviar a <strong>$user_email</strong>.';
555    var _almost4 = 'Si usted no ha recibido ningún correo electrónico <strong><u>por favor revise su carpeta de (spam) y agrega [email protected]</strong></u> a sus contactos.';
556    var _almost5 = 'Continuar';
557    var _createdsuccess = 'Su cuenta ha sido creada.';
558    var _createdinfo = 'Su Cuenta está siendo creada:';
559    var _accountactivated = 'Su cuenta ya está activada.';
560    var _accountverified = 'Su dirección de correo electrónico ha sido verificada.';
561    var _passwordresetsuccess = 'Su contraseña ha sido restablecida';
562    var _updatestext1 = 'Debe iniciar una sesión para seleccionar actualizaciones.';
563    var _updatestextPending = 'Por favor verifique su dirección de correo electrónico para recibir actualizaciones.';
564    var _updatessubsrcibe = 'Se suscribió para recibir actualizaciones para:';
565    var _updatesunsubsrcibe = 'Se ha cancelado la suscripción para recibir actualizaciones de:';
566    var _rbtnbuy = 'Comprar entradas ahora';
567    var _regbuy = 'Comprar entradas';
568    var _rbtnregister = 'Regístrate Para Las Entradas';
569    var _rbtnclosed = 'Cerrado';
570    var _rbtnsoon = 'Próximamente';
571    var _rbtnupdates = 'Recibir actualizaciones';
572    var _rbtnwaitlist = 'Únete a la lista';
573    var _verifyemailregister = 'Debe verificar su dirección de correo electrónico antes de registrarse.';
574    var _regbtnhtml = 'Registrado';
575    var _regerror = 'Error !';
576    var _regerror2 = 'Por favor, intente de nuevo.';
577    var _regprocessing = 'Su registración está siendo procesanda...';
578    var _registersuccess = 'Su registración fue aceptada';
579    var _regaccepted = 'Su <u class="regtype"></u> registro fue aceptado el';
580    var _regaccepted2 = 'Las instrucciones para comprar los entradas seran enviadas a su correo electrónico entre 24 y 48 horas antes de venta.';
581    var _regaccepted2_4 = 'Serás el primero en saber cuando las Entradas están disponibles. Permanece atento.';
582    var _regdone1 = 'Código de registro';
583    var _regdone2 = 'Ustéd se registró el';
584    var _regdone3 = 'Reenviar instrucciones de compra';
585    var _regtext1 = '¿Está actualizada su información?';
586    var _regtext2 = 'Por favor confirme su información de registro para';
587    var _regguest1 = 'Debe iniciar sesión para registración en eventos.';
588    var _regpending1 = 'Ya casi está allí.';
589    var _regpending2 = 'Verificar su correo electrónico para accesar su cuenta.';
590    var _updateinfobtn = 'Actualizar mis datos';
591    var _confirmreg = 'Confirmar mi registro';
592
593    var _waitlistguest1 = 'Debes iniciar sesión para inscribirte al waitlist.';
594    var _waitlistbtnjoin = 'Inscribete al waitlist';
595    var _waitlistbtnjoined = 'Inscrito';
596    var _waitlistdone = 'Te inscribiste al waitlist en';
597    var _waitlistsuccess = '¡Estás en el waitlist!';
598    var _waitlistpending2 = 'Por favor, verifica tu <strong>correo electrónico</strong> para acceder al waitlist.';
599
600    var privacytext = 'Política de Privacidad';
601    var termsofuse = 'Términos de Uso';
602    var upptextlogo = 'Ultra Passport<span class="tm">&trade;</span>';
603    var privacylink = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${privacytext}</a>`;
604    var termslink = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${termsofuse}</a>`;
605    var _agreesignup = `Yo acepto la ${privacylink} y los ${termslink} de ${upptextlogo}.`;
606    var _agreesignup2 = `Al abrir una cuenta, usted acepta la ${privacylink} y ${termslink} de ${upptextlogo}.`;
607    var _agreeregister = `Al inscribirse, usted acepta la ${privacylink} y ${termslink} de ${upptextlogo}.`;
608    var _agreewaitlist = `Al inscribirse, usted acepta la ${privacylink} y ${termslink} de ${upptextlogo}.`;
609
610    // PASSPORT LABELS = '',
611    var _action = 'Acción';
612    var _awarded = 'Otorgados';
613    var _award = 'Premio';
614    var _pointsexpire = 'Los puntos expiran después de 25 meses';
615    var _qualifydisclaimer = 'Por favor, tenga en cuenta que un evento principal "Ultra Festival" excluye los eventos: Road to Ultra, Ultra Beach y Resistance.';
616    var _benefit = 'Beneficio';
617    var _sample = 'Puntos otorgados';
618    var _active = 'Activo';
619    var _deleted = 'Eliminados';
620    var _btn_dashboard = 'Tablero de control';
621    var _btn_benefits = 'Beneficios';
622    var _btn_qualify = 'Califica';
623    var _btn_points = 'Mis puntos';
624    var _howtoqualify = 'Cómo calificar';
625    var _points_manual = 'Ajuste de administrador de Passport';
626    var _points_verify = 'Correo electrónico de la cuenta verificada';
627    var _points_attend_festival = 'Asistir a un Ultra Festival completo';
628    var _points_away_bonus = 'Asistir evento en otro continente';
629    var _points_home_bonus_1 = 'Asistir evento casa';
630    var _points_home_bonus_2 = 'Asistir evento casa x 2';
631    var _points_home_bonus_3 = 'Asistir evento casa x 3';
632    var leveltext = _silver;
633    var nextlevel = _gold;
634
635
636    // Errors
637    var errors = {
638        reset : 'Correo electrónico no válido o token caducado.',
639        create : 'La creación de su cuenta falló, favor volver a intentar. ',
640        general : 'Algo salio mal, por favor asegúrese de habilitar cookies.',
641        password : 'La contraseña debe tener al menos 8 caracteres.',
642        duplicateemail : 'Dirección de correo electrónico ya está en uso.',
643        matchemail : 'Tu correo electrónico no coincide, por favor confirma y vuelve a ingresar tu correo electrónico.',
644        loginfail : 'El nombre de usuario y la contraseña que ha introducido no coinciden en nuestro registro. Por favor revise y vuelva a intentarlo.',
645        token : 'El codigo de acceso de seguridad no es valido',
646        birthday : 'You must be 18 years of age or older to enroll in Ultra Passport.',
647    };
648
649    var pointcodes = {
650        manual : 'Ajuste de administrador de Passport',
651        unknown : 'Ajuste de administrador de Passport',
652        verify : 'Correo electrónico de la cuenta verificada',
653        attend_festival : 'Asistir a un Ultra Festival completo',
654        attend_rtu : 'Asistir a un evento de Road to Ultra',
655        attend_resistance : 'Asistir un evento únicamente de Resistance',
656        away_bonus : 'Asistir evento en otro continente',
657        home_bonus_1 : 'Asistir evento casa',
658        home_bonus_2 : 'Asistir evento casa x 2',
659        home_bonus_3 : 'Asistir evento casa x 3+',
660        home_bonus_4 : 'Asistir evento casa x 3+',
661        home_bonus_5 : 'Asistir evento casa x 3+',
662        home_bonus_6 : 'Asistir evento casa x 3+',
663        home_bonus_7 : 'Asistir evento casa x 3+',
664        home_bonus_8 : 'Asistir evento casa x 3+',
665        home_bonus_9 : 'Asistir evento casa x 3+',
666    };
667
668}
669
670if ( pplang == 'mx') {
671    var locale = 'mx';
672    var helpurl = 'https://ultrapassport.com/help';
673    var _lwidth = '3em';
674
675    // GLOBALS = '// GLOBALS',
676    var _globalnotice = `El Registro Para ${regname} ya esta abierto! &nbsp;&nbsp;  <a href="${regurl}"><em>Registrate Aquí</em> <i class="fas fa-chevron-right"></i></a>`;
677    var _globalnotice2 = `El Registro Para ${regname} ya esta abierto!`;
678    var _globalnoticereg = 'Revisa tu correo electrónico! Te acabamos de mandar las instrucciones para la venta de mañana.';
679    var _maintenance = 'Ultra Passport no está disponible actualmente, por favor, vuelva pronto.';
680    var _guestnotice = 'Debe iniciar session para ver esta pagina.';
681
682    // FORM LABELS = '// LABELS',
683    var _fullname = 'Nombre Completo';
684    var _firstname = 'Nombre';
685    var _lastname = 'Apellidos';
686    var _email = 'Correo Electrónico';
687    var _emailaddy = 'Dirección de Correo Electrònico';
688    var _confirmemailaddy = 'Confirm Email Address';
689    var _birthday = 'Fecha de Nacimiento';
690    var _location = 'Locacion';
691    var _country = 'Pais';
692    var _homeevent = 'Evento de Casa';
693    var _gender = 'Género';
694    var _password = 'Contraseña';
695    var _male = 'Masculino';
696    var _female = 'Femenino';
697    var _pleaseselect = 'Selecciona';
698    var _signuptitle = 'Registro Ultra Passport';
699    var _enteryouremail = 'Escribe tu Correo Electrònico';
700    var _backtologin = 'Atrás para iniciar sesión';
701    var _requestnewpass = 'Solicita Contraseña Nueva';
702    var _on = 'Prendido';
703    var _off = 'Apagado';
704
705    // TEXT LABELS = '// TEXT LABELS',
706    var _enrollmentavailable = 'Registro disponible';
707    var _logintext = 'Iniciar sesión ';
708    var _password = 'Contraseña';
709    var _welcome = 'Bienvenido';
710    var _account = 'Cuenta';
711    var _myaccount = 'Mi Cuenta';
712    var _mypassport = 'Mi Pasaporte';
713    var _events = 'Eventos';
714    var _points = 'Puntos';
715    var _updates = 'Actualizaciones';
716    var _signout = 'Cerrar Session';
717    var _signin = 'Iniciar Session';
718    var _signedin = 'Session Iniciada';
719    var _signuptext = 'Registrate';
720    var _nextlevel = 'Siguiente Nivel';
721    var _forgot = 'Se te olvido tu contraseña?';
722    var _subscribed = 'Subscrito';
723    var _helpcenter = 'Centro de Ayuda';
724    var _error = 'Error';
725    var _silver = 'Plata';
726    var _gold = 'Oro';
727    var _platinum = 'Platino';
728
729    // VALIDATION MESSAGES = '// VALIDATION MESSAGES',
730    var _gendertext = 'Tienes que escoger un genero.';
731    var _accepttext = 'Tienes que aceptar los terminos.';
732
733    // EMAIL VERIFICATIONS = '// EMAIL VERIFICATIONS',
734    var _resendverify = 'Renviar Verificacion de Correo Electronico';
735    var _revalidate = 'Revisa tu correo electronico para validar tu nueva direccion de correo electronico';
736    var _sendingverification = 'Enviando correo electronico de verificacion';
737    var _verifysent = 'Correo electronico de verificacion enviado';
738    var _emailverifydashboard = 'Asegurate de verificar tu email para tener acceso a avances y regirto de tickets.';
739    var _emailverifyupdates = 'Asegurate de verificar tu email para activar actualizaciones de email.';
740
741    // EDIT PAGE = '// EDIT PAGE',
742    var _editaccount = 'Editar Cuenta';
743    var _nochanges = 'Cambios no detectados';
744    var _accountupdated = 'Cuenta modificada';
745    var _emailupdatedstarted = 'Nuevo email debe ser verificado, revisa tu email para confirmar.';
746    var _emailupdatedverified = 'Tu nuevo correo ya esta verificado.';
747    var _passwordresetsent = 'Email para resetear enviado.';
748
749    // FOOTER SIGNUP = '// FOOTER SIGNUP',
750    var _startinput = 'Ingresa tu email para comenzar';
751    var _starttext = 'No tienes cuenta? Registrate para tener acceso a eventos, puntos y mas!';
752    var _getstarted = 'Empieza';
753
754    // SIGNUP PAGE = '// SIGNUP PAGE',
755    var _createaccount = 'Crear mi Cuenta';
756    var _almost = 'Ya mero terminamos';
757    var _almost2 = 'Felicidades $user_firstname por crear tu Cuenta Ultra Passport!';
758    var _almost3 = 'Para activar su cuenta, <strong><u>DEBE validar su dirección de correo electrónico </u> </strong> haciendo clic en el enlace de confirmación que acabamos de enviar a <strong>$user_email</strong>.';
759    var _almost4 = 'Si no has recibido ningún correo electrónico <strong> <u> consulta tu carpeta de correo no deseado </u> </strong> y agrega <strong><u>[email protected]</u></strong> <strong><u>a tu libreta de direcciones</u></strong>.';
760    var _almost5 = 'Continuar';
761    var _createdsuccess = 'Cuenta creada';
762    var _createdinfo = 'Tu cuenta esta siendo creada';
763    var _accountactivated = 'Tu cuenta ya esta activada';
764    var _accountverified = 'Tu email ya fue verificado';
765    var _passwordresetsuccess = 'Restablecimiento de Contraseña exitoso';
766    // UPDATES = '// UPDATES',
767    var _updatestext1 = 'Debe iniciar sesión para registrarse para recibir actualizaciones.';
768    var _updatestextPending = 'Verifique su dirección de correo electrónico para recibir actualizaciones.';
769    var _updatessubsrcibe = 'Se ha suscrito a recibir actualizaciones para:';
770    var _updatesunsubsrcibe = 'Has cancelado la suscripción para recibir actualizaciones de:';
771
772    // REGISTRATION = '// REGISTRATION',
773    var _rbtnbuy = 'Compra tus boletos ahora';
774    var _regbuy = 'Compra tus boletos';
775    var _rbtnregister = 'Registrate por boletos';
776    var _rbtnclosed = 'Cerrado';
777    var _rbtnsoon = 'Proximamente';
778    var _rbtnupdates = 'Obtener actualizaciones';
779    var _verifyemailregister = 'Debe verificar su dirección de correo electrónico antes de registrarse.';
780    var _regbtnhtml = 'Registrado';
781    var _regerror = 'Error !';
782    var _regerror2 = 'Vuelva a intentarlo';
783    var _regprocessing = 'Su registro está en proceso …';
784    var _registersuccess = 'Registro exitoso';
785    var _regaccepted = 'Su <u class="regtype"></u> registro fue aceptado en';
786    var _regaccepted2 = 'Las instrucciones de compra de boletos se envían a 
786su correo electrónico 24-48 horas antes salir a la venta.';
787    var _regdone1 = 'Código de registro';
788    var _regdone2 = 'Registrado en';
789    var _regdone3 = 'Reenviar instrucciones de compra';
790
791
792    // REGISTRATION CONFIRM = '// REGISTRATION CONFIRM',
793    var _regtext1 = 'Está su información actualizada?';
794    var _regtext2 = 'Confirme su información de registro paraz';
795    var _regguest1 = 'Debe iniciar sesión para registrarse para eventos.z';
796    var _regpending1 = 'Ya casi estás ahí!';
797    var _regpending2 = 'Verifique su <strong> dirección de correo electrónico </strong> para desbloquear el acceso al registro.';
798    var _updateinfobtn = 'Actualizar mi informaciónz';
799    var _confirmreg = 'Confirmar mi registro';
800    var privacytext = 'Política de privacidad';
801    var termsofuse = 'Términos de Uso';
802    var privacylink = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${privacytext}</a>`;
803    var termslink = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${termsofuse}</a>`;
804    var _agreesignup = `Acepto la ${privacylink} y los ${termslink} de ${upptextlogo}.`;
805    var _agreesignup2 = `Al inscribirse, acepta la ${privacylink} y los ${termslink} de ${upptextlogo}.`;
806    var _agreeregister = `Al registrarse, usted acepta la ${privacylink} y los ${termslink} de ${upptextlogo}.`;
807
808
809    // PASSPORT LABELS  = '// PASSPORT LABELS ',
810    var _action = 'Acción';
811    var _awarded = 'Premiado';
812    var _award = 'Premio';
813    var _action = 'Acción';
814    var _pointsexpire = '* Los puntos caducan después de 25 meses calendario';
815    var _qualifydisclaimer = '* Por favor, tenga en cuenta que un "Full Ultra Festival" excluye: Road To Ultra, Ultra Beach y Resistance-only Events.';
816    var _benefit = 'Beneficio';
817    var _sample = 'Puntos otorgados';
818    var _active = 'Activo';
819    var _deleted = 'Eliminado';
820    var _btn_dashboard = 'Tablero';
821    var _btn_benefits = 'Beneficios';
822    var _btn_qualify = 'Califica';
823    var _btn_points = 'Mis Puntos';
824    var _howtoqualify = 'Como Calificar';
825
826
827    // POINT LABELS = '// POINT LABELS',
828    var _points_manual = 'Ajuste del Administrador de Pasaportes';
829    var _points_verify = 'Correo electrónico de cuenta verificado';
830    var _points_attend_festival = 'Asiste a un Full Ultra Festival';
831    var _points_attend_festival = 'Asiste a un evento de Road to Ultra';
832    var _points_away_bonus = 'Asiste a un evento en otro continente';
833    var _points_home_bonus_1 = 'Asista a su evento en casa';
834    var _points_home_bonus_2 = 'Asista a su evento en casa x 2';
835    var _points_home_bonus_3 = 'Asista a su evento en casa x 3';
836    var leveltext = _silver;
837    var nextlevel = _gold;
838    
839
840    // Errors : '// Errors',
841    var errors = {
842        'reset' : 'Correo electrónico no válido o token expirado.',
843        'create' : 'Error de creación. Inténtalo de nuevo.',
844        'general' : '¡Vaya! Algo salió mal. Asegúrese de que las cookies están habilitadas.',
845        'password' : 'La contraseña debe tener al menos 8 caracteres.',
846        'duplicateemail' : 'Cuenta de correo electrónico ya esta en uso.',
847        'matchemail' : 'Tu correo electrónico no coincide, por favor confirma y vuelve a ingresar tu correo electrónico.',
848        'loginfail' : 'El nombre de usuario y la contraseña que ingresó no coinciden con nuestros registros. Por favor revise e inténtelo de nuevo',
849        'token' : 'Token Invalido, intenta iniciar sesión y <b>reenviar tu correo electrónico de verificación</b>',
850        'birthday' : "You must be 18 years of age or older to enroll in Ultra Passport.",
851    };
852
853    // Point Labels : '// Point Labels'
854    var pointcodes = {
855        manual : 'Ajuste del Administrador de Pasaportes',
856        unknown : 'Ajuste del Administrador de Pasaportes',
857        verify : 'Correo electrónico de cuenta verificado',
858        attend_festival : 'Asiste a un Full Ultra Festival',
859        attend_rtu : 'Asiste a un evento de Road to Ultra',
860        attend_resistance : 'Attend a Resistance Only Event',
861        away_bonus : 'Asiste a un evento en otro continente',
862        home_bonus_1 : 'Asista a su evento en casa',
863        home_bonus_2 : 'Asista a su evento en casa x 2',
864        home_bonus_3 : 'Asista a su evento en casa x 3+',
865        home_bonus_4 : 'Asiste a su evento en casa x 3+',
866        home_bonus_5 : 'Asiste a su evento en casa x 3+',
867        home_bonus_6 : 'Asista a su evento en casa x 3+',
868        home_bonus_7 : 'Asista a su evento en casa x 3+',
869        home_bonus_8 : 'Asiste a su evento en casa x 3+',
870        home_bonus_9 : 'Asiste a su evento en casa x 3+',
871    };
872}
873
874if ( pplang == 'jp') {
875
876    var jp_strings =
877    {
878        "globals": {
879            "_globalnotice": "登録はこちら",
880            "_globalnotice2": regname+"のチケット購入申し込み開å
880§‹ï¼",
881            "_globalnoticereg": "明日のチケット販売の購入方法の手順をお送りしました。メールをご確認ください。",
882            "_maintenance": "Ultra Passportは現在ご利用できません。また暫くしてからご確認ください。",
883            "_guestnotice": "このページを閲覧するにはログインが必要です。"
884        },
885        "form_labels": {
886            "_fullname": "氏名",
887            "_firstname": "名",
888            "_lastname": "氏",
889            "_email": "メールアドレス",
890            "_emailaddy": "メールアドレスを確認してください",
891            "_confirmemailaddy": "メールアドレス",
892            "_birthday": "生年月日",
893            "_location": "地域",
894            "_country": "国",
895            "_homeevent": "ホームイベント",
896            "_gender": "性別",
897            "_password": "パスワード",
898            "_male": "男性",
899            "_female": "女性",
900            "_pleaseselect": "選択",
901            "_signuptitle": "Ultra Passport 登録",
902            "_enteryouremail": "メールアドレスを入力してください。",
903            "_backtologin": "ログインに戻る",
904            "_requestnewpass": "新パスワードをリクエスト",
905            "_on": "On",
906            "_off": "Off"
907        },
908        "labels": {
909            "_enrollmentavailable": "現在申込可能",
910            "_logintext": "ログイン",
911            "_password": "パスワード",
912            "_welcome": "ようこそ",
913            "_account": "アカウント",
914            "_myaccount": "マイ・アカウント",
915            "_mypassport": "マイパスポート",
916            "_events": "イベント",
917            "_points": "ポイント",
918            "_updates": "アップデート",
919            "_signout": "ログアウト",
920            "_signin": "ログイン",
921            "_signedin": "ログイン中",
922            "_signuptext": "申し込む",
923            "_nextlevel": "次のレベル",
924            "_forgot": "パスワードを忘れましたか?",
925            "_subscribed": "登録済み",
926            "_helpcenter": "ヘルプ・センター",
927            "_error": "エラー",
928            "_silver": "シルバー",
929            "_gold": "ゴールド",
930            "_platinum": "プラチナム"
931        },
932        "validation_messages": {
933            "_gendertext": "性別を選択してください",
934            "_accepttext": "条件を承認してください。"
935        },
936        "_email_verifications": {
937            "_resendverify": "メール認証を再送",
938            "_revalidate": "新メールアドレスを有効にするにはメールご確認ください。",
939            "_sendingverification": "認証メールを送信中…",
940            "_verifysent": "認証メール送信完了",
941            "_emailverifydashboard": "アップデートやチケット登録をするには、必ずメールアドレスの確認を行ってください。",
942            "_emailverifyupdates": "アップデート情報メールを有効にするには、必ずメールの確認を行ってください。"
943        },
944        "_edit_page": {
945            "_editaccount": "アカウント編集",
946            "_nochanges": "変更はありませんでした",
947            "_accountupdated": "アカウント更新済み",
948            "_emailupdatedstarted": "新メールアドレスの認証が必要です。承認をするにはメールをご確認ください。",
949            "_emailupdatedverified": "新メールアドレスが認証されました。",
950            "_passwordresetsent": "パスワードリセットのメールを送信しました"
951        },
952        "_footer_signup": {
953            "_startinput": "はじめるにはメールアドレスを入力してください…",
954            "_starttext": "アカウントをお持ちですか?イベント、ポイント獲得などに登録するにはお申込みください。",
955            "_getstarted": "さあ、はじめよう"
956        },
957        "_signup_page": {
958            "_createaccount": "マイアカウントを作成",
959            "_almost": "あと少し…",
960            "_almost2": "$user_firstnameさん、Ultra Passport <span class=\"tm\">™</span>アカウント作成おめでとうございます!",
961            "_almost3": "アカウントを有効にするには、<strong> $user_email </strong>に送信された確認リンクをクリックして、<strong><u>メールアドレスを確認する必要があります</u></strong> ",
962            "_almost4": "メールを受け取っていない場合は、迷惑メールフォルダ</ strong>を確認して<strong><u>アドレス帳</u></strong>]をクリックします。",
963            "_almost5": "続ける",
964            "_createdsuccess": "アカウントが作成されました",
965            "_createdinfo": "アカウント作成中…",
966            "_accountactivated": "あなたのアカウントが現在有効になりました。",
967            "_accountverified": "あなたのメールアドレスが確認されました。",
968            "_passwordresetsuccess": "パスワードのリセット完了"
969        },
970        "_updates": {
971            "_updatestext1": "最新情報を受取るにはログインする必要があります。",
972            "_updatestextPending": "最新情報を受け取るにはメールアドレス認証を行ってください。",
973            "_updatessubsrcibe": "次の最新情報の購読に申し込みました:",
974            "_updatesunsubsrcibe": "次の最新情報の購読を解除しました:"
975        },
976        "_registration": {
977            "_rbtnbuy": "今すぐチケット購入",
978            "_regbuy": "チケット購入",
979            "_rbtnregister": "チケットの登録",
980            "_rbtnclosed": "終了",
981            "_rbtnsoon": "Coming Soon",
982            "_rbtnupdates": "アップデートを受信する",
983            "_verifyemailregister": "登録を完了する前にメールアドレス認証をする必要があります。",
984            "_regbtnhtml": "登録された",
985            "_regerror": "エラーが発生しました",
986            "_regerror2": "もう一度お試しください",
987            "_regprocessing": "登録処理中…",
988            "_registersuccess": "登録が完了しました",
989            "_regaccepted": "登録が承認されました <u class='regtype'></u>",
990            "_regaccepted2": "チケットの購入手順は、販売開始の24〜48時間前に電子メールにて送信されます。",
991            "_regdone1": "登録コード",
992            "_regdone2": "あなたは登録しました",
993            "_regdone3": "購入手順を再送する"
994        },
995        "_registration_confirm": {
996            "_regtext1": "あなたの情報は最新のものですか?",
997            "_regtext2": "あなたの登録情報を確認してください",
998            "_regguest1": "イベントに登録するにはサインインする必要があります。",
999            "_regpending1": "あと少しです!",
1000            "_regpending2": "<strong>メールアドレス</strong>を確認して、登録アクセスを解除してください。",
1001            "_updateinfobtn": "情報を更新する",
1002            "_confirmreg": "登録を確認する",
1003            "privacytext": "プライバシーポリシー",
1004            "termsofuse": "利用規約",
1005            "_agreesignup": "Ultra Passport™のプライバシーポリシーと利用規約に同意する",
1006            "_agreesignup2": "サインアップすると、Ultra Passport™のプライバシーポリシーと利用規約に同意したことになります。",
1007            "_agreeregister": "登録すると、Ultra Passport™のプライバシーポリシーと利用規約に同意したことになります。"
1008        },
1009        "_errors": {
1010            "reset": "無効なメールまたは期限切れのトークン。",
1011            "create": "作成に失敗しました。クッキーが有効になっていることを確認してください。",
1012            "general": "おっと! 何かが間違っているようです。 クッキーが有効になっていることを確認してください。",
1013            "password": "パスワードは8文字以上でなければなりません。",
1014            "matchemail" : "Your email addresses don\'t match. Please confirm and reenter your email address.",
1015            "duplicateemail": "このメールアカウントはすでに使われています。",
1016            "loginfail": "入力したユーザー名とパスワードが当社の記録と一致しませんでした。 再度確認してからもう一度お試しください",
1017            "token": "トークンが無効です。ログインして<b>確認メールを再送してください</b>",
1018            "birthday" : "You must be 18 years of age or older to enroll in Ultra Passport."
1019        },
1020        "_passport_labels": {
1021            "_action": "アクション",
1022            "_awarded": "授与された",
1023            "_award": "授与",
1024            "_pointsexpire": "*ポイントは25ヶ月後に失効します",
1025            "_qualifydisclaimer": "*「Ultra Festival」*(本開催)には、「Road To Ultra」「Ultra Beach」「Resistance」のみのイベントは含まれません",
1026            "_benefit": "利点",
1027            "_sample": "賞与ポイント",
1028            "_active": "アクティブ",
1029            "_deleted": "削除された",
1030            "_btn_dashboard": "ダッシュボード",
1031            "_btn_benefits": "利益",
1032            "_btn_qualify": "資格",
1033            "_btn_points": "マイポイント",
1034            "_howtoqualify": "資格取得方法"
1035        },
1036        "_point_labels": {
1037            "_points_manual": "パスポート管理者の調整",
1038            "_points_verify": "承認済みメールアカウント",
1039            "_points_attend_festival": "Ultra 本開催イベントに参加する",
1040            "_points_attend_rtu": "Road to Ultra イベントに参加する",
1041            "_points_away_bonus": "別の大陸イベントに参加する",
1042            "_points_home_bonus_1": "ホームイベントに参加する",
1043            "_points_home_bonus_2": "ホームイベントに参加する ×2",
1044            "_points_home_bonus_3": "ホームイベントに参加する ×3"
1045        },
1046
1047        /*"// PHP LABELS": {
1048            "$newpassword": "新しいパスワードを入力してください",
1049            "$chooseanewpass": "新しいパスワードを選択する",
1050            "$enteryouremail": "メールアドレスを入力してください",
1051            "$optional": "任意"
1052        },
1053        "// BUTTON TEXT": {
1054            "$goback": "戻る",
1055            "$login": "ログイン",
1056            "$signup": "サインアップ",
1057            "$requestnewpass": "新しいパスワードを要求する",
1058            "$buttonverify": "確認",
1059            "$resetpassword": "パスワードをリセット",
1060            "$createmyaccount": "アカウント作成",
1061            "$updatemyaccount": "アカウント更新",
1062            "$backtologin": "ログインに戻る",
1063            "$forgotpass": "パスワードを忘れましたか?"
1064        },
1065        "// CONTENT": {
1066            "$abouttitle": "私について",
1067            "$upptitle": "パスポート詳細",
1068            "$updatestext": "最新情報を希望するイベントを選択します。",
1069            "$allupdates": "最新情報を全て希望する。",
1070            "$disableall": "全て解除",
1071            "$terms1": "私は同意します",
1072            "$terms2": "登録することにより同意されたと",
1073            "$privacypolicy": "プライバシーポリシー",
1074            "$termsofuse": "利用規約",
1075            "$and": "そして",
1076            "$guestnotice": "このページにアクセスするには、サインインする必要があります。",
1077            "$searchtext": "入力してイベントを検索してください"
1078        },
1079        "// DASHBOARD": {
1080            "$myaccount": "マイパスポート",
1081            "$points": "ポイント",
1082            "$nextlevel": "次のレベル",
1083            "$name": "氏名",
1084            "$location": "場所",
1085            "$customerid": "カスタマーID",
1086            "$created": "作成した",
1087            "$level": "レベル",
1088            "$eventsbtn": "イベント",
1089            "$updatesbtn": "アップデート",
1090            "$editaccount": "アカウント編集",
1091            "$ppdetails": "Passport詳細",
1092            "$ppid": "Passport ID",
1093            "$ppunlock": "次のレベルに到達するのに必要なポイント",
1094            "$status": "ステータス"
1095        },
1096        "// URL SLUGS": {
1097            "$accountpath": "passport",
1098            "$loginpath": "ログイン",
1099            "$signuppath": "サインアップ",
1100            "$lostpath": "紛失",
1101            "$resetpath": "リセット",
1102            "$eventspath": "イベント",
1103            "$verifypath": "確認",
1104            "$changeemail": "メール変更",
1105            "$editpath": "編集",
1106            "$updatespath": "アップデート"
1107        },
1108        "// PAGE TITLES": {
1109            "title_my_passport": "My Passport",
1110            "title_Login": "ログイン",
1111            "title_ultra_passport_enrollment": "Ultra Passportの登録",
1112            "title_reset_your_password": "Passportをリセット",
1113            "title_update_your_password": "Passportをアップデート",
1114            "title_events": "イベント",
1115            "title_verify": "確認",
1116            "title_change_email": "メールアドレス変更",
1117            "title_edit_my_account": "マイアカウントを編集",
1118            "title_manage_updates": "アップデートを管理"
1119        },*/
1120        /*"Footer": {
1121            "email_footer_1": "このメールはUltra Passportから送信されました。",
1122            "email_footer_2": "これがエラーだと思われる場合は、返信して、お問い合わせください。",
1123            "email_footer_3": "Powered by Ultra Passport"
1124        },
1125        "Account Confirmation": {
1126            "email_account_confirmation_subject": "Ultra Passportアカウントの確認",
1127            "email_account_confirmation_message": "Ultra Passportアカウントのメールアドレスを確認してください",
1128            "email_account_confirmation_button": "アカウントを有効化する"
1129        },
1130        "Account Verified": {
1131            "email_account_verified_subject": "アカウントの確認済み",
1132            "email_account_verified_message": "Ultra Passportアカウントのメールアドレスを確認しました。 イベントに登録してポイントを獲得し、Ultra Passportのステータスを増やすことができます。",
1133            "email_account_verified_button": "イベントを表示"
1134        },
1135        "New Email Verification": {
1136            "email_new_email_verification_subject": "新しいメールアドレスを確認してください",
1137            "email_new_email_verification_message": "新しいメールを確認するには、下のボタンをクリックしてください:",
1138            "email_new_email_verification_button": "メールアドレスの確認"
1139        },
1140        "New Email Verified": {
1141            "email_new_email_verified_subject": "新しいメールアドレスが確認されました",
1142            "email_new_email_verified_message": "Ultra Passportアカウントの新しい電子メールアドレスを確認できました。",
1143            "email_new_email_verified_button": "イベントを表示"
1144        },
1145        "Forgot Password": {
1146            "email_forgot_password_subject": "Ultra Passportのパスワードをリセットする",
1147            "email_forgot_password_message": "パスワードをリセットするには、下のボタンをクリックしてください",
1148            "email_forgot_password_button": "パスワードをリセット"
1149        },
1150        "Password Reset": {
1151            "email_password_reset_subject": "パスワードがリセットされました",
1152            "email_password_reset_message": "パスワードがリセットされたことをお知らせします。",
1153            "email_password_reset_button": "マイ・アカウント"
1154        },
1155        "No Account": {
1156            "email_no_account_subject": "このアカウントは存在しません",
1157            "email_no_account_message": "%email%に関連するアカウントは見つかりませんでした。 以下に登録してアカウントを作成してください。",
1158            "email_no_account_button": "今すぐ登録する"
1159        },
1160        "EMAIL LABELS": {
1161            "email_label_intro": "(name) 様",
1162            "email_label_intro_guest": "お客様",
1163            "email_label_confirm_receipt": "このメールは、次の情報を受け取ったことを確認します。 返答が必要な場合は、できるだけ早くご連絡させていただきます。",
1164            "email_label_sent_from": "送信元",
1165            "email_label_generated": "このメールは、.$website_linkの投稿から送信されました。 これがエラーだったと思われる場合は、返信してお知らせください。",
1166            "email_label_contact_request": "お問い合わせする",
1167            "email_label_point_of_contact": "このメールは、あなたが.get_bloginfo(name).の連絡窓口となっているために届きました。これらのメールを受信しないようにするには、ご連絡ください。",
1168            "email_label_terms_of_use": "利用規約",
1169            "email_label_privacy_policy": "プライバシーポリシー"
1170        },
1171        "Form Fields": {
1172            "email_form_success": "完了しました",
1173            "email_form_thank_you": "(name) [sitename]に連絡していただきありがとうございます。 <br> <br>できるだけ早くお返事させていただきます。"
1174        }*/
1175    };
1176
1177
1178    // Config = '// Config',
1179    var locale = 'jp';
1180    var helpurl = 'https://ultrapassport.com/help/';
1181    var _lwidth = '3em';
1182
1183
1184  // Globals = '// Globals',
1185  _globalnotice    = jp_strings['globals']['_globalnotice'];
1186  _globalnotice2   = jp_strings['globals']['_globalnotice2'];
1187  _globalnoticereg = jp_strings['globals']['_globalnoticereg'];
1188  _maintenance     = jp_strings['globals']['_maintenance'];
1189  _guestnotice     = jp_strings['globals']['_guestnotice'];
1190
1191  // Labels = '// Labels',
1192  _fullname            = jp_strings['form_labels']['_fullname'];
1193  _firstname           = jp_strings['form_labels']['_firstname'];
1194  _lastname            = jp_strings['form_labels']['_lastname'];
1195  _email               = jp_strings['form_labels']['_email'];
1196  _emailaddy           = jp_strings['form_labels']['_emailaddy'];
1197  _confirmemailaddy    = jp_strings['form_labels']['_confirmemailaddy'];
1198  _birthday            = jp_strings['form_labels']['_birthday'];
1199  _location            = jp_strings['form_labels']['_location'];
1200  _country             = jp_strings['form_labels']['_country'];
1201  _homeevent           = jp_strings['form_labels']['_homeevent'];
1202  _gender              = jp_strings['form_labels']['_gender'];
1203  _password            = jp_strings['form_labels']['_password'];
1204  _male                = jp_strings['form_labels']['_male'];
1205  _female              = jp_strings['form_labels']['_female'];
1206  _pleaseselect        = jp_strings['form_labels']['_pleaseselect'];
1207  _signuptitle         = jp_strings['form_labels']['_signuptitle'];
1208  _enteryouremail      = jp_strings['form_labels']['_enteryouremail'];
1209  _backtologin         = jp_strings['form_labels']['_backtologin'];
1210  _requestnewpass      = jp_strings['form_labels']['_requestnewpass'];
1211  _on                  = jp_strings['form_labels']['_on'];
1212  _off                 = jp_strings['form_labels']['_off'];
1213  _enrollmentavailable = jp_strings['labels']['_enrollmentavailable'];
1214
1215
1216  // Text Labels = '// Text Labels',
1217  _logintext  = jp_strings['labels']['_logintext'];
1218  _password   = jp_strings['labels']['_password'];
1219  _welcome    = jp_strings['labels']['_welcome'];
1220  _account    = jp_strings['labels']['_account'];
1221  _myaccount  = jp_strings['labels']['_myaccount'];
1222  _mypassport = jp_strings['labels']['_mypassport'];
1223  _events     = jp_strings['labels']['_events'];
1224  _points     = jp_strings['labels']['_points'];
1225  _updates    = jp_strings['labels']['_updates'];
1226  _signout    = jp_strings['labels']['_signout'];
1227  _signin     = jp_strings['labels']['_signin'];
1228  _signedin   = jp_strings['labels']['_signedin'];
1229  _signuptext = jp_strings['labels']['_signuptext'];
1230  _nextlevel  = jp_strings['labels']['_nextlevel'];
1231  _forgot     = jp_strings['labels']['_forgot'];
1232  _subscribed = jp_strings['labels']['_subscribed'];
1233  _helpcenter = jp_strings['labels']['_helpcenter'];
1234  _error      = jp_strings['labels']['_error'];
1235  _silver     = jp_strings['labels']['_silver'];
1236  _gold       = jp_strings['labels']['_gold'];
1237  _platinum   = jp_strings['labels']['_platinum'];
1238
1239  // Validation Messages = '// Validation Messages',
1240  _gendertext = jp_strings['validation_messages']['_gendertext'];
1241  _accepttext = jp_strings['validation_messages']['_accepttext'];
1242
1243
1244  // Email Verifications = '// Email Verifications',
1245  _resendverify         = jp_strings['_email_verifications']['_resendverify'];
1246  _revalidate           = jp_strings['_email_verifications']['_revalidate'];
1247  _sendingverification  = jp_strings['_email_verifications']['_sendingverification'];
1248  _verifysent           = jp_strings['_email_verifications']['_verifysent'];
1249  _emailverifydashboard = jp_strings['_email_verifications']['_emailverifydashboard'];
1250  _emailverifyupdates   = jp_strings['_email_verifications']['_emailverifyupdates'];
1251
1252
1253  // Edit Page = '// Edit Page',
1254  _editaccount          = jp_strings['_edit_page']['_editaccount'];
1255  _nochanges            = jp_strings['_edit_page']['_nochanges'];
1256  _accountupdated       = jp_strings['_edit_page']['_accountupdated'];
1257  _emailupdatedstarted  = jp_strings['_edit_page']['_emailupdatedstarted'];
1258  _emailupdatedverified = jp_strings['_edit_page']['_emailupdatedverified'];
1259  _passwordresetsent    = jp_strings['_edit_page']['_passwordresetsent'];
1260
1261
1262  // Footer Signup = '// Footer Signup',
1263  _startinput = jp_strings['_footer_signup']['_startinput'];
1264  _starttext  = jp_strings['_footer_signup']['_starttext'];
1265  _getstarted = jp_strings['_footer_signup']['_getstarted'];
1266
1267
1268  // Signup Page = '// Signup Page',
1269  _createaccount        = jp_strings['_signup_page']['_createaccount'];
1270  _almost               = jp_strings['_signup_page']['_almost'];
1271  _almost2              = jp_strings['_signup_page']['_almost2'];
1272  _almost3              = jp_strings['_signup_page']['_almost3'];
1273  _almost4              = jp_strings['_signup_page']['_almost4'];
1274  _almost5              = jp_strings['_signup_page']['_almost5'];
1275  _createdsuccess       = jp_strings['_signup_page']['_createdsuccess'];
1276  _createdinfo          = jp_strings['_signup_page']['_createdinfo'];
1277  _accountactivated     = jp_strings['_signup_page']['_accountactivated'];
1278  _accountverified      = jp_strings['_signup_page']['_accountverified'];
1279  _passwordresetsuccess = jp_strings['_signup_page']['_passwordresetsuccess'];
1280
1281
1282  // Updates = '// Updates',
1283  _updatestext1       = jp_strings['_updates']['_updatestext1'];
1284  _updatestextPending = jp_strings['_updates']['_updatestextPending'];
1285  _updatessubsrcibe   = jp_strings['_updates']['_updatessubsrcibe'];
1286  _updatesunsubsrcibe = jp_strings['_updates']['_updatesunsubsrcibe'];
1287
1288
1289  // Registration = '// Registration',
1290  _rbtnbuy             = jp_strings['_registration']['_rbtnbuy'];
1291  _regbuy              = jp_strings['_registration']['_regbuy'];
1292  _rbtnregister        = jp_strings['_registration']['_rbtnregister'];
1293  _rbtnclosed          = jp_strings['_registration']['_rbtnclosed'];
1294  _rbtnsoon            = jp_strings['_registration']['_rbtnsoon'];
1295  _rbtnupdates         = jp_strings['_registration']['_rbtnupdates'];
1296  _verifyemailregister = jp_strings['_registration']['_verifyemailregister'];
1297  _regbtnhtml          = jp_strings['_registration']['_regbtnhtml'];
1298  _regerror            = jp_strings['_registration']['_regerror'];
1299  _regerror2           = jp_strings['_registration']['_regerror2'];
1300  _regprocessing       = jp_strings['_registration']['_regprocessing'];
1301  _registersuccess     = jp_strings['_registration']['_registersuccess'];
1302  _regaccepted         = jp_strings['_registration']['_regaccepted'];
1303  _regaccepted2        = jp_strings['_registration']['_regaccepted2'];
1304  _regaccepted2_2      = jp_strings['_registration']['_regaccepted2_2'];
1305  _regaccepted2_3      = jp_strings['_registration']['_regaccepted2_3'];
1306  _regaccepted3        = jp_strings['_registration']['_regaccepted3'];
1307  _regdone1            = jp_strings['_registration']['_regdone1'];
1308  _regdone2            = jp_strings['_registration']['_regdone2'];
1309  _regdone3            = jp_strings['_registration']['_regdone3'];
1310
1311
1312  // Registrations Confirm = '// Registrations Confirm',
1313  _regtext1      = jp_strings['_registration_confirm']['_regtext1'];
1314  _regtext2      = jp_strings['_registration_confirm']['_regtext2'];
1315  _regguest1     = jp_strings['_registration_confirm']['_regguest1'];
1316  _regpending1   = jp_strings['_registration_confirm']['_regpending1'];
1317  _regpending2   = jp_strings['_registration_confirm']['_regpending2'];
1318  _updateinfobtn = jp_strings['_registration_confirm']['_updateinfobtn'];
1319  _confirmreg    = jp_strings['_registration_confirm']['_confirmreg'];
1320
1321
1322  // Privacy / Terms Notice = '// Privacy / Terms Notice',
1323  privacytext = jp_strings['privacytext'];
1324  termsofuse  = jp_strings['termsofuse'];
1325
1326  // Copyright == '// Copyright ',
1327  upptextlogo    = 'Ultra Passport<span class="tm">&trade;</span>';
1328  privacylink    = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${jp_strings['_registration_confirm']['privacytext']}</a>`;
1329  termslink      = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${jp_strings['_registration_confirm']['termsofuse']}</a>`;
1330  _agreesignup   = jp_strings['_registration_confirm']['_agreesignup'];
1331  _agreesignup2  = jp_strings['_registration_confirm']['_agreesignup2'];
1332  _agreeregister = jp_strings['_registration_confirm']['_agreeregister'];
1333
1334
1335  // Passport Dashboard = '// Passport Dashboard',
1336  _action            = jp_strings['_passport_labels']['_action'];
1337  _awarded           = jp_strings['_passport_labels']['_awarded'];
1338  _award             = jp_strings['_passport_labels']['_award'];
1339  _benefit           = jp_strings['_passport_labels']['_benefit'];
1340  _howtoqualify      = jp_strings['_passport_labels']['_howtoqualify'];
1341  _pointsexpire      = jp_strings['_passport_labels']['_pointsexpire'];
1342  _qualifydisclaimer = jp_strings['_passport_labels']['_qualifydisclaimer'];
1343  _active            = jp_strings['_passport_labels']['_active'];
1344  _deleted           = jp_strings['_passport_labels']['_deleted'];
1345  _btn_dashboard     = jp_strings['_passport_labels']['_btn_dashboard'];
1346  _btn_benefits      = jp_strings['_passport_labels']['_btn_benefits'];
1347  _btn_qualify       = jp_strings['_passport_labels']['_btn_qualify'];
1348  _btn_points        = jp_strings['_passport_labels']['_btn_points'];
1349
1350  leveltext = _silver;
1351  nextlevel = _gold;
1352
1353
1354    // Errors : '// Errors',
1355    var errors = jp_strings['_errors'];
1356
1357    // Point Labels : '// Point Labels'
1358    var pointcodes = {
1359        manual : jp_strings['_point_labels']['_points_manual'],
1360        verify : jp_strings['_point_labels']['_points_verify'],
1361        unknown : 'Passport Admin Adjustment',
1362        attend_festival : jp_strings['_point_labels']['_points_attend_festival'],
1363        attend_rtu : jp_strings['_point_labels']['_points_attend_rtu'],
1364        attend_resistance : 'Attend a Resistance Only Event',
1365        away_bonus : jp_strings['_point_labels']['_points_away_bonus'],
1366        home_bonus_1 : jp_strings['_point_labels']['_points_home_bonus_1'],
1367        home_bonus_2 : jp_strings['_point_labels']['_points_home_bonus_2'],
1368        home_bonus_3 : jp_strings['_point_labels']['_points_home_bonus_3'],
1369    };
1370}
1371
1372if ( pplang == 'zh-cn') {
1373
1374    var zh_cn_strings =
1375    {
1376        "globals": {
1377            "_globalnotice": "按此登记",
1378            "_globalnotice2": regname+"门票现正接受登记!",
1379            "_globalnoticereg": "立即查看你的电子邮件!我们已经向你发送明天公开售票的指引。",
1380            "_maintenance": "Ultra Passport目前无法使用,请稍后再试。",
1381            "_guestnotice": "你必须先登录才可查看此页面。"
1382        },
1383        "form_labels": {
1384            "_fullname": "全名",
1385            "_firstname": "名字",
1386            "_lastname": "姓氏",
1387            "_email": "电邮",
1388            "_emailaddy": "电邮地址",
1389            "_confirmemailaddy": "确认电邮地址",
1390            "_birthday": "生日",
1391            "_location": "地区",
1392            "_country": "国家",
1393            "_homeevent": "所在地区活动",
1394            "_gender": "性別",
1395            "_password": "密码",
1396            "_male": "男性",
1397            "_female": "女性",
1398            "_pleaseselect": "请选择",
1399            "_signuptitle": "注册Ultra Passport",
1400            "_enteryouremail": "请输入你的电邮地址",
1401            "_backtologin": "返回登入页面",
1402            "_requestnewpass": "要求重新设置密码",
1403            "_on": "开启",
1404            "_off": "关闭"
1405        },
1406        "labels": {
1407            "_enrollmentavailable": "现正接受注册",
1408            "_logintext": "登入",
1409            "_password": "密码",
1410            "_welcome": "欢迎",
1411            "_account": "帐户",
1412            "_myaccount": "我的帐户",
1413            "_mypassport": "的Passport",
1414            "_events": "活动",
1415            "_points": "积分",
1416            "_updates": "最新消息",
1417            "_signout": "登出",
1418            "_signin": "登入",
1419            "_signedin": "已登入",
1420            "_signuptext": "注册",
1421            "_nextlevel": "下一级",
1422            "_forgot": "忘记密码?",
1423            "_subscribed": "订阅",
1424            "_helpcenter": "帮助中心",
1425            "_error": "错误",
1426            "_silver": "白银",
1427            "_gold": "黃金",
1428            "_platinum": "白金"
1429        },
1430        "validation_messages": {
1431            "_gendertext": "你必须选择性别。",
1432            "_accepttext": "你必须接受有关条款及细则"
1433        },
1434        "_email_verifications": {
1435            "_resendverify": "重新发送验证电子邮件",
1436            "_revalidate": "请检查你的电子邮箱以验证你的新电邮地址",
1437            "_sendingverification": "正在传送验证电邮",
1438            "_verifysent": "验证电邮已经传送",
1439            "_emailverifydashboard": "请务必认证你的电邮地址以获取更新和注册门票。",
1440            "_emailverifyupdates": "请务必认证你电邮地址作启用电邮更新"
1441        },
1442        "_edit_page": {
1443            "_editaccount": "编辑帐户\n",
1444            "_nochanges": "未检测到任何更改",
1445            "_accountupdated": "帐户已被更新\n",
1446            "_emailupdatedstarted": "新电邮地址必须经过验证,请检查您的电子邮箱以确认。",
1447            "_emailupdatedverified": "新电邮地址己被验证",
1448            "_passwordresetsent": "重置密码邮件已经发送"
1449        },
1450        "_footer_signup": {
1451            "_startinput": "请输入您的电邮地址以便开始",
1452            "_starttext": "没有帐户?登记注册<br class=\"small-hide\">以参加活动,赢取积分及其他奖赏!",
1453            "_getstarted": "立即开始"
1454        },
1455        "_signup_page": {
1456            "_createaccount": "建立我的帐户",
1457            "_almost": "即将完成",
1458            "_almost2": "恭喜$user_firstname成功创建您的Ultra Passport<span class=\"tm\"></span>帐户!",
1459            "_almost3": "若要激活你的帐户,<strong><u>你必须透过点击我们刚刚发送给阁下的电邮中</u>的确认链接以作验证你<strong>电邮地址之用</strong></strong>",
1460            "_almost4": "如果你没有收到任何电邮<strong><u>,请检查垃圾邮件信箱</u>并把</strong><strong></strong><u>[email protected]</u>加到您的<strong><u></u></strong>通信录中",
1461            "_almost5": "ç»§ç»­",
1462            "_createdsuccess": "帐户己建立",
1463            "_createdinfo": "帐户正在创建中",
1464            "_accountactivated": "您的帐户现已激活。",
1465            "_accountverified": "您的电子邮件地址现在已经通过验证。",
1466            "_passwordresetsuccess": "密码重置成功"
1467        },
1468        "_updates": {
1469            "_updatestext1": "您必须登录才能登记接收更新。",
1470            "_updatestextPending": "请验证您的电邮地址以接收更新",
1471            "_updatessubsrcibe": "您订阅了以下的内容更新:",
1472            "_updatesunsubsrcibe": "您取消订阅了以下的内容更新:"
1473        },
1474        "_registration": {
1475            "_rbtnbuy": "立即购买门票",
1476            "_regbuy": "购买门票",
1477            "_rbtnregister": "登记购买门票",
1478            "_rbtnclosed": "已关闭",
1479            "_rbtnsoon": "即将推出",
1480            "_rbtnupdates": "获取最新通知",
1481            "_verifyemailregister": "您必须在注册之前验证您的电邮地址。",
1482            "_regbtnhtml": "已注册",
1483            "_regerror": "错误!",
1484            "_regerror2": "请再尝试",
1485            "_regprocessing": "您的注册正在进行中...",
1486            "_registersuccess": "成功注册",
1487            "_regaccepted": "您的注册已被接受",
1488            "_regaccepted2": "购票指引已在开卖之前24-48小时发送至您的电邮。",
1489            "_regdone1": "注册编号",
1490            "_regdone2": "您已注册",
1491            "_regdone3": "重新发送购票指引"
1492        },
1493        "_registration_confirm": {
1494            "_regtext1": "你的个人资料是最新的吗?",
1495            "_regtext2": "请确认你的注册信息以",
1496            "_regguest1": "你必须先登录才能登记活动。",
1497            "_regpending1": "即将完成",
1498            "_regpending2": "请验证您<strong>的电邮地址</strong>以解锁注册权限。",
1499            "_updateinfobtn": "更新我的个人资料",
1500            "_confirmreg": "确认我的注册",
1501            "privacytext": "隐私政策",
1502            "termsofuse": "使用条款",
1503            "_agreesignup": "我同意Ultra Passport™的隐私政策和使用条款。",
1504            "_agreesignup2": "通过注册,你表示同意Ultra Passport™的隐私政策和使用条款。",
1505            "_agreeregister": "通过注册,你表示同意Ultra Passport™的隐私政策和使用条款。"
1506        },
1507        "_errors": {
1508            "reset": "无效的电邮地址或指令已过期。",
1509            "create": "创建失败,请确保已启用Cookie。",
1510            "general": "啊噢!出了些问题。请确保你已启用Cookie。",
1511            "password": "密码必须至少8个字符。",
1512            "matchemail": "你的电邮地址不符。请确认并重新输入您的电子邮件地址。",
1513            "duplicateemail": "此电邮帐户已被使用。",
1514            "loginfail": "你输入的用户名和密码与我们的记录不符,请仔细检查后再重试。\n",
1515            "token": "无效的指令,请尝试登录并<b>重新发送验证电子邮件</b>",
1516            "birthday" : "You must be 18 years of age or older to enroll in Ultra Passport.",
1517        },
1518        "_passport_labels": {
1519            "_action": "行动",
1520            "_awarded": "已获奖赏",
1521            "_award": "奖赏",
1522            "_pointsexpire": "*积分将在25个月后过期",
1523            "_qualifydisclaimer": "*请注意,“全部Ultra Festival”不包括:Road To Ultra,Ultra Beach和Resistance的活动。",
1524            "_benefit": "优待",
1525            "_sample": "已获积分",
1526            "_active": "活动中",
1527            "_deleted": "已删除",
1528            "_btn_dashboard": "仪表板",
1529            "_btn_benefits": "优待",
1530            "_btn_qualify": "合资格",
1531            "_btn_points": "我的积分",
1532            "_howtoqualify": "如何成为合资格会员"
1533        },
1534        "_point_labels": {
1535            "_points_manual": "Passport管理员调整",
1536            "_points_verify": "验证电邮帐户",
1537            "_points_attend_festival": "参加Road to Ultra的活动",
1538            "_points_away_bonus": "参加其他国家举行的活动",
1539            "_points_home_bonus_1": "参加所在地的活动",
1540            "_points_home_bonus_2": "参加所在地的活动X2",
1541            "_points_home_bonus_3": "参加所在地的活动X3"
1542        },
1543
1544        /*"// PHP LABELS": {
1545            "$newpassword": "输入新密码",
1546            "$chooseanewpass": "请选择新密码",
1547            "$enteryouremail": "输入你的电邮地址",
1548            "$optional": "非必要"
1549        },
1550        "// BUTTON TEXT": {
1551            "$goback": "返回",
1552            "$login": "登入",
1553            "$signup": "注册",
1554            "$requestnewpass": "要求重新设置密码",
1555            "$buttonverify": "认证",
1556            "$resetpassword": "重新设置密码",
1557            "$createmyaccount": "创建我的账户",
1558            "$updatemyaccount": "更新我的账户",
1559            "$backtologin": "回到登入页面",
1560            "$forgotpass": "忘记密码?"
1561        },
1562        "// CONTENT": {
1563            "$abouttitle": "关于我",
1564            "$upptitle": "Passport详情",
1565            "$updatestext": "请选择你想要接收更新资讯的活动。",
1566            "$allupdates": "接收全部更新资讯\n",
1567            "$disableall": "取消所有选项",
1568            "$terms1": "我同意于",
1569            "$terms2": "通过注册,你同意",
1570            "$privacypolicy": "隐私政策",
1571            "$termsofuse": "使用条款",
1572            "$and": "还有",
1573            "$guestnotice": "你必须先登录才能访问此页面。",
1574            "$searchtext": "输入以搜寻活动..."
1575        },
1576        "// DASHBOARD": {
1577            "$myaccount": "的Passport",
1578            "$points": "积分",
1579            "$nextlevel": "下一级",
1580            "$name": "姓名",
1581            "$location": "地区",
1582            "$customerid": "客户身份证明编号",
1583            "$created": "创立",
1584            "$level": "级别",
1585            "$eventsbtn": "活动",
1586            "$updatesbtn": "最后消息",
1587            "$editaccount": "编辑帐户",
1588            "$ppdetails": "Passport详情",
1589            "$ppid": "Passport身份证明编号",
1590            "$ppunlock": "积分用作解锁下一个级别",
1591            "$status": "状态"
1592        },
1593        "// URL SLUGS": {
1594            "$accountpath": "passport",
1595            "$loginpath": "登入",
1596            "$signuppath": "注册",
1597            "$lostpath": "失去",
1598            "$resetpath": "重设",
1599            "$eventspath": "活动",
1600            "$verifypath": "认证",
1601            "$changeemail": "更改电邮地址",
1602            "$editpath": "编辑",
1603            "$updatespath": "最新消息"
1604        },
1605        "// PAGE TITLES": {
1606            "title_my_passport": "我的Passport",
1607            "title_Login": "登入",
1608            "title_ultra_passport_enrollment": "Ultra Passport登记",
1609            "title_reset_your_password": "重设您的密码",
1610            "title_update_your_password": "更新您的密码",
1611            "title_events": "活动",
1612            "title_verify": "验证",
1613            "title_change_email": "更改电邮地址",
1614            "title_edit_my_account": "编辑我的帐户",
1615            "title_manage_updates": "管理更新"
1616        },*/
1617        "_benefits": {
1618            "_silverbenefits_1": "领先大众一步登记取得Ultra活动的早鸟票",
1619            "_goldbenefits_1": "在白银级买家和普通大众前获得早期鸟票",
1620            "_goldbenefits_2": "使用单独的线路进入音乐节",
1621            "_goldbenefits_3": "进入Ultra Passport休息室",
1622            "_goldbenefits_4": "优先客户服务",
1623            "_platinumbenefits_1": "在黄金和白银级护照持有者和普通大众之前获得入场券",
1624            "_platinumbenefits_2": "视具体情况而定,访问特定观看平台以选择明星演出",
1625            "_platinumbenefits_3": "每个音乐节的特殊福利"
1626        },
1627        "_qualify": {
1628            "_qualify_1": "成功确认您的Ultra Passport登记",
1629            "_qualify_2": "参加一个完整的Ultra Festival",
1630            "_qualify_3": "参加Road To Ultra的活动",
1631            "_qualify_4": "奖励·参加您所在地区以外的任何一个国家的活动",
1632            "_qualify_5": "奖励·参加您所在地区内的本土活动",
1633            "_qualify_6": "奖励·连续两年参加您所在地区的本土活动\n",
1634            "_qualify_7": "奖励·连续三年参加您所在地区的本土活动(以及之后的任何连续年份)"
1635        },
1636        /*"Footer": {
1637            "email_footer_1": "此电子邮件是由ULTRA PASSPORT发出的",
1638            "email_footer_2": "如果您认为这是一个错误,请回复并让我们知道",
1639            "email_footer_3": "由Ultra Passport授权"
1640        },
1641        "Account Confirmation": {
1642            "email_account_confirmation_subject": "Ultra Passport帐户确认",
1643            "email_account_confirmation_message": "请确认您的Ultra Passport的电邮地址",
1644            "email_account_confirmation_button": "激活帐户"
1645        },
1646        "Account Verified": {
1647            "email_account_verified_subject": "帐户已被验证",
1648            "email_account_verified_message": "您已成功确认您的Ultra Passport电邮地址。您现在可以登记活动,赚取积分,并提高您的Ultra Passport级别。",
1649            "email_account_verified_button": "查看活动"
1650        },
1651        "New Email Verification": {
1652            "email_new_email_verification_subject": "请验证您的新电邮地址",
1653            "email_new_email_verification_message": "请点击下面的按钮以确认您的新邮件:",
1654            "email_new_email_verification_button": "验证电邮地址"
1655        },
1656        "New Email Verified": {
1657            "email_new_email_verified_subject": "您的新电邮地址己被验证",
1658            "email_new_email_verified_message": "您已成功确认您新的Ultra Passport帐户电邮地址。",
1659            "email_new_email_verified_button": "查看活动"
1660        },
1661        "Forgot Password": {
1662            "email_forgot_password_subject": "重设您的Ultra Passport密码",
1663            "email_forgot_password_message": "点击下面的按钮以重设密码:",
1664            "email_forgot_password_button": "重设密码"
1665        },
1666        "Password Reset": {
1667            "email_password_reset_subject": "你的密码已重设",
1668            "email_password_reset_message": "这封电邮是通知您,您的密码己被重设",
1669            "email_password_reset_button": "我的帐户"
1670        },
1671        "No Account": {
1672            "email_no_account_subject": "此帐户不存在",
1673            "email_no_account_message": "我们无法找到任何与%email%关联的帐户,请于以下创立你的帐户。",
1674            "email_no_account_button": "立即注册"
1675        },
1676        "EMAIL LABELS": {
1677            "email_label_intro": "亲爱的 (名字)",
1678            "email_label_intro_guest": "亲爱的顾客",
1679            "email_label_confirm_receipt": "此电子邮件确认我们已收到以下信息。如果需要回覆,我们会尽快与你联系。",
1680            "email_label_sent_from": "发送来自",
1681            "email_label_generated": "这封电子邮件是通过$website_link网站提交的。如果这是一个错误,请回复并告诉我们",
1682            "email_label_contact_request": "联络请求",
1683            "email_label_point_of_contact": "您收到此电子邮件是因为您是.get_bloginfo(姓名)的联系人。如果您不想再收到这些电子邮件,请通知我们",
1684            "email_label_terms_of_use": "使用条款",
1685            "email_label_privacy_policy": "私隐条例"
1686        },
1687        "Form Fields": {
1688            "email_form_success": "成功",
1689            "email_form_thank_you": "(name)感谢您联系[sitename]。 <br><br>我们会尽快回复您。"
1690        }*/
1691    };
1692
1693
1694  var
1695
1696  // Config = '// Config',
1697    locale = 'zh-cn',
1698    helpurl = 'https://ultrapassport.com/help/',
1699    _lwidth = '3em';
1700
1701
1702  // Globals = '// Globals',
1703    _globalnotice    = zh_cn_strings['globals']['_globalnotice'];
1704    _globalnotice2   = zh_cn_strings['globals']['_globalnotice2'];
1705    _globalnoticereg = zh_cn_strings['globals']['_globalnoticereg'];
1706    _maintenance     = zh_cn_strings['globals']['_maintenance'];
1707    _guestnotice     = zh_cn_strings['globals']['_guestnotice'];
1708
1709  // Labels = '// Labels',
1710    _fullname            = zh_cn_strings['form_labels']['_fullname'];
1711    _firstname           = zh_cn_strings['form_labels']['_firstname'];
1712    _lastname            = zh_cn_strings['form_labels']['_lastname'];
1713    _email               = zh_cn_strings['form_labels']['_email'];
1714    _emailaddy           = zh_cn_strings['form_labels']['_emailaddy'];
1715    _confirmemailaddy    = zh_cn_strings['form_labels']['_confirmemailaddy'];
1716    _birthday            = zh_cn_strings['form_labels']['_birthday'];
1717    _location            = zh_cn_strings['form_labels']['_location'];
1718    _country             = zh_cn_strings['form_labels']['_country'];
1719    _homeevent           = zh_cn_strings['form_labels']['_homeevent'];
1720    _gender              = zh_cn_strings['form_labels']['_gender'];
1721    _password            = zh_cn_strings['form_labels']['_password'];
1722    _male                = zh_cn_strings['form_labels']['_male'];
1723    _female              = zh_cn_strings['form_labels']['_female'];
1724    _pleaseselect        = zh_cn_strings['form_labels']['_pleaseselect'];
1725    _signuptitle         = zh_cn_strings['form_labels']['_signuptitle'];
1726    _enteryouremail      = zh_cn_strings['form_labels']['_enteryouremail'];
1727    _backtologin         = zh_cn_strings['form_labels']['_backtologin'];
1728    _requestnewpass      = zh_cn_strings['form_labels']['_requestnewpass'];
1729    _on                  = zh_cn_strings['form_labels']['_on'];
1730    _off                 = zh_cn_strings['form_labels']['_off'];
1731    _enrollmentavailable = zh_cn_strings['labels']['_enrollmentavailable'];
1732    _goback = '返回';
1733
1734
1735  // Text Labels = '// Text Labels',
1736    _logintext  = zh_cn_strings['labels']['_logintext'];
1737    _password   = zh_cn_strings['labels']['_password'];
1738    _welcome    = zh_cn_strings['labels']['_welcome'];
1739    _account    = zh_cn_strings['labels']['_account'];
1740    _myaccount  = zh_cn_strings['labels']['_myaccount'];
1741    _mypassport = zh_cn_strings['labels']['_mypassport'];
1742    _events     = zh_cn_strings['labels']['_events'];
1743    _points     = zh_cn_strings['labels']['_points'];
1744    _updates    = zh_cn_strings['labels']['_updates'];
1745    _signout    = zh_cn_strings['labels']['_signout'];
1746    _signin     = zh_cn_strings['labels']['_signin'];
1747    _signedin   = zh_cn_strings['labels']['_signedin'];
1748    _signuptext = zh_cn_strings['labels']['_signuptext'];
1749    _nextlevel  = zh_cn_strings['labels']['_nextlevel'];
1750    _forgot     = zh_cn_strings['labels']['_forgot'];
1751    _subscribed = zh_cn_strings['labels']['_subscribed'];
1752    _helpcenter = zh_cn_strings['labels']['_helpcenter'];
1753    _error      = zh_cn_strings['labels']['_error'];
1754    _silver     = zh_cn_strings['labels']['_silver'];
1755    _gold       = zh_cn_strings['labels']['_gold'];
1756    _platinum   = zh_cn_strings['labels']['_platinum'];
1757
1758  // Validation Messages = '// Validation Messages',
1759    _gendertext = zh_cn_strings['validation_messages']['_gendertext'];
1760    _accepttext = zh_cn_strings['validation_messages']['_accepttext'];
1761
1762
1763  // Email Verifications = '// Email Verifications',
1764    _resendverify         = zh_cn_strings['_email_verifications']['_resendverify'];
1765    _revalidate           = zh_cn_strings['_email_verifications']['_revalidate'];
1766    _sendingverification  = zh_cn_strings['_email_verifications']['_sendingverification'];
1767    _verifysent           = zh_cn_strings['_email_verifications']['_verifysent'];
1768    _emailverifydashboard = zh_cn_strings['_email_verifications']['_emailverifydashboard'];
1769    _emailverifyupdates   = zh_cn_strings['_email_verifications']['_emailverifyupdates'];
1770
1771
1772  // Edit Page = '// Edit Page',
1773    _editaccount          = zh_cn_strings['_edit_page']['_editaccount'];
1774    _nochanges            = zh_cn_strings['_edit_page']['_nochanges'];
1775    _accountupdated       = zh_cn_strings['_edit_page']['_accountupdated'];
1776    _emailupdatedstarted  = zh_cn_strings['_edit_page']['_emailupdatedstarted'];
1777    _emailupdatedverified = zh_cn_strings['_edit_page']['_emailupdatedverified'];
1778    _passwordresetsent    = zh_cn_strings['_edit_page']['_passwordresetsent'];
1779
1780
1781  // Footer Signup = '// Footer Signup',
1782    _startinput = zh_cn_strings['_footer_signup']['_startinput'];
1783    _starttext  = zh_cn_strings['_footer_signup']['_starttext'];
1784    _getstarted = zh_cn_strings['_footer_signup']['_getstarted'];
1785
1786
1787  // Signup Page = '// Signup Page',
1788    _createaccount        = zh_cn_strings['_signup_page']['_createaccount'];
1789    _almost               = zh_cn_strings['_signup_page']['_almost'];
1790    _almost2              = zh_cn_strings['_signup_page']['_almost2'];
1791    _almost3              = zh_cn_strings['_signup_page']['_almost3'];
1792    _almost4              = zh_cn_strings['_signup_page']['_almost4'];
1793    _almost5              = zh_cn_strings['_signup_page']['_almost5'];
1794    _createdsuccess       = zh_cn_strings['_signup_page']['_createdsuccess'];
1795    _createdinfo          = zh_cn_strings['_signup_page']['_createdinfo'];
1796    _accountactivated     = zh_cn_strings['_signup_page']['_accountactivated'];
1797    _accountverified      = zh_cn_strings['_signup_page']['_accountverified'];
1798    _passwordresetsuccess = zh_cn_strings['_signup_page']['_passwordresetsuccess'];
1799
1800
1801  // Updates = '// Updates',
1802    _updatestext1       = zh_cn_strings['_updates']['_updatestext1'];
1803    _updatestextPending = zh_cn_strings['_updates']['_updatestextPending'];
1804    _updatessubsrcibe   = zh_cn_strings['_updates']['_updatessubsrcibe'];
1805    _updatesunsubsrcibe = zh_cn_strings['_updates']['_updatesunsubsrcibe'];
1806
1807
1808  // Registration = '// Registration',
1809    _rbtnbuy             = zh_cn_strings['_registration']['_rbtnbuy'];
1810    _regbuy              = zh_cn_strings['_registration']['_regbuy'];
1811    _rbtnregister        = zh_cn_strings['_registration']['_rbtnregister'];
1812    _rbtnclosed          = zh_cn_strings['_registration']['_rbtnclosed'];
1813    _rbtnsoon            = zh_cn_strings['_registration']['_rbtnsoon'];
1814    _rbtnupdates         = zh_cn_strings['_registration']['_rbtnupdates'];
1815    _verifyemailregister = zh_cn_strings['_registration']['_verifyemailregister'];
1816    _regbtnhtml          = zh_cn_strings['_registration']['_regbtnhtml'];
1817    _regerror            = zh_cn_strings['_registration']['_regerror'];
1818    _regerror2           = zh_cn_strings['_registration']['_regerror2'];
1819    _regprocessing       = zh_cn_strings['_registration']['_regprocessing'];
1820    _registersuccess     = zh_cn_strings['_registration']['_registersuccess'];
1821    _regaccepted         = zh_cn_strings['_registration']['_regaccepted'];
1822    _regaccepted2        = zh_cn_strings['_registration']['_regaccepted2'];
1823    _regaccepted2_2      = zh_cn_strings['_registration']['_regaccepted2_2'];
1824    _regaccepted2_3      = zh_cn_strings['_registration']['_regaccepted2_3'];
1825    _regaccepted3        = zh_cn_strings['_registration']['_regaccepted3'];
1826    _regdone1            = zh_cn_strings['_registration']['_regdone1'];
1827    _regdone2            = zh_cn_strings['_registration']['_regdone2'];
1828    _regdone3            = zh_cn_strings['_registration']['_regdone3'];
1829    _selectregtype = '选择登记类别';
1830    _regtype = '登记类别';
1831
1832
1833  // Registrations Confirm = '// Registrations Confirm',
1834    _regtext1      = zh_cn_strings['_registration_confirm']['_regtext1'];
1835    _regtext2      = zh_cn_strings['_registration_confirm']['_regtext2'];
1836    _regguest1     = zh_cn_strings['_registration_confirm']['_regguest1'];
1837    _regpending1   = zh_cn_strings['_registration_confirm']['_regpending1'];
1838    _regpending2   = zh_cn_strings['_registration_confirm']['_regpending2'];
1839    _updateinfobtn = zh_cn_strings['_registration_confirm']['_updateinfobtn'];
1840    _confirmreg    = zh_cn_strings['_registration_confirm']['_confirmreg'];
1841
1842
1843  // Privacy / Terms Notice = '// Privacy / Terms Notice',
1844    privacytext = zh_cn_strings['privacytext'];
1845    termsofuse  = zh_cn_strings['termsofuse'];
1846
1847  // Copyright == '// Copyright ',
1848    upptextlogo    = 'Ultra Passport<span class="tm">&trade;</span>';
1849    privacylink    = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${zh_cn_strings['_registration_confirm']['privacytext']}</a>`;
1850    termslink      = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${zh_cn_strings['_registration_confirm']['termsofuse']}</a>`;
1851    _agreesignup   = zh_cn_strings['_registration_confirm']['_agreesignup'];
1852    _agreesignup2  = zh_cn_strings['_registration_confirm']['_agreesignup2'];
1853    _agreeregister = zh_cn_strings['_registration_confirm']['_agreeregister'];
1854
1855
1856  // Passport Dashboard = '// Passport Dashboard',
1857    _action            = zh_cn_strings['_passport_labels']['_action'];
1858    _awarded           = zh_cn_strings['_passport_labels']['_awarded'];
1859    _award             = zh_cn_strings['_passport_labels']['_award'];
1860    _benefit           = zh_cn_strings['_passport_labels']['_benefit'];
1861    _howtoqualify      = zh_cn_strings['_passport_labels']['_howtoqualify'];
1862    _pointsexpire      = zh_cn_strings['_passport_labels']['_pointsexpire'];
1863    _qualifydisclaimer = zh_cn_strings['_passport_labels']['_qualifydisclaimer'];
1864    _active            = zh_cn_strings['_passport_labels']['_active'];
1865    _deleted           = zh_cn_strings['_passport_labels']['_deleted'];
1866    _btn_dashboard     = zh_cn_strings['_passport_labels']['_btn_dashboard'];
1867    _btn_benefits      = zh_cn_strings['_passport_labels']['_btn_benefits'];
1868    _btn_qualify       = zh_cn_strings['_passport_labels']['_btn_qualify'];
1869    _btn_points        = zh_cn_strings['_passport_labels']['_btn_points'];
1870
1871    leveltext = _silver;
1872    nextlevel = _gold;
1873
1874
1875    // Errors : '// Errors',
1876    var errors = zh_cn_strings['_errors'];
1877
1878    // Point Labels : '// Point Labels'
1879    var pointcodes = {
1880        manual : zh_cn_strings['_point_labels']['_points_manual'],
1881        verify : zh_cn_strings['_point_labels']['_points_verify'],
1882        unknown : 'Passport Admin Adjustment',
1883        attend_festival : zh_cn_strings['_point_labels']['_points_attend_festival'],
1884        attend_rtu : zh_cn_strings['_point_labels']['_points_attend_rtu'],
1885        attend_resistance : 'Attend a Resistance Only Event',
1886        away_bonus : zh_cn_strings['_point_labels']['_points_away_bonus'],
1887        home_bonus_1 : zh_cn_strings['_point_labels']['_points_home_bonus_1'],
1888        home_bonus_2 : zh_cn_strings['_point_labels']['_points_home_bonus_2'],
1889        home_bonus_3 : zh_cn_strings['_point_labels']['_points_home_bonus_3'],
1890    };
1891
1892}
1893
1894if ( pplang == 'zh-hk') {
1895
1896    var zh_hk_strings =
1897    {
1898        "globals": {
1899            "_globalnotice": "按此登記",
1900            "_globalnotice2": regname+"門票現正接受登記!",
1901            "_globalnoticereg": "立即查看你的電子郵件!我們已經向你發送明天公開售票的指引。",
1902            "_maintenance": "Ultra Passport目前無法使用,請稍後再試。",
1903            "_guestnotice": "你必須先登錄才可查看此頁面。"
1904        },
1905        "form_labels": {
1906            "_fullname": "全名",
1907            "_firstname": "名字",
1908            "_lastname": "姓氏",
1909            "_email": "電郵",
1910            "_emailaddy": "電郵地址",
1911            "_confirmemailaddy": "確認電郵地址",
1912            "_birthday": "生日",
1913            "_location": "地區",
1914            "_country": "國家",
1915            "_homeevent": "所在地區活動",
1916            "_gender": "性別",
1917            "_password": "密碼",
1918            "_male": "男性",
1919            "_female": "女性",
1920            "_pleaseselect": "請選擇",
1921            "_signuptitle": "註冊Ultra Passport",
1922            "_enteryouremail": "請輸入你的電郵地址",
1923            "_backtologin": "返回登入頁面",
1924            "_requestnewpass": "要求重新設置密碼",
1925            "_on": "開啟",
1926            "_off": "關閉"
1927        },
1928        "labels": {
1929            "_enrollmentavailable": "現正接受註冊",
1930            "_logintext": "登入",
1931            "_password": "密碼",
1932            "_welcome": "歡迎",
1933            "_account": "帳戶",
1934            "_myaccount": "我的帳戶",
1935            "_mypassport": "我的Passport",
1936            "_events": "活動",
1937            "_points": "積分",
1938            "_updates": "最新消息",
1939            "_signout": "登出",
1940            "_signin": "登入",
1941            "_signedin": "已登入",
1942            "_signuptext": "註冊",
1943            "_nextlevel": "下一級",
1944            "_forgot": "忘記密碼?",
1945            "_subscribed": "訂閱",
1946            "_helpcenter": "幫助中心",
1947            "_error": "錯誤",
1948            "_silver": "白銀",
1949            "_gold": "黃金",
1950            "_platinum": "白金"
1951        },
1952        "validation_messages": {
1953            "_gendertext": "你必須選擇性別。",
1954            "_accepttext": "你必須接受有關條款及細則"
1955        },
1956        "_email_verifications": {
1957            "_resendverify": "重新發送驗證電子郵件",
1958            "_revalidate": "請檢查你的電子郵箱以驗證你的新電郵地址。",
1959            "_sendingverification": "正在傳送驗證電郵",
1960            "_verifysent": "驗證電郵已經傳送",
1961            "_emailverifydashboard": "請務必認證你的電郵地址以獲取更新和註冊門票。",
1962            "_emailverifyupdates": "請務必認證你電郵地址作啟用電郵更新"
1963        },
1964        "_edit_page": {
1965            "_editaccount": "編輯帳戶",
1966            "_nochanges": "未檢測到任何更改",
1967            "_accountupdated": "帳戶已被更新",
1968            "_emailupdatedstarted": "新電郵地址必須經過驗證,請檢查您的電子郵箱以確認。",
1969            "_emailupdatedverified": "新電郵地址己被驗證",
1970            "_passwordresetsent": "重置密碼郵件已經發送"
1971        },
1972        "_footer_signup": {
1973            "_startinput": "請輸入您的電郵地址以便開始",
1974            "_starttext": "没有帳戶?登記註冊<br class=\"small-hide\">以參加活動,贏取積分及其他獎賞!",
1975            "_getstarted": "立即開始"
1976        },
1977        "_signup_page": {
1978            "_createaccount": "建立我的帳戶",
1979            "_almost": "即將完成",
1980            "_almost2": "恭喜$user_firstname成功創建您的Ultra Passport<span class=\"tm\"></span>帳戶!",
1981            "_almost3": "若要激活你的帳戶,<strong><u></u></strong>你必須透過點擊我們剛剛發送給閣下的電郵中的確認鏈接以作驗證你電郵地址之用<strong></strong>",
1982            "_almost4": "如果你没有收到任何電郵,請檢查垃圾郵件信箱<strong><u><strong><u><strong><u></u></strong></u></strong></u></strong>並把[email protected]加到您的通信錄中",
1983            "_almost5": "繼續",
1984            "_createdsuccess": "帳戶己建立",
1985            "_createdinfo": "帳戶正在創建中",
1986            "_accountactivated": "您的帳戶現已激活。",
1987            "_accountverified": "您的電子郵件地址現在已經通過驗證。",
1988            "_passwordresetsuccess": "密碼重置成功"
1989        },
1990        "_updates": {
1991            "_updatestext1": "您必須登錄才能登記接收更新。",
1992            "_updatestextPending": "請驗證您的電郵地址以接收更新",
1993            "_updatessubsrcibe": "您訂閱了以下的內容更新:",
1994            "_updatesunsubsrcibe": "您取消訂閱了以下的內容更新:"
1995        },
1996        "_registration": {
1997            "_rbtnbuy": "立即購買門票",
1998            "_regbuy": "購買門票",
1999            "_rbtnregister": "登記購買門票",
2000            "_rbtnclosed": "已關閉",
2001            "_rbtnsoon": "即將推出",
2002            "_rbtnupdates": "獲取最新通知",
2003            "_verifyemailregister": "您必須在註冊之前驗證您的電郵地址。",
2004            "_regbtnhtml": "已註冊",
2005            "_regerror": "錯誤!",
2006            "_regerror2": "請再嘗試",
2007            "_regprocessing": "您的註冊正在進行中...",
2008            "_registersuccess": "成功註冊",
2009            "_regaccepted": "您的註冊已被接受",
2010            "_regaccepted2": "購票指引已在開賣之前24-48小時發送至您的電郵。",
2011            "_regdone1": "註冊編號",
2012            "_regdone2": "您已註冊",
2013            "_regdone3": "重新發送購票指引"
2014        },
2015        "_registration_confirm": {
2016            "_regtext1": "你的個人資料是最新的嗎?",
2017            "_regtext2": "請確認你的註冊信息以",
2018            "_regguest1": "你必須先登錄才能登記活動。",
2019            "_regpending1": "即將完成",
2020            "_regpending2": "請驗證您<strong>的電郵地址</strong>以解鎖註冊權限。",
2021            "_updateinfobtn": "更新我的個人資料",
2022            "_confirmreg": "確認我的註冊",
2023            "privacytext": "隱私政策",
2024            "termsofuse": "使用條款",
2025            "_agreesignup": "我同意Ultra Passport™的隱私政策和使用條款。",
2026            "_agreesignup2": "通過註冊,你表示同意Ultra Passport™的隱私政策和使用條款。",
2027            "_agreeregister": "通過註冊,你表示同意Ultra Passport™的隱私政策和使用條款。"
2028        },
2029        "_errors": {
2030            "reset": "無效的電郵地址或指令已過期。",
2031            "create": "創建失敗,請確保已啟用Cookie。",
2032            "general": "啊噢!出了些問題。請確保你已啟用Cookie。",
2033            "password": "密碼必須至少8個字符。",
2034            "duplicateemail": "此電郵帳戶已被使用。",
2035            "matchemail": "你的電郵地址不符。 請確認並重新輸入您的電子郵件地址。",
2036            "loginfail": "你輸入的用戶名和密碼與我們的記錄不符,請仔細檢查後再重試。",
2037            "token": "無效的指令,請嘗試登錄並<b>重新發送驗證電子郵件</b>",
2038            "birthday" : "You must be 18 years of age or older to enroll in Ultra Passport.",
2039        },
2040        "_passport_labels": {
2041            "_action": "行動",
2042            "_awarded": "已獲獎賞",
2043            "_award": "獎賞",
2044            "_pointsexpire": "*積分將在25個月後過期",
2045            "_qualifydisclaimer": "*請注意,“全部Ultra Festival”不包æ
2045‹¬ï¼šRoad To Ultra,Ultra Beach和Resistance的活動。",
2046            "_benefit": "優待",
2047            "_sample": "已獲積分",
2048            "_active": "活動中",
2049            "_deleted": "已刪除",
2050            "_btn_dashboard": "儀表板",
2051            "_btn_benefits": "優待",
2052            "_btn_qualify": "合資格",
2053            "_btn_points": "我的積分",
2054            "_howtoqualify": "如何成為合資格會員"
2055        },
2056        "_point_labels": {
2057            "_points_manual": "Passport管理員調整",
2058            "_points_verify": "驗證電郵帳戶",
2059            "_points_attend_festival": "參加Road to Ultra的活動",
2060            "_points_away_bonus": "參加其他國家舉行的活動",
2061            "_points_home_bonus_1": "參加所在地的活動",
2062            "_points_home_bonus_2": "參加所在地的活動X2",
2063            "_points_home_bonus_3": "參加所在地的活動X3"
2064        },
2065
2066        /*"// PHP LABELS": {
2067            "$newpassword": "輸入新密碼",
2068            "$chooseanewpass": "請選擇新密碼",
2069            "$enteryouremail": "輸入你的電郵地址",
2070            "$optional": "非必要"
2071        },
2072        "// BUTTON TEXT": {
2073            "$goback": "返回",
2074            "$login": "登入",
2075            "$signup": "註冊",
2076            "$requestnewpass": "要求重新設置密碼",
2077            "$buttonverify": "認證",
2078            "$resetpassword": "重新設置密碼",
2079            "$createmyaccount": "創建我的賬戶",
2080            "$updatemyaccount": "更新我的賬戶",
2081            "$backtologin": "回到登入頁面",
2082            "$forgotpass": "忘記密碼?"
2083        },
2084        "// CONTENT": {
2085            "$abouttitle": "關於我",
2086            "$upptitle": "Passport詳情",
2087            "$updatestext": "請選擇你想要接收更新資訊的活動。",
2088            "$allupdates": "接收全部更新資訊",
2089            "$disableall": "取消所有選項",
2090            "$terms1": "我同意於",
2091            "$terms2": "通過註冊,你同意",
2092            "$privacypolicy": "隱私政策",
2093            "$termsofuse": "使用條款",
2094            "$and": "還有",
2095            "$guestnotice": "你必須先登錄才能訪問此頁面。",
2096            "$searchtext": "輸入以搜尋活動..."
2097        },
2098        "// DASHBOARD": {
2099            "$myaccount": "我的Passport",
2100            "$points": "積分",
2101            "$nextlevel": "下一級",
2102            "$name": "姓名",
2103            "$location": "地區",
2104            "$customerid": "客戶身份証明編號",
2105            "$created": "創立",
2106            "$level": "級別",
2107            "$eventsbtn": "活動",
2108            "$updatesbtn": "最後消息",
2109            "$editaccount": "編輯帳戶",
2110            "$ppdetails": "Passport詳情",
2111            "$ppid": "Passport身份証明編號",
2112            "$ppunlock": "積分用作解鎖下一個級別",
2113            "$status": "狀態"
2114        },
2115        "// URL SLUGS": {
2116            "$accountpath": "passport",
2117            "$loginpath": "登入",
2118            "$signuppath": "註冊",
2119            "$lostpath": "失去",
2120            "$resetpath": "重設",
2121            "$eventspath": "活動",
2122            "$verifypath": "認證",
2123            "$changeemail": "更改電郵地址",
2124            "$editpath": "編輯",
2125            "$updatespath": "最新消息"
2126        },
2127        "// PAGE TITLES": {
2128            "title_my_passport": "我的Passport",
2129            "title_Login": "登入",
2130            "title_ultra_passport_enrollment": "Ultra Passport登記",
2131            "title_reset_your_password": "重設您的密碼",
2132            "title_update_your_password": "更新您的密碼",
2133            "title_events": "活動",
2134            "title_verify": "驗證",
2135            "title_change_email": "更改電郵地址",
2136            "title_edit_my_account": "編輯我的帳戶",
2137            "title_manage_updates": "管理更新"
2138        },*/
2139        "_benefits": {
2140            "_silverbenefits_1": "領先大眾一步登記取得Ultra活動的早鳥票",
2141            "_goldbenefits_1": "在白銀級買家和普通大眾前獲得早期鳥票",
2142            "_goldbenefits_2": "使用單獨的線路進入音樂節",
2143            "_goldbenefits_3": "進入Ultra Passport休息室",
2144            "_goldbenefits_4": "優先客戶服務",
2145            "_platinumbenefits_1": "在黃金和白銀級護照持有者和普通大眾之前獲得入場券",
2146            "_platinumbenefits_2": "視具體情況而定,訪問特定觀看平台以選擇明星演出",
2147            "_platinumbenefits_3": "每個音樂節的特殊福利"
2148        },
2149        "_qualify": {
2150            "_qualify_1": "成功確認您的Ultra Passport登記",
2151            "_qualify_2": "參加一個完整的Ultra Festival",
2152            "_qualify_3": "參加Road To Ultra的活動",
2153            "_qualify_4": "獎勵·參加您所在地區以外的任何一個國家的活動",
2154            "_qualify_5": "獎勵·參加您所在地區內的本土活動",
2155            "_qualify_6": "獎勵·連續兩年參加您所在地區的本土活動",
2156            "_qualify_7": "獎勵·連續三年參加您所在地區的本土活動(以及之後的任何連續年份)"
2157        },
2158        /*"Footer": {
2159            "email_footer_1": "此電子郵件是由ULTRA PASSPORT發出的",
2160            "email_footer_2": "如果您認為這是一個錯誤,請回复並讓我們知道。\n",
2161            "email_footer_3": "由Ultra Passport授權"
2162        },
2163        "Account Confirmation": {
2164            "email_account_confirmation_subject": "Ultra Passport帳戶確認",
2165            "email_account_confirmation_message": "請確認您的Ultra Passport的電郵地址",
2166            "email_account_confirmation_button": "激活帳戶"
2167        },
2168        "Account Verified": {
2169            "email_account_verified_subject": "帳戶已被驗證",
2170            "email_account_verified_message": "您已成功確認您的Ultra Passport電郵地址。 您現在可以登記活動,賺取積分,並提高您的Ultra Passport級別。",
2171            "email_account_verified_button": "查看活動"
2172        },
2173        "New Email Verification": {
2174            "email_new_email_verification_subject": "請驗證您的新電郵地址",
2175            "email_new_email_verification_message": "請點擊下面的按鈕以確認您的新郵件:",
2176            "email_new_email_verification_button": "驗證電郵地址"
2177        },
2178        "New Email Verified": {
2179            "email_new_email_verified_subject": "您的新電郵地址己被驗證",
2180            "email_new_email_verified_message": "您已成功確認您新的Ultra Passport帳戶電郵地址。",
2181            "email_new_email_verified_button": "查看活動"
2182        },
2183        "Forgot Password": {
2184            "email_forgot_password_subject": "重設您的Ultra Passport密碼",
2185            "email_forgot_password_message": "點擊下面的按鈕以重設密碼:",
2186            "email_forgot_password_button": "重設密碼"
2187        },
2188        "Password Reset": {
2189            "email_password_reset_subject": "你的密碼已重設",
2190            "email_password_reset_message": "這封電郵是通知您,您的密碼己被重設",
2191            "email_password_reset_button": "我的帳戶"
2192        },
2193        "No Account": {
2194            "email_no_account_subject": "此帳戶不存在",
2195            "email_no_account_message": "我們無法找到任何與%email%關聯的帳戶,請於以下創立你的帳戶。",
2196            "email_no_account_button": "立即註冊"
2197        },
2198        "EMAIL LABELS": {
2199            "email_label_intro": "親愛的 (名字)",
2200            "email_label_intro_guest": "親愛的顧客",
2201            "email_label_confirm_receipt": "此電子郵件確認我們已收到以下信息。如果需要回覆,我們會盡快與你聯繫。",
2202            "email_label_sent_from": "發送來自",
2203            "email_label_generated": "這封電子郵件是通過$ website_link網站提交的。如果這是一個錯誤,請回复並告訴我們。",
2204            "email_label_contact_request": "聯絡請求\n",
2205            "email_label_point_of_contact": "您收到此電子郵件是因為您是.get_bloginfo(姓名)的聯繫人。如果您不想再收到這些電子郵件,請通知我們",
2206            "email_label_terms_of_use": "使用條款",
2207            "email_label_privacy_policy": "私隱條例"
2208        },
2209        "Form Fields": {
2210            "email_form_success": "成功",
2211            "email_form_thank_you": "(姓名)感謝您聯繫[sitename]。 <br><br>我們會儘快回复您。"
2212        }*/
2213    };
2214
2215
2216
2217    var
2218
2219  // Config = '// Config',
2220  locale = 'zh-hk',
2221  helpurl = 'https://ultrapassport.com/help/',
2222  _lwidth = '3em';
2223
2224
2225  // Globals = '// Globals',
2226  _globalnotice    = zh_hk_strings['globals']['_globalnotice'];
2227  _globalnotice2   = zh_hk_strings['globals']['_globalnotice2'];
2228  _globalnoticereg = zh_hk_strings['globals']['_globalnoticereg'];
2229  _maintenance     = zh_hk_strings['globals']['_maintenance'];
2230  _guestnotice     = zh_hk_strings['globals']['_guestnotice'];
2231
2232  // Labels = '// Labels',
2233  _fullname            = zh_hk_strings['form_labels']['_fullname'];
2234  _firstname           = zh_hk_strings['form_labels']['_firstname'];
2235  _lastname            = zh_hk_strings['form_labels']['_lastname'];
2236  _email               = zh_hk_strings['form_labels']['_email'];
2237  _emailaddy           = zh_hk_strings['form_labels']['_emailaddy'];
2238  _confirmemailaddy    = zh_hk_strings['form_labels']['_confirmemailaddy'];
2239  _birthday            = zh_hk_strings['form_labels']['_birthday'];
2240  _location            = zh_hk_strings['form_labels']['_location'];
2241  _country             = zh_hk_strings['form_labels']['_country'];
2242  _homeevent           = zh_hk_strings['form_labels']['_homeevent'];
2243  _gender              = zh_hk_strings['form_labels']['_gender'];
2244  _password            = zh_hk_strings['form_labels']['_password'];
2245  _male                = zh_hk_strings['form_labels']['_male'];
2246  _female              = zh_hk_strings['form_labels']['_female'];
2247  _pleaseselect        = zh_hk_strings['form_labels']['_pleaseselect'];
2248  _signuptitle         = zh_hk_strings['form_labels']['_signuptitle'];
2249  _enteryouremail      = zh_hk_strings['form_labels']['_enteryouremail'];
2250  _backtologin         = zh_hk_strings['form_labels']['_backtologin'];
2251  _requestnewpass      = zh_hk_strings['form_labels']['_requestnewpass'];
2252  _on                  = zh_hk_strings['form_labels']['_on'];
2253  _off                 = zh_hk_strings['form_labels']['_off'];
2254  _enrollmentavailable = zh_hk_strings['labels']['_enrollmentavailable'];
2255  _goback = '返回';
2256
2257
2258  // Text Labels = '// Text Labels',
2259  _logintext  = zh_hk_strings['labels']['_logintext'];
2260  _password   = zh_hk_strings['labels']['_password'];
2261  _welcome    = zh_hk_strings['labels']['_welcome'];
2262  _account    = zh_hk_strings['labels']['_account'];
2263  _myaccount  = zh_hk_strings['labels']['_myaccount'];
2264  _mypassport = zh_hk_strings['labels']['_mypassport'];
2265  _events     = zh_hk_strings['labels']['_events'];
2266  _points     = zh_hk_strings['labels']['_points'];
2267  _updates    = zh_hk_strings['labels']['_updates'];
2268  _signout    = zh_hk_strings['labels']['_signout'];
2269  _signin     = zh_hk_strings['labels']['_signin'];
2270  _signedin   = zh_hk_strings['labels']['_signedin'];
2271  _signuptext = zh_hk_strings['labels']['_signuptext'];
2272  _nextlevel  = zh_hk_strings['labels']['_nextlevel'];
2273  _forgot     = zh_hk_strings['labels']['_forgot'];
2274  _subscribed = zh_hk_strings['labels']['_subscribed'];
2275  _helpcenter = zh_hk_strings['labels']['_helpcenter'];
2276  _error      = zh_hk_strings['labels']['_error'];
2277  _silver     = zh_hk_strings['labels']['_silver'];
2278  _gold       = zh_hk_strings['labels']['_gold'];
2279  _platinum   = zh_hk_strings['labels']['_platinum'];
2280
2281  // Validation Messages = '// Validation Messages',
2282  _gendertext = zh_hk_strings['validation_messages']['_gendertext'];
2283  _accepttext = zh_hk_strings['validation_messages']['_accepttext'];
2284
2285
2286  // Email Verifications = '// Email Verifications',
2287  _resendverify         = zh_hk_strings['_email_verifications']['_resendverify'];
2288  _revalidate           = zh_hk_strings['_email_verifications']['_revalidate'];
2289  _sendingverification  = zh_hk_strings['_email_verifications']['_sendingverification'];
2290  _verifysent           = zh_hk_strings['_email_verifications']['_verifysent'];
2291  _emailverifydashboard = zh_hk_strings['_email_verifications']['_emailverifydashboard'];
2292  _emailverifyupdates   = zh_hk_strings['_email_verifications']['_emailverifyupdates'];
2293
2294
2295  // Edit Page = '// Edit Page',
2296  _editaccount          = zh_hk_strings['_edit_page']['_editaccount'];
2297  _nochanges            = zh_hk_strings['_edit_page']['_nochanges'];
2298  _accountupdated       = zh_hk_strings['_edit_page']['_accountupdated'];
2299  _emailupdatedstarted  = zh_hk_strings['_edit_page']['_emailupdatedstarted'];
2300  _emailupdatedverified = zh_hk_strings['_edit_page']['_emailupdatedverified'];
2301  _passwordresetsent    = zh_hk_strings['_edit_page']['_passwordresetsent'];
2302
2303
2304  // Footer Signup = '// Footer Signup',
2305  _startinput = zh_hk_strings['_footer_signup']['_startinput'];
2306  _starttext  = zh_hk_strings['_footer_signup']['_starttext'];
2307  _getstarted = zh_hk_strings['_footer_signup']['_getstarted'];
2308
2309
2310  // Signup Page = '// Signup Page',
2311  _createaccount        = zh_hk_strings['_signup_page']['_createaccount'];
2312  _almost               = zh_hk_strings['_signup_page']['_almost'];
2313  _almost2              = zh_hk_strings['_signup_page']['_almost2'];
2314  _almost3              = zh_hk_strings['_signup_page']['_almost3'];
2315  _almost4              = zh_hk_strings['_signup_page']['_almost4'];
2316  _almost5              = zh_hk_strings['_signup_page']['_almost5'];
2317  _createdsuccess       = zh_hk_strings['_signup_page']['_createdsuccess'];
2318  _createdinfo          = zh_hk_strings['_signup_page']['_createdinfo'];
2319  _accountactivated     = zh_hk_strings['_signup_page']['_accountactivated'];
2320  _accountverified      = zh_hk_strings['_signup_page']['_accountverified'];
2321  _passwordresetsuccess = zh_hk_strings['_signup_page']['_passwordresetsuccess'];
2322
2323
2324  // Updates = '// Updates',
2325  _updatestext1       = zh_hk_strings['_updates']['_updatestext1'];
2326  _updatestextPending = zh_hk_strings['_updates']['_updatestextPending'];
2327  _updatessubsrcibe   = zh_hk_strings['_updates']['_updatessubsrcibe'];
2328  _updatesunsubsrcibe = zh_hk_strings['_updates']['_updatesunsubsrcibe'];
2329
2330
2331  // Registration = '// Registration',
2332  _rbtnbuy             = zh_hk_strings['_registration']['_rbtnbuy'];
2333  _regbuy              = zh_hk_strings['_registration']['_regbuy'];
2334  _rbtnregister        = zh_hk_strings['_registration']['_rbtnregister'];
2335  _rbtnclosed          = zh_hk_strings['_registration']['_rbtnclosed'];
2336  _rbtnsoon            = zh_hk_strings['_registration']['_rbtnsoon'];
2337  _rbtnupdates         = zh_hk_strings['_registration']['_rbtnupdates'];
2338  _verifyemailregister = zh_hk_strings['_registration']['_verifyemailregister'];
2339  _regbtnhtml          = zh_hk_strings['_registration']['_regbtnhtml'];
2340  _regerror            = zh_hk_strings['_registration']['_regerror'];
2341  _regerror2           = zh_hk_strings['_registration']['_regerror2'];
2342  _regprocessing       = zh_hk_strings['_registration']['_regprocessing'];
2343  _registersuccess     = zh_hk_strings['_registration']['_registersuccess'];
2344  _regaccepted         = zh_hk_strings['_registration']['_regaccepted'];
2345  _regaccepted2        = zh_hk_strings['_registration']['_regaccepted2'];
2346  _regaccepted2_2      = zh_hk_strings['_registration']['_regaccepted2_2'];
2347  _regaccepted2_3      = zh_hk_strings['_registration']['_regaccepted2_3'];
2348  _regaccepted3        = zh_hk_strings['_registration']['_regaccepted3'];
2349  _regdone1            = zh_hk_strings['_registration']['_regdone1'];
2350  _regdone2            = zh_hk_strings['_registration']['_regdone2'];
2351  _regdone3            = zh_hk_strings['_registration']['_regdone3'];
2352  _selectregtype = '選擇登記類別';
2353  _regtype = '登記類別';
2354
2355
2356  // Registrations Confirm = '// Registrations Confirm',
2357  _regtext1      = zh_hk_strings['_registration_confirm']['_regtext1'];
2358  _regtext2      = zh_hk_strings['_registration_confirm']['_regtext2'];
2359  _regguest1     = zh_hk_strings['_registration_confirm']['_regguest1'];
2360  _regpending1   = zh_hk_strings['_registration_confirm']['_regpending1'];
2361  _regpending2   = zh_hk_strings['_registration_confirm']['_regpending2'];
2362  _updateinfobtn = zh_hk_strings['_registration_confirm']['_updateinfobtn'];
2363  _confirmreg    = zh_hk_strings['_registration_confirm']['_confirmreg'];
2364
2365
2366  // Privacy / Terms Notice = '// Privacy / Terms Notice',
2367  privacytext = zh_hk_strings['privacytext'];
2368  termsofuse  = zh_hk_strings['termsofuse'];
2369
2370  // Copyright == '// Copyright ',
2371  upptextlogo    = 'Ultra Passport<span class="tm">&trade;</span>';
2372  privacylink    = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${zh_hk_strings['_registration_confirm']['privacytext']}</a>`;
2373  termslink      = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${zh_hk_strings['_registration_confirm']['termsofuse']}</a>`;
2374  _agreesignup   = zh_hk_strings['_registration_confirm']['_agreesignup'];
2375  _agreesignup2  = zh_hk_strings['_registration_confirm']['_agreesignup2'];
2376  _agreeregister = zh_hk_strings['_registration_confirm']['_agreeregister'];
2377
2378
2379  // Passport Dashboard = '// Passport Dashboard',
2380  _action            = zh_hk_strings['_passport_labels']['_action'];
2381  _awarded           = zh_hk_strings['_passport_labels']['_awarded'];
2382  _award             = zh_hk_strings['_passport_labels']['_award'];
2383  _benefit           = zh_hk_strings['_passport_labels']['_benefit'];
2384  _howtoqualify      = zh_hk_strings['_passport_labels']['_howtoqualify'];
2385  _pointsexpire      = zh_hk_strings['_passport_labels']['_pointsexpire'];
2386  _qualifydisclaimer = zh_hk_strings['_passport_labels']['_qualifydisclaimer'];
2387  _active            = zh_hk_strings['_passport_labels']['_active'];
2388  _deleted           = zh_hk_strings['_passport_labels']['_deleted'];
2389  _btn_dashboard     = zh_hk_strings['_passport_labels']['_btn_dashboard'];
2390  _btn_benefits      = zh_hk_strings['_passport_labels']['_btn_benefits'];
2391  _btn_qualify       = zh_hk_strings['_passport_labels']['_btn_qualify'];
2392  _btn_points        = zh_hk_strings['_passport_labels']['_btn_points'];
2393
2394  leveltext = _silver;
2395  nextlevel = _gold;
2396
2397
2398    // Errors : '// Errors',
2399    var errors = zh_hk_strings['_errors'];
2400
2401    // Point Labels : '// Point Labels'
2402    var pointcodes = {
2403        manual : zh_hk_strings['_point_labels']['_points_manual'],
2404        verify : zh_hk_strings['_point_labels']['_points_verify'],
2405        unknown : 'Passport Admin Adjustment',
2406        attend_festival : zh_hk_strings['_point_labels']['_points_attend_festival'],
2407        attend_rtu : zh_hk_strings['_point_labels']['_points_attend_rtu'],
2408        attend_resistance : 'Attend a Resistance Only Event',
2409        away_bonus : zh_hk_strings['_point_labels']['_points_away_bonus'],
2410        home_bonus_1 : zh_hk_strings['_point_labels']['_points_home_bonus_1'],
2411        home_bonus_2 : zh_hk_strings['_point_labels']['_points_home_bonus_2'],
2412        home_bonus_3 : zh_hk_strings['_point_labels']['_points_home_bonus_3'],
2413    };
2414
2415}
2416
2417if ( pplang == 'zh-tw') {
2418
2419    var zh_hk_strings =
2420    {
2421        "globals": {
2422            "_globalnotice": "按此登記",
2423            "_globalnotice2": regname+"門票現正接受登記!",
2424            "_globalnoticereg": "立即查看你的電子郵件!我們已經向你發送明天公開售票的指引。",
2425            "_maintenance": "Ultra Passport目前無法使用,請稍後再試。",
2426            "_guestnotice": "你必須先登錄才可查看此頁面。"
2427        },
2428        "form_labels": {
2429            "_fullname": "全名",
2430            "_firstname": "名字",
2431            "_lastname": "姓氏",
2432            "_email": "電郵",
2433            "_emailaddy": "電郵地址",
2434            "_confirmemailaddy": "確認電郵地址",
2435            "_birthday": "生日",
2436            "_location": "地區",
2437            "_country": "國家",
2438            "_homeevent": "所在地區活動",
2439            "_gender": "性別",
2440            "_password": "密碼",
2441            "_male": "男性",
2442            "_female": "女性",
2443            "_pleaseselect": "請選擇",
2444            "_signuptitle": "註冊Ultra Passport",
2445            "_enteryouremail": "請輸入你的電郵地址",
2446            "_backtologin": "返回登入頁面",
2447            "_requestnewpass": "要求重新設置密碼",
2448            "_on": "開啟",
2449            "_off": "關閉"
2450        },
2451        "labels": {
2452            "_enrollmentavailable": "現正接受註冊",
2453            "_logintext": "登入",
2454            "_password": "密碼",
2455            "_welcome": "歡迎",
2456            "_account": "帳戶",
2457            "_myaccount": "我的帳戶",
2458            "_mypassport": "我的Passport",
2459            "_events": "活動",
2460            "_points": "積分",
2461            "_updates": "最新消息",
2462            "_signout": "登出",
2463            "_signin": "登入",
2464            "_signedin": "已登入",
2465            "_signuptext": "註冊",
2466            "_nextlevel": "下一級",
2467            "_forgot": "忘記密碼?",
2468            "_subscribed": "訂閱",
2469            "_helpcenter": "幫助中心",
2470            "_error": "錯誤",
2471            "_silver": "白銀",
2472            "_gold": "黃金",
2473            "_platinum": "白金"
2474        },
2475        "validation_messages": {
2476            "_gendertext": "你必須選擇性別。",
2477            "_accepttext": "你必須接受有關條款及細則"
2478        },
2479        "_email_verifications": {
2480            "_resendverify": "重新發送驗證電子郵件",
2481            "_revalidate": "請檢查你的電子郵箱以驗證你的新電郵地址。",
2482            "_sendingverification": "正在傳送驗證電郵",
2483            "_verifysent": "驗證電郵已經傳送",
2484            "_emailverifydashboard": "請務必認證你的電郵地址以獲取更新和註冊門票。",
2485            "_emailverifyupdates": "請務必認證你電郵地址作啟用電郵更新"
2486        },
2487        "_edit_page": {
2488            "_editaccount": "編輯帳戶",
2489            "_nochanges": "未檢測到任何更改",
2490            "_accountupdated": "帳戶已被更新",
2491            "_emailupdatedstarted": "新電郵地址必須經過驗證,請檢查您的電子郵箱以確認。",
2492            "_emailupdatedverified": "新電郵地址己被驗證",
2493            "_passwordresetsent": "重置密碼郵件已經發送"
2494        },
2495        "_footer_signup": {
2496            "_startinput": "請輸入您的電郵地址以便開始",
2497            "_starttext": "没有帳戶?登記註冊<br class=\"small-hide\">以參加活動,贏取積分及其他獎賞!",
2498            "_getstarted": "立即開始"
2499        },
2500        "_signup_page": {
2501            "_createaccount": "建立我的帳戶",
2502            "_almost": "即將完成",
2503            "_almost2": "恭喜$user_firstname成功創建您的Ultra Passport<span class=\"tm\"></span>帳戶!",
2504            "_almost3": "若要激活你的帳戶,<strong><u></u></strong>你必須透過點擊我們剛剛發送給閣下的電郵中的確認鏈接以作驗證你電郵地址之用<strong></strong>",
2505            "_almost4": "如果你没有收到任何電郵,請檢查垃圾郵件信箱<strong><u><strong><u><strong><u></u></strong></u></strong></u></strong>並把[email protected]加到您的通信錄中",
2506            "_almost5": "繼續",
2507            "_createdsuccess": "帳戶己建立",
2508            "_createdinfo": "帳戶正在創建中",
2509            "_accountactivated": "您的帳戶現已激活。",
2510            "_accountverified": "您的電子郵件地址現在已經通過驗證。",
2511            "_passwordresetsuccess": "密碼重置成功"
2512        },
2513        "_updates": {
2514            "_updatestext1": "您必須登錄才能登記接收更新。",
2515            "_updatestextPending": "請驗證您的電郵地址以接收更新",
2516            "_updatessubsrcibe": "您訂閱了以下的內容更新:",
2517            "_updatesunsubsrcibe": "您取消訂閱了以下的內容更新:"
2518        },
2519        "_registration": {
2520            "_rbtnbuy": "立即購買門票",
2521            "_regbuy": "購買門票",
2522            "_rbtnregister": "登記購買門票",
2523            "_rbtnclosed": "已關閉",
2524            "_rbtnsoon": "即將推出",
2525            "_rbtnupdates": "獲取最新通知",
2526            "_verifyemailregister": "您必須在註冊之前驗證您的電郵地址。",
2527            "_regbtnhtml": "已註冊",
2528            "_regerror": "錯誤!",
2529            "_regerror2": "請再嘗試",
2530            "_regprocessing": "您的註冊正在進行中...",
2531            "_registersuccess": "成功註冊",
2532            "_regaccepted": "您的註冊已被接受",
2533            "_regaccepted2": "購票指引已在開賣之前24-48小時發送至您的電郵。",
2534            "_regdone1": "註冊編號",
2535            "_regdone2": "您已註冊",
2536            "_regdone3": "重新發送購票指引"
2537        },
2538        "_registration_confirm": {
2539            "_regtext1": "你的個人資料是最新的嗎?",
2540            "_regtext2": "請確認你的註冊信息以",
2541            "_regguest1": "你必須先登錄才能登記活動。",
2542            "_regpending1": "即將完成",
2543            "_regpending2": "請驗證您<strong>的電郵地址</strong>以解鎖註冊權限。",
2544            "_updateinfobtn": "更新我的個人資料",
2545            "_confirmreg": "確認我的註冊",
2546            "privacytext": "隱私政策",
2547            "termsofuse": "使用條款",
2548            "_agreesignup": "我同意Ultra Passport™的隱私政策和使用條款。",
2549            "_agreesignup2": "通過註冊,你表示同意Ultra Passport™的隱私政策和使用條款。",
2550            "_agreeregister": "通過註冊,你表示同意Ultra Passport™的隱私政策和使用條款。"
2551        },
2552        "_errors": {
2553            "reset": "無效的電郵地址或指令已過期。",
2554            "create": "創建失敗,請確保已啟用Cookie。",
2555            "general": "啊噢!出了些問題。請確保你已啟用Cookie。",
2556            "password": "密碼必須至少8個字符。",
2557            "duplicateemail": "此電郵帳戶已被使用。",
2558            "matchemail": "Your email addresses don\'t match. Please confirm and reenter your email address.",
2559            "loginfail": "你輸入的用戶名和密碼與我們的記錄不符,請仔細檢查後再重試。",
2560            "token": "無效的指令,請嘗試登錄並<b>重新發送驗證電子郵件</b>",
2561            "birthday" : "You must be 18 years of age or older to enroll in Ultra Passport."
2562        },
2563        "_passport_labels": {
2564            "_action": "行動",
2565            "_awarded": "已獲獎賞",
2566            "_award": "獎賞",
2567            "_pointsexpire": "*積分將在25個月後過期",
2568            "_qualifydisclaimer": "*請注意,“全部Ultra Festival”不包æ
2568‹¬ï¼šRoad To Ultra,Ultra Beach和Resistance的活動。",
2569            "_benefit": "優待",
2570            "_sample": "已獲積分",
2571            "_active": "活動中",
2572            "_deleted": "已刪除",
2573            "_btn_dashboard": "儀表板",
2574            "_btn_benefits": "優待",
2575            "_btn_qualify": "合資格",
2576            "_btn_points": "我的積分",
2577            "_howtoqualify": "如何成為合資格會員"
2578        },
2579        "_point_labels": {
2580            "_points_manual": "Passport管理員調整",
2581            "_points_verify": "驗證電郵帳戶",
2582            "_points_attend_festival": "參加Road to Ultra的活動",
2583            "_points_away_bonus": "參加其他國家舉行的活動",
2584            "_points_home_bonus_1": "參加所在地的活動",
2585            "_points_home_bonus_2": "參加所在地的活動X2",
2586            "_points_home_bonus_3": "參加所在地的活動X3"
2587        },
2588
2589        /*"// PHP LABELS": {
2590            "$newpassword": "輸入新密碼",
2591            "$chooseanewpass": "請選擇新密碼",
2592            "$enteryouremail": "輸入你的電郵地址",
2593            "$optional": "非必要"
2594        },
2595        "// BUTTON TEXT": {
2596            "$goback": "返回",
2597            "$login": "登入",
2598            "$signup": "註冊",
2599            "$requestnewpass": "要求重新設置密碼",
2600            "$buttonverify": "認證",
2601            "$resetpassword": "重新設置密碼",
2602            "$createmyaccount": "創建我的賬戶",
2603            "$updatemyaccount": "更新我的賬戶",
2604            "$backtologin": "回到登入頁面",
2605            "$forgotpass": "忘記密碼?"
2606        },
2607        "// CONTENT": {
2608            "$abouttitle": "關於我",
2609            "$upptitle": "Passport詳情",
2610            "$updatestext": "請選擇你想要接收更新資訊的活動。",
2611            "$allupdates": "接收全部更新資訊",
2612            "$disableall": "取消所有選項",
2613            "$terms1": "我同意於",
2614            "$terms2": "通過註冊,你同意",
2615            "$privacypolicy": "隱私政策",
2616            "$termsofuse": "使用條款",
2617            "$and": "還有",
2618            "$guestnotice": "你必須先登錄才能訪問此頁面。",
2619            "$searchtext": "輸入以搜尋活動..."
2620        },
2621        "// DASHBOARD": {
2622            "$myaccount": "我的Passport",
2623            "$points": "積分",
2624            "$nextlevel": "下一級",
2625            "$name": "姓名",
2626            "$location": "地區",
2627            "$customerid": "客戶身份証明編號",
2628            "$created": "創立",
2629            "$level": "級別",
2630            "$eventsbtn": "活動",
2631            "$updatesbtn": "最後消息",
2632            "$editaccount": "編輯帳戶",
2633            "$ppdetails": "Passport詳情",
2634            "$ppid": "Passport身份証明編號",
2635            "$ppunlock": "積分用作解鎖下一個級別",
2636            "$status": "狀態"
2637        },
2638        "// URL SLUGS": {
2639            "$accountpath": "passport",
2640            "$loginpath": "登入",
2641            "$signuppath": "註冊",
2642            "$lostpath": "失去",
2643            "$resetpath": "重設",
2644            "$eventspath": "活動",
2645            "$verifypath": "認證",
2646            "$changeemail": "更改電郵地址",
2647            "$editpath": "編輯",
2648            "$updatespath": "最新消息"
2649        },
2650        "// PAGE TITLES": {
2651            "title_my_passport": "我的Passport",
2652            "title_Login": "登入",
2653            "title_ultra_passport_enrollment": "Ultra Passport登記",
2654            "title_reset_your_password": "重設您的密碼",
2655            "title_update_your_password": "更新您的密碼",
2656            "title_events": "活動",
2657            "title_verify": "驗證",
2658            "title_change_email": "更改電郵地址",
2659            "title_edit_my_account": "編輯我的帳戶",
2660            "title_manage_updates": "管理更新"
2661        },*/
2662        "_benefits": {
2663            "_silverbenefits_1": "領先大眾一步登記取得Ultra活動的早鳥票",
2664            "_goldbenefits_1": "在白銀級買家和普通大眾前獲得早期鳥票",
2665            "_goldbenefits_2": "使用單獨的線路進入音樂節",
2666            "_goldbenefits_3": "進入Ultra Passport休息室",
2667            "_goldbenefits_4": "優先客戶服務",
2668            "_platinumbenefits_1": "在黃金和白銀級護照持有者和普通大眾之前獲得入場券",
2669            "_platinumbenefits_2": "視具體情況而定,訪問特定觀看平台以選擇明星演出",
2670            "_platinumbenefits_3": "每個音樂節的特殊福利"
2671        },
2672        "_qualify": {
2673            "_qualify_1": "成功確認您的Ultra Passport登記",
2674            "_qualify_2": "參加一個完整的Ultra Festival",
2675            "_qualify_3": "參加Road To Ultra的活動",
2676            "_qualify_4": "獎勵·參加您所在地區以外的任何一個國家的活動",
2677            "_qualify_5": "獎勵·參加您所在地區內的本土活動",
2678            "_qualify_6": "獎勵·連續兩年參加您所在地區的本土活動",
2679            "_qualify_7": "獎勵·連續三年參加您所在地區的本土活動(以及之後的任何連續年份)"
2680        },
2681        /*"Footer": {
2682            "email_footer_1": "此電子郵件是由ULTRA PASSPORT發出的",
2683            "email_footer_2": "如果您認為這是一個錯誤,請回复並讓我們知道。\n",
2684            "email_footer_3": "由Ultra Passport授權"
2685        },
2686        "Account Confirmation": {
2687            "email_account_confirmation_subject": "Ultra Passport帳戶確認",
2688            "email_account_confirmation_message": "請確認您的Ultra Passport的電郵地址",
2689            "email_account_confirmation_button": "激活帳戶"
2690        },
2691        "Account Verified": {
2692            "email_account_verified_subject": "帳戶已被驗證",
2693            "email_account_verified_message": "您已成功確認您的Ultra Passport電郵地址。 您現在可以登記活動,賺取積分,並提高您的Ultra Passport級別。",
2694            "email_account_verified_button": "查看活動"
2695        },
2696        "New Email Verification": {
2697            "email_new_email_verification_subject": "請驗證您的新電郵地址",
2698            "email_new_email_verification_message": "請點擊下面的按鈕以確認您的新郵件:",
2699            "email_new_email_verification_button": "驗證電郵地址"
2700        },
2701        "New Email Verified": {
2702            "email_new_email_verified_subject": "您的新電郵地址己被驗證",
2703            "email_new_email_verified_message": "您已成功確認您新的Ultra Passport帳戶電郵地址。",
2704            "email_new_email_verified_button": "查看活動"
2705        },
2706        "Forgot Password": {
2707            "email_forgot_password_subject": "重設您的Ultra Passport密碼",
2708            "email_forgot_password_message": "點擊下面的按鈕以重設密碼:",
2709            "email_forgot_password_button": "重設密碼"
2710        },
2711        "Password Reset": {
2712            "email_password_reset_subject": "你的密碼已重設",
2713            "email_password_reset_message": "這封電郵是通知您,您的密碼己被重設",
2714            "email_password_reset_button": "我的帳戶"
2715        },
2716        "No Account": {
2717            "email_no_account_subject": "此帳戶不存在",
2718            "email_no_account_message": "我們無法找到任何與%email%關聯的帳戶,請於以下創立你的帳戶。",
2719            "email_no_account_button": "立即註冊"
2720        },
2721        "EMAIL LABELS": {
2722            "email_label_intro": "親愛的 (名字)",
2723            "email_label_intro_guest": "親愛的顧客",
2724            "email_label_confirm_receipt": "此電子郵件確認我們已收到以下信息。如果需要回覆,我們會盡快與你聯繫。",
2725            "email_label_sent_from": "發送來自",
2726            "email_label_generated": "這封電子郵件是通過$ website_link網站提交的。如果這是一個錯誤,請回复並告訴我們。",
2727            "email_label_contact_request": "聯絡請求\n",
2728            "email_label_point_of_contact": "您收到此電子郵件是因為您是.get_bloginfo(姓名)的聯繫人。如果您不想再收到這些電子郵件,請通知我們",
2729            "email_label_terms_of_use": "使用條款",
2730            "email_label_privacy_policy": "私隱條例"
2731        },
2732        "Form Fields": {
2733            "email_form_success": "成功",
2734            "email_form_thank_you": "(姓名)感謝您聯繫[sitename]。 <br><br>我們會儘快回复您。"
2735        }*/
2736    };
2737
2738
2739
2740    var
2741
2742  // Config = '// Config',
2743  locale = 'zh-tw',
2744  helpurl = 'https://ultrapassport.com/help/',
2745  _lwidth = '3em';
2746
2747
2748  // Globals = '// Globals',
2749  _globalnotice    = zh_hk_strings['globals']['_globalnotice'];
2750  _globalnotice2   = zh_hk_strings['globals']['_globalnotice2'];
2751  _globalnoticereg = zh_hk_strings['globals']['_globalnoticereg'];
2752  _maintenance     = zh_hk_strings['globals']['_maintenance'];
2753  _guestnotice     = zh_hk_strings['globals']['_guestnotice'];
2754
2755  // Labels = '// Labels',
2756  _fullname            = zh_hk_strings['form_labels']['_fullname'];
2757  _firstname           = zh_hk_strings['form_labels']['_firstname'];
2758  _lastname            = zh_hk_strings['form_labels']['_lastname'];
2759  _email               = zh_hk_strings['form_labels']['_email'];
2760  _emailaddy           = zh_hk_strings['form_labels']['_emailaddy'];
2761  _confirmemailaddy    = zh_hk_strings['form_labels']['_confirmemailaddy'];
2762  _birthday            = zh_hk_strings['form_labels']['_birthday'];
2763  _location            = zh_hk_strings['form_labels']['_location'];
2764  _country             = zh_hk_strings['form_labels']['_country'];
2765  _homeevent           = zh_hk_strings['form_labels']['_homeevent'];
2766  _gender              = zh_hk_strings['form_labels']['_gender'];
2767  _password            = zh_hk_strings['form_labels']['_password'];
2768  _male                = zh_hk_strings['form_labels']['_male'];
2769  _female              = zh_hk_strings['form_labels']['_female'];
2770  _pleaseselect        = zh_hk_strings['form_labels']['_pleaseselect'];
2771  _signuptitle         = zh_hk_strings['form_labels']['_signuptitle'];
2772  _enteryouremail      = zh_hk_strings['form_labels']['_enteryouremail'];
2773  _backtologin         = zh_hk_strings['form_labels']['_backtologin'];
2774  _requestnewpass      = zh_hk_strings['form_labels']['_requestnewpass'];
2775  _on                  = zh_hk_strings['form_labels']['_on'];
2776  _off                 = zh_hk_strings['form_labels']['_off'];
2777  _enrollmentavailable = zh_hk_strings['labels']['_enrollmentavailable'];
2778  _goback = '返回';
2779
2780
2781  // Text Labels = '// Text Labels',
2782  _logintext  = zh_hk_strings['labels']['_logintext'];
2783  _password   = zh_hk_strings['labels']['_password'];
2784  _welcome    = zh_hk_strings['labels']['_welcome'];
2785  _account    = zh_hk_strings['labels']['_account'];
2786  _myaccount  = zh_hk_strings['labels']['_myaccount'];
2787  _mypassport = zh_hk_strings['labels']['_mypassport'];
2788  _events     = zh_hk_strings['labels']['_events'];
2789  _points     = zh_hk_strings['labels']['_points'];
2790  _updates    = zh_hk_strings['labels']['_updates'];
2791  _signout    = zh_hk_strings['labels']['_signout'];
2792  _signin     = zh_hk_strings['labels']['_signin'];
2793  _signedin   = zh_hk_strings['labels']['_signedin'];
2794  _signuptext = zh_hk_strings['labels']['_signuptext'];
2795  _nextlevel  = zh_hk_strings['labels']['_nextlevel'];
2796  _forgot     = zh_hk_strings['labels']['_forgot'];
2797  _subscribed = zh_hk_strings['labels']['_subscribed'];
2798  _helpcenter = zh_hk_strings['labels']['_helpcenter'];
2799  _error      = zh_hk_strings['labels']['_error'];
2800  _silver     = zh_hk_strings['labels']['_silver'];
2801  _gold       = zh_hk_strings['labels']['_gold'];
2802  _platinum   = zh_hk_strings['labels']['_platinum'];
2803
2804  // Validation Messages = '// Validation Messages',
2805  _gendertext = zh_hk_strings['validation_messages']['_gendertext'];
2806  _accepttext = zh_hk_strings['validation_messages']['_accepttext'];
2807
2808
2809  // Email Verifications = '// Email Verifications',
2810  _resendverify         = zh_hk_strings['_email_verifications']['_resendverify'];
2811  _revalidate           = zh_hk_strings['_email_verifications']['_revalidate'];
2812  _sendingverification  = zh_hk_strings['_email_verifications']['_sendingverification'];
2813  _verifysent           = zh_hk_strings['_email_verifications']['_verifysent'];
2814  _emailverifydashboard = zh_hk_strings['_email_verifications']['_emailverifydashboard'];
2815  _emailverifyupdates   = zh_hk_strings['_email_verifications']['_emailverifyupdates'];
2816
2817
2818  // Edit Page = '// Edit Page',
2819  _editaccount          = zh_hk_strings['_edit_page']['_editaccount'];
2820  _nochanges            = zh_hk_strings['_edit_page']['_nochanges'];
2821  _accountupdated       = zh_hk_strings['_edit_page']['_accountupdated'];
2822  _emailupdatedstarted  = zh_hk_strings['_edit_page']['_emailupdatedstarted'];
2823  _emailupdatedverified = zh_hk_strings['_edit_page']['_emailupdatedverified'];
2824  _passwordresetsent    = zh_hk_strings['_edit_page']['_passwordresetsent'];
2825
2826
2827  // Footer Signup = '// Footer Signup',
2828  _startinput = zh_hk_strings['_footer_signup']['_startinput'];
2829  _starttext  = zh_hk_strings['_footer_signup']['_starttext'];
2830  _getstarted = zh_hk_strings['_footer_signup']['_getstarted'];
2831
2832
2833  // Signup Page = '// Signup Page',
2834  _createaccount        = zh_hk_strings['_signup_page']['_createaccount'];
2835  _almost               = zh_hk_strings['_signup_page']['_almost'];
2836  _almost2              = zh_hk_strings['_signup_page']['_almost2'];
2837  _almost3              = zh_hk_strings['_signup_page']['_almost3'];
2838  _almost4              = zh_hk_strings['_signup_page']['_almost4'];
2839  _almost5              = zh_hk_strings['_signup_page']['_almost5'];
2840  _createdsuccess       = zh_hk_strings['_signup_page']['_createdsuccess'];
2841  _createdinfo          = zh_hk_strings['_signup_page']['_createdinfo'];
2842  _accountactivated     = zh_hk_strings['_signup_page']['_accountactivated'];
2843  _accountverified      = zh_hk_strings['_signup_page']['_accountverified'];
2844  _passwordresetsuccess = zh_hk_strings['_signup_page']['_passwordresetsuccess'];
2845
2846
2847  // Updates = '// Updates',
2848  _updatestext1       = zh_hk_strings['_updates']['_updatestext1'];
2849  _updatestextPending = zh_hk_strings['_updates']['_updatestextPending'];
2850  _updatessubsrcibe   = zh_hk_strings['_updates']['_updatessubsrcibe'];
2851  _updatesunsubsrcibe = zh_hk_strings['_updates']['_updatesunsubsrcibe'];
2852
2853
2854  // Registration = '// Registration',
2855  _rbtnbuy             = zh_hk_strings['_registration']['_rbtnbuy'];
2856  _regbuy              = zh_hk_strings['_registration']['_regbuy'];
2857  _rbtnregister        = zh_hk_strings['_registration']['_rbtnregister'];
2858  _rbtnclosed          = zh_hk_strings['_registration']['_rbtnclosed'];
2859  _rbtnsoon            = zh_hk_strings['_registration']['_rbtnsoon'];
2860  _rbtnupdates         = zh_hk_strings['_registration']['_rbtnupdates'];
2861  _verifyemailregister = zh_hk_strings['_registration']['_verifyemailregister'];
2862  _regbtnhtml          = zh_hk_strings['_registration']['_regbtnhtml'];
2863  _regerror            = zh_hk_strings['_registration']['_regerror'];
2864  _regerror2           = zh_hk_strings['_registration']['_regerror2'];
2865  _regprocessing       = zh_hk_strings['_registration']['_regprocessing'];
2866  _registersuccess     = zh_hk_strings['_registration']['_registersuccess'];
2867  _regaccepted         = zh_hk_strings['_registration']['_regaccepted'];
2868  _regaccepted2        = zh_hk_strings['_registration']['_regaccepted2'];
2869  _regaccepted2_2      = zh_hk_strings['_registration']['_regaccepted2_2'];
2870  _regaccepted2_3      = zh_hk_strings['_registration']['_regaccepted2_3'];
2871  _regaccepted3        = zh_hk_strings['_registration']['_regaccepted3'];
2872  _regdone1            = zh_hk_strings['_registration']['_regdone1'];
2873  _regdone2            = zh_hk_strings['_registration']['_regdone2'];
2874  _regdone3            = zh_hk_strings['_registration']['_regdone3'];
2875  _selectregtype = '選擇登記類別',
2876  _regtype = '登記類別',
2877
2878
2879  // Registrations Confirm = '// Registrations Confirm',
2880  _regtext1      = zh_hk_strings['_registration_confirm']['_regtext1'];
2881  _regtext2      = zh_hk_strings['_registration_confirm']['_regtext2'];
2882  _regguest1     = zh_hk_strings['_registration_confirm']['_regguest1'];
2883  _regpending1   = zh_hk_strings['_registration_confirm']['_regpending1'];
2884  _regpending2   = zh_hk_strings['_registration_confirm']['_regpending2'];
2885  _updateinfobtn = zh_hk_strings['_registration_confirm']['_updateinfobtn'];
2886  _confirmreg    = zh_hk_strings['_registration_confirm']['_confirmreg'];
2887
2888
2889  // Privacy / Terms Notice = '// Privacy / Terms Notice',
2890  privacytext = zh_hk_strings['privacytext'];
2891  termsofuse  = zh_hk_strings['termsofuse'];
2892
2893  // Copyright == '// Copyright ',
2894  upptextlogo    = 'Ultra Passport<span class="tm">&trade;</span>';
2895  privacylink    = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${zh_hk_strings['_registration_confirm']['privacytext']}</a>`;
2896  termslink      = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${zh_hk_strings['_registration_confirm']['termsofuse']}</a>`;
2897  _agreesignup   = zh_hk_strings['_registration_confirm']['_agreesignup'];
2898  _agreesignup2  = zh_hk_strings['_registration_confirm']['_agreesignup2'];
2899  _agreeregister = zh_hk_strings['_registration_confirm']['_agreeregister'];
2900
2901
2902  // Passport Dashboard = '// Passport Dashboard',
2903  _action            = zh_hk_strings['_passport_labels']['_action'];
2904  _awarded           = zh_hk_strings['_passport_labels']['_awarded'];
2905  _award             = zh_hk_strings['_passport_labels']['_award'];
2906  _benefit           = zh_hk_strings['_passport_labels']['_benefit'];
2907  _howtoqualify      = zh_hk_strings['_passport_labels']['_howtoqualify'];
2908  _pointsexpire      = zh_hk_strings['_passport_labels']['_pointsexpire'];
2909  _qualifydisclaimer = zh_hk_strings['_passport_labels']['_qualifydisclaimer'];
2910  _active            = zh_hk_strings['_passport_labels']['_active'];
2911  _deleted           = zh_hk_strings['_passport_labels']['_deleted'];
2912  _btn_dashboard     = zh_hk_strings['_passport_labels']['_btn_dashboard'];
2913  _btn_benefits      = zh_hk_strings['_passport_labels']['_btn_benefits'];
2914  _btn_qualify       = zh_hk_strings['_passport_labels']['_btn_qualify'];
2915  _btn_points        = zh_hk_strings['_passport_labels']['_btn_points'];
2916
2917  leveltext = _silver;
2918  nextlevel = _gold;
2919
2920
2921    // Errors : '// Errors',
2922    var errors = zh_hk_strings['_errors'];
2923
2924    // Point Labels : '// Point Labels'
2925    var pointcodes = {
2926        manual : zh_hk_strings['_point_labels']['_points_manual'],
2927        verify : zh_hk_strings['_point_labels']['_points_verify'],
2928        unknown : 'Passport Admin Adjustment',
2929        attend_festival : zh_hk_strings['_point_labels']['_points_attend_festival'],
2930        attend_rtu : zh_hk_strings['_point_labels']['_points_attend_rtu'],
2931        attend_resistance : 'Attend a Resistance Only Event',
2932        away_bonus : zh_hk_strings['_point_labels']['_points_away_bonus'],
2933        home_bonus_1 : zh_hk_strings['_point_labels']['_points_home_bonus_1'],
2934        home_bonus_2 : zh_hk_strings['_point_labels']['_points_home_bonus_2'],
2935        home_bonus_3 : zh_hk_strings['_point_labels']['_points_home_bonus_3'],
2936    };
2937
2938}
2939
2940if ( pplang == 'ko') {
2941
2942    var ko_strings =
2943    {
2944        "globals": {
2945            "_globalnotice": "여기에서 등록하세요",
2946            "_globalnotice2": regname+" 티켓 등록을 이제 시작합니다!",
2947            "_globalnoticereg": "이메일을 확인해보세요! 내일 티켓 판매에 대한 구매 안내문을 발송했습니다.",
2948            "_maintenance": "Ultra Passport를 현재 사용할 수 없습니다. 잠시 후 다시 확인하십시오.",
2949            "_guestnotice": "이 페이지를 보려면 로그인 해야 합니다."
2950        },
2951        "form_labels": {
2952            "_fullname": "성함",
2953            "_firstname": "이름",
2954            "_lastname": "성",
2955            "_email": "이메일",
2956            "_emailaddy": "메일 주소",
2957            "_confirmemailaddy": "메일 주소 확인",
2958            "_birthday": "생일",
2959            "_location": "위치",
2960            "_country": "국가",
2961            "_homeevent": "홈 이벤트",
2962            "_gender": "성별",
2963            "_password": "비밀번호",
2964            "_male": "남성",
2965            "_female": "여성",
2966            "_pleaseselect": "선택하세요",
2967            "_signuptitle": "Ultra Passport등록",
2968            "_enteryouremail": "메일 주소를 입력해주세요.",
2969            "_backtologin": "로그인으로 돌아가기",
2970            "_requestnewpass": "새로운 비밀번호를 요청합니다.",
2971            "_on": "온",
2972            "_off": "오프",
2973            "_goback" : "뒤로 가기"
2974        },
2975        "labels": {
2976            "_enrollmentavailable": "지금 등록 가능합니다.",
2977            "_logintext": "로그인",
2978            "_password": "비밀번호",
2979            "_welcome": "환영합니다.",
2980            "_account": "계정",
2981            "_myaccount": "나의 계정",
2982            "_events": "이벤트",
2983            "_points": "포인트",
2984            "_updates": "업데이트",
2985            "_signout": "로그아웃",
2986            "_signin": "로그인",
2987            "_signedin": "로그인 됨",
2988            "_signuptext": "가입",
2989            "_nextlevel": "다음 단계",
2990            "_forgot": "비밀번호 찾기",
2991            "_subscribed": "가입 완료",
2992            "_helpcenter": "도움말",
2993            "_error": "오류",
2994            "_silver": "실버",
2995            "_gold": "골드",
2996            "_platinum": "플레티넘"
2997        },
2998        "validation_messages": {
2999            "_gendertext": "성별을 선택하세요.",
3000            "_accepttext": "위의 항목에 동의하세요."
3001        },
3002        "_email_verifications": {
3003            "_resendverify": "확인 메일 다시 보내기",
3004            "_revalidate": "새로운 메일 주소를 승인하려면 이메일을 확인하세요.",
3005            "_sendingverification": "확인 메일 발송 중...",
3006            "_verifysent": "확인 메일 발송 완료",
3007            "_emailverifydashboard": "업데이트 및 티켓 등록 사항을 확인하려면 반드시 메일을 인증하세요.",
3008            "_emailverifyupdates": "이메일 업데이트 사항을 활성화하려면 메일을 인증하세요."
3009        },
3010        "_edit_page": {
3011            "_editaccount": "계정 수정",
3012            "_nochanges": "변경 사항이 적용되지 않았습니다.",
3013            "_accountupdated": "계정이 업데이트 되었습니다.",
3014            "_emailupdatedstarted": "새로운 메일 주소를 인증해야 합니다. 승인하려면 이메일을 확인하세요.",
3015            "_emailupdatedverified": "새로운 메일 주소가 인증되었습니다.",
3016            "_passwordresetsent": "비밀번호 재설정 메일이 발송되었습니다."
3017        },
3018        "_footer_signup": {
3019            "_startinput": "시작하려면 메일 주소를 입력하세요.",
3020            "_starttext": "계정이 없으십니까?  <br class=\"small-hide\">에 등록해서 이벤트 소식을 받고 포인트를 확득하려면 가입하십시오.",
3021            "_getstarted": "시작하기"
3022        },
3023        "_signup_page": {
3024            "_createaccount": "나의 계정 생성하기",
3025            "_almost": "완료되는 중...",
3026            "_almost2": "$user_firstname 축하합니다! 당신의 Ultra Passport<span class=\"tm\">™</span> 계정이 생성되었습니다.",
3027            "_almost3": "계정을 활성화하려면 방금 <strong>$user_email</strong>
3027로 발송된 확인 링크를 클릭하여 <strong><u>당신의 메일 주소 반드시 인증하세요.</u></strong>",
3028            "_almost4": "메일 <strong><u>을 받지 못한 경우 스팸 폴더</u></strong>를 확인하고<strong><u>[email protected]</u></strong>을<strong><u>주소록에 추가하십시오.</u></strong>",
3029            "_almost5": "계속",
3030            "_createdsuccess": "계정이 생성되었습니다.",
3031            "_createdinfo": "계정이 생성되는 중입니다.",
3032            "_accountactivated": "계정이 활성화되었습니다.",
3033            "_accountverified": "메일 주소가 인증되지 않았습니다.",
3034            "_passwordresetsuccess": "비밀번호 재설정이 완료되었습니다."
3035        },
3036        "_updates": {
3037            "_updatestext1": "업데이트를 등록하려면 로그인해야 합니다.",
3038            "_updatestextPending": "업데이트를 받으려면 이메일 주소를 인증해야 합니다.",
3039            "_updatessubsrcibe": "다음 항목에 대한 업데이트 수신을 허용하셨습니다.",
3040            "_updatesunsubsrcibe": "다음 항목의 업데이트 사항에 대한 수신을 허용하지 않았습니다."
3041        },
3042        "_registration": {
3043            "_rbtnbuy": "지금 티켓 구매하기",
3044            "_regbuy": "티켓 구매",
3045            "_rbtnregister": "티켓  등록",
3046            "_rbtnclosed": "만료",
3047            "_rbtnsoon": "커밍 순",
3048            "_rbtnupdates": "업데이트 하기",
3049            "_verifyemailregister": "등록하기 전에 메일 주소를 인증해야 합니다.",
3050            "_regbtnhtml": "등록되었습니다.",
3051            "_regerror": "오류!",
3052            "_regerror2": "다시 시도해주세요",
3053            "_regprocessing": "등록이 처리 중입니다...",
3054            "_registersuccess": "등록 성공",
3055            "_regaccepted": "등록이 완료되었습니다.",
3056            "_regaccepted2": "티켓 구매 안내는 판매를 시작하기 24-48시간 전에 이메일로 발송됩니다.",
3057            "_regdone1": "등록 코드",
3058            "_regdone2": "기재된 내용을 확인하세요.",
3059            "_regdone3": "구매 안내문 다시 보내기",
3060            "_selectregtype": "등록 유형 선택",
3061            "_regtype": "등록 유형",
3062        },
3063        "_registration_confirm": {
3064            "_regtext1": "당신이 기입한 정보가 업데이트 되었습니까?",
3065            "_regtext2": "등록 정보를 확인하세요.",
3066            "_regguest1": "이벤트 등록을 하려면 로그인해야 합니다.",
3067            "_regpending1": "거의 다 왔습니다!",
3068            "_regpending2": "등록 접근 권한를 해제하려면 <strong> 메일 주소 </strong>를 인증하세요.",
3069            "_updateinfobtn": "나의 정보 업데이트",
3070            "_confirmreg": "나의 등록 확인",
3071            "privacytext": "개인 정보 보호 정책",
3072            "termsofuse": "이용약관",
3073            "_agreesignup": "Ultra Passport개인 정보 보호 정책 및 사용 약관에 동의합니다.",
3074            "_agreesignup2": "등록하면 Ultra Passport 개인 정보 보호 정책 및 사용 약관에 동의하게 됩니다.",
3075            "_agreeregister": "등록하면 Ultra Passport 개인 정보 보호 정책 및 사용 약관에 동의하게 됩니다."
3076        },
3077        "_errors": {
3078            "reset": "잘못된 메일 주소 또는 만료된 토큰입니다.",
3079            "create": "작성에 실패하였습니다. 쿠키를 사용 가능으로 설정했는지 확인하세요.",
3080            "general": "이런! 뭔가 잘못됐어요. 쿠키가 활성화되어 있는지 확인하세요.",
3081            "password": "비밀번호는 8자 이상이어야 합니다.",
3082            "duplicateemail": "이메일 계정이 이미 사용 중입니다.",
3083            "loginfail": "사용자 이름과 비밀번호가 일치하지 않습니다. 확인하고 다시 시도해주세요.",
3084            "token": "토큰이 잘못되었습니다. 로그인 하고 <b>인증메일을 전송하세요. </b>"
3085        },
3086        "_passport_labels": {
3087            "_action": "액션",
3088            "_awarded": "어워드",
3089            "_award": "어워드",
3090            "_pointsexpire": "*25개월 후 포인트가 만료됩니다.",
3091            "_qualifydisclaimer": "*Ultra Festival에는 Road To Ultra,Ultra Beach,Resistance가 포함되지 않습니다.",
3092            "_benefit": "혜택",
3093            "_sample": "포인트 어워드",
3094            "_active": "활성화",
3095            "_deleted": "삭제되었습니다.",
3096            "_btn_dashboard": "대시보드",
3097            "_btn_benefits": "혜택",
3098            "_btn_qualify": "자격",
3099            "_btn_points": "나의 포인트",
3100            "_howtoqualify": "자격 부여 방법"
3101        },
3102        "_point_labels": {
3103            "_points_manual": "패스포트 관리 설정",
3104            "_points_verify": "계정 메일 주소를 인증해주세요.",
3105            "_points_unknown" : "패스포트 관리 설정",
3106            "_points_attend_festival": "로드 투 Ultra Festival 이벤트에 참가하기",
3107            "_points_attend_rtu" : "Road to Ultra 이벤트 참가하기",
3108            "_points_attend_resistance" : "Resistance 이벤트 참가하기",
3109            "_points_away_bonus": "다른 국가의 이벤트 참가하기",
3110            "_points_home_bonus_1": "홈 이벤트 참가하기",
3111            "_points_home_bonus_2": "홈 이벤트 x2 참가하기",
3112            "_points_home_bonus_3": "홈 이벤트 x3 참가하기"
3113        },
3114
3115        /*"// PHP LABELS": {
3116            "$newpassword": "새로운 비밀번호를 입력해주세요.",
3117            "$chooseanewpass": "새로운 비밀번호를 선택해주세요.",
3118            "$enteryouremail": "메일 주소를 입력해주세요.",
3119            "$optional": "선택"
3120        },
3121        "// BUTTON TEXT": {
3122            "$goback": "뒤로 가기",
3123            "$login": "로그인",
3124            "$signup": "등록",
3125            "$requestnewpass": "새로운 비밀번호를 요청합니다.",
3126            "$buttonverify": "인증",
3127            "$resetpassword": "비밀번호 재설정",
3128            "$createmyaccount": "나의 계정 생성하기",
3129            "$updatemyaccount": "나의 계정 업데이트",
3130            "$backtologin": "로그인으로 돌아가기",
3131            "$forgotpass": "비밀번호 찾기"
3132        },
3133        "// CONTENT": {
3134            "$abouttitle": "내 정보",
3135            "$upptitle": "패스포트 정보",
3136            "$updatestext": "업데이트된 소식을 받고 싶은 이벤트를 선택하세요.",
3137            "$allupdates": "모든 업데이트 받기",
3138            "$disableall": "모두 사용 안함",
3139            "$terms1": "동의합니다.",
3140            "$terms2": "가입하면 동의하게 됩니다.",
3141            "$privacypolicy": "개인 정보 보호 정책",
3142            "$termsofuse": "이용 약관",
3143            "$and": "그리고",
3144            "$guestnotice": "이 페이지를 보려면 로그인해야 합니다.",
3145            "$searchtext": "이벤트를 검색하려면 입력해주세요..."
3146        },
3147        "// DASHBOARD": {
3148            "$myaccount": "나의 패스포트",
3149            "$points": "포인트",
3150            "$nextlevel": "다음 단계",
3151            "$name": "성함",
3152            "$location": "위치",
3153            "$customerid": "고객 ID",
3154            "$created": "생성되었습니다.",
3155            "$level": "레벨",
3156            "$eventsbtn": "이벤트",
3157            "$updatesbtn": "업데이트",
3158            "$editaccount": "계정 수정",
3159            "$ppdetails": "패스포트 정보",
3160            "$ppid": "패스포트 ID",
3161            "$ppunlock": "다음 레벨까지 필요한 포인트",
3162            "$status": "상태"
3163        },
3164        "// URL SLUGS": {
3165            "$accountpath": "패스포트",
3166            "$loginpath": "로그인",
3167            "$signuppath": "가입",
3168            "$lostpath": "잃다",
3169            "$resetpath": "재설정",
3170            "$eventspath": "이벤트",
3171            "$verifypath": "인증",
3172            "$changeemail": "메일 주소 변경하기",
3173            "$editpath": "수정",
3174            "$updatespath": "업데이트"
3175        },
3176        "// PAGE TITLES": {
3177            "title_my_passport": "나의 패스포트",
3178            "title_Login": "로그인",
3179            "title_ultra_passport_enrollment": "Ultra Passport등록",
3180            "title_reset_your_password": "비밀번호 재설정",
3181            "title_update_your_password": "비밀번호 업데이트",
3182            "title_events": "이벤트",
3183            "title_verify": "인증",
3184            "title_change_email": "메일 주소 변경하기",
3185            "title_edit_my_account": "내 계정 수정하기",
3186            "title_manage_updates": "업데이트 관리하기"
3187        },*/
3188        "_benefits": {
3189            "_silverbenefits_1": "가장 먼저 Ultra얼리버드 티켓 등록하기",
3190            "_goldbenefits_1": "실버 레벨보다 먼저 얼리버드 티켓 등록하기",
3191            "_goldbenefits_2": "특별한 페스티벌 입장 게이트 이용하기",
3192            "_goldbenefits_3": "Ultra Passport라운지로 접속하기",
3193            "_goldbenefits_4": "우선 순위 고객 서비스",
3194            "_platinumbenefits_1": "골드&실버 레벨 패스포트 소유자와 일반인 보다 먼저 얼리버드 티켓 구매하기",
3195            "_platinumbenefits_2": "아티스트 공연을 특별한 장소에서 관람할 수 있는 권한 제공",
3196            "_platinumbenefits_3": "각 페스티벌의 특별한 혜택"
3197        },
3198        "_qualify": {
3199            "_qualify_1": "Ultra Passport 등록이 성공적으로 완료되었습니다.",
3200            "_qualify_2": "전체 Ultra Festival 참가하기",
3201            "_qualify_3": "Road To Ultra 이벤트 참가하기",
3202            "_qualify_4": "보너스. 해외 울트라 페스티벌 방문",
3203            "_qualify_5": "보너스 · 홈 이벤트 방문",
3204            "_qualify_6": "보너스. 홈 이벤트 2회 연속 방문",
3205            "_qualify_7": "보너스. 홈 이벤트 3회 연속 방문"
3206        },
3207        /*"Footer": {
3208            "email_footer_1": "이 이메일은 ULTRA PASSPORT로부터 발송되었습니다.",
3209            "email_footer_2": "이 문제에 오류가 있으면, 저희에게 알려주세요.",
3210            "email_footer_3": "Ultra Passport 주관"
3211        },
3212        "Account Confirmation": {
3213            "email_account_confirmation_subject": "Ultra Passport계정 확인",
3214            "email_account_confirmation_message": "Ultra Passport계정의 메일 주소를 확인하세요.",
3215            "email_account_confirmation_button": "계정 활성화"
3216        },
3217        "Account Verified": {
3218            "email_account_verified_subject": "계정이 승인되었습니다.",
3219            "email_account_verified_message": "Ultra Passport계정의 메일 주소를 확인했습니다. 이제 이벤트에 등록하고 포인트를 획득하여 Ultra Passport 레벨을 올려보세요.",
3220            "email_account_verified_button": "이벤트 보기"
3221        },
3222        "New Email Verification": {
3223            "email_new_email_verification_subject": "새로운 메일 주소를 확인하세요.",
3224            "email_new_email_verification_message": "새로운 메일을 확인하려면 아래 버튼을 클릭하세요:",
3225            "email_new_email_verification_button": "메일 주소를 인증하세요."
3226        },
3227        "New Email Verified": {
3228            "email_new_email_verified_subject": "새로운 메일 주소가 인증되었습니다.",
3229            "email_new_email_verified_message": "Ultra Passport계정의 새로운 메일 주소가 확인되었습니다.",
3230            "email_new_email_verified_button": "이벤트 보기"
3231        },
3232        "Forgot Password": {
3233            "email_forgot_password_subject": "Ultra Passport 비밀번호를 재설정해주세요.",
3234            "email_forgot_password_message": "아래 버튼을 클릭해 비밀번호를 재설정해주세요.",
3235            "email_forgot_password_button": "비밀번호 재설정"
3236        },
3237        "Password Reset": {
3238            "email_password_reset_subject": "비밀번호가 재설정 되었습니다.",
3239            "email_password_reset_message": "비밀번호가 재설정되었음을 알려드립니다.",
3240            "email_password_reset_button": "나의 계정"
3241        },
3242        "No Account": {
3243            "email_no_account_subject": "이 계정은 존재하지 않습니다.",
3244            "email_no_account_message": "%email%과 관련된 계정을 찾을 수 없습니다. 아래에서 등록하여 계정을 만드세요.",
3245            "email_no_account_button": "지금 등록"
3246        },
3247        "EMAIL LABELS": {
3248            "email_label_intro": "(성함) 님",
3249            "email_label_intro_guest": "고객님께",
3250            "email_label_confirm_receipt": "이 메일 통해 다음과 같은 정보가 전달되었음을 확인하였습니다. 응답이 필요한 경우 가능한 한 빨리 연락드리겠습니다.",
3251            "email_label_sent_from": "보낸 사람",
3252            "email_label_generated": "이 이메일은 .$website_link. 사이트로부터 발송되었습니다. 만약 잘못 발송되었다면 우리에게 알려주세요.",
3253            "email_label_contact_request": "연락처 요청",
3254            "email_label_point_of_contact": "get_bloginfo(name). 의 연락처로 이 이메일을 수신했습니다. 이 이메일을 더 이상 받지 않으려면 알려주세요.",
3255            "email_label_terms_of_use": "이용 약관",
3256            "email_label_privacy_policy": "개인 정보 보호 정책"
3257        },
3258        "Form Fields": {
3259            "email_form_success": "성공",
3260            "email_form_thank_you": "(이름) [sitename]에 문의해 주셔서 감사합니다. <br><br> 가능한 한 빨리 연락드리겠습니다."
3261        }*/
3262    };
3263
3264
3265    var
3266
3267    // Config = '// Config',
3268    locale = 'ko',
3269    helpurl = 'https://ultrapassport.com/help/',
3270    _lwidth = '3em';
3271
3272
3273    // Globals = '// Globals',
3274    _globalnotice    = ko_strings['globals']['_globalnotice'];
3275    _globalnotice2   = ko_strings['globals']['_globalnotice2'];
3276    _globalnoticereg = ko_strings['globals']['_globalnoticereg'];
3277    _maintenance     = ko_strings['globals']['_maintenance'];
3278    _guestnotice     = ko_strings['globals']['_guestnotice'];
3279
3280    // Labels = '// Labels',
3281    _fullname            = ko_strings['form_labels']['_fullname'];
3282    _firstname           = ko_strings['form_labels']['_firstname'];
3283    _lastname            = ko_strings['form_labels']['_lastname'];
3284    _email               = ko_strings['form_labels']['_email'];
3285    _emailaddy           = ko_strings['form_labels']['_emailaddy'];
3286    _confirmemailaddy    = ko_strings['form_labels']['_confirmemailaddy'];
3287    _birthday            = ko_strings['form_labels']['_birthday'];
3288    _location            = ko_strings['form_labels']['_location'];
3289    _country             = ko_strings['form_labels']['_country'];
3290    _homeevent           = ko_strings['form_labels']['_homeevent'];
3291    _gender              = ko_strings['form_labels']['_gender'];
3292    _password            = ko_strings['form_labels']['_password'];
3293    _male                = ko_strings['form_labels']['_male'];
3294    _female              = ko_strings['form_labels']['_female'];
3295    _pleaseselect        = ko_strings['form_labels']['_pleaseselect'];
3296    _signuptitle         = ko_strings['form_labels']['_signuptitle'];
3297    _enteryouremail      = ko_strings['form_labels']['_enteryouremail'];
3298    _backtologin         = ko_strings['form_labels']['_backtologin'];
3299    _requestnewpass      = ko_strings['form_labels']['_requestnewpass'];
3300    _on                  = ko_strings['form_labels']['_on'];
3301    _off                 = ko_strings['form_labels']['_off'];
3302    _enrollmentavailable = ko_strings['labels']['_enrollmentavailable'];
3303    _goback              = ko_strings['form_labels']['_goback'];
3304
3305
3306    // Text Labels = '// Text Labels',
3307    _logintext  = ko_strings['labels']['_logintext'];
3308    _password   = ko_strings['labels']['_password'];
3309    _welcome    = ko_strings['labels']['_welcome'];
3310    _account    = ko_strings['labels']['_account'];
3311    _myaccount  = ko_strings['labels']['_myaccount'];
3312    _mypassport = ko_strings['labels']['_mypassport'];
3313    _events     = ko_strings['labels']['_events'];
3314    _points     = ko_strings['labels']['_points'];
3315    _updates    = ko_strings['labels']['_updates'];
3316    _signout    = ko_strings['labels']['_signout'];
3317    _signin     = ko_strings['labels']['_signin'];
3318    _signedin   = ko_strings['labels']['_signedin'];
3319    _signuptext = ko_strings['labels']['_signuptext'];
3320    _nextlevel  = ko_strings['labels']['_nextlevel'];
3321    _forgot     = ko_strings['labels']['_forgot'];
3322    _subscribed = ko_strings['labels']['_subscribed'];
3323    _helpcenter = ko_strings['labels']['_helpcenter'];
3324    _error      = ko_strings['labels']['_error'];
3325    _silver     = ko_strings['labels']['_silver'];
3326    _gold       = ko_strings['labels']['_gold'];
3327    _platinum   = ko_strings['labels']['_platinum'];
3328
3329    // Validation Messages = '// Validation Messages',
3330    _gendertext = ko_strings['validation_messages']['_gendertext'];
3331    _accepttext = ko_strings['validation_messages']['_accepttext'];
3332
3333
3334    // Email Verifications = '// Email Verifications',
3335    _resendverify         = ko_strings['_email_verifications']['_resendverify'];
3336    _revalidate           = ko_strings['_email_verifications']['_revalidate'];
3337    _sendingverification  = ko_strings['_email_verifications']['_sendingverification'];
3338    _verifysent           = ko_strings['_email_verifications']['_verifysent'];
3339    _emailverifydashboard = ko_strings['_email_verifications']['_emailverifydashboard'];
3340    _emailverifyupdates   = ko_strings['_email_verifications']['_emailverifyupdates'];
3341
3342
3343    // Edit Page = '// Edit Page',
3344    _editaccount          = ko_strings['_edit_page']['_editaccount'];
3345    _nochanges            = ko_strings['_edit_page']['_nochanges'];
3346    _accountupdated       = ko_strings['_edit_page']['_accountupdated'];
3347    _emailupdatedstarted  = ko_strings['_edit_page']['_emailupdatedstarted'];
3348    _emailupdatedverified = ko_strings['_edit_page']['_emailupdatedverified'];
3349    _passwordresetsent    = ko_strings['_edit_page']['_passwordresetsent'];
3350
3351
3352    // Footer Signup = '// Footer Signup',
3353    _startinput = ko_strings['_footer_signup']['_startinput'];
3354    _starttext  = ko_strings['_footer_signup']['_starttext'];
3355    _getstarted = ko_strings['_footer_signup']['_getstarted'];
3356
3357
3358    // Signup Page = '// Signup Page',
3359    _createaccount        = ko_strings['_signup_page']['_createaccount'];
3360    _almost               = ko_strings['_signup_page']['_almost'];
3361    _almost2              = ko_strings['_signup_page']['_almost2'];
3362    _almost3              = ko_strings['_signup_page']['_almost3'];
3363    _almost4              = ko_strings['_signup_page']['_almost4'];
3364    _almost5              = ko_strings['_signup_page']['_almost5'];
3365    _createdsuccess       = ko_strings['_signup_page']['_createdsuccess'];
3366    _createdinfo          = ko_strings['_signup_page']['_createdinfo'];
3367    _accountactivated     = ko_strings['_signup_page']['_accountactivated'];
3368    _accountverified      = ko_strings['_signup_page']['_accountverified'];
3369    _passwordresetsuccess = ko_strings['_signup_page']['_passwordresetsuccess'];
3370
3371
3372    // Updates = '// Updates',
3373    _updatestext1       = ko_strings['_updates']['_updatestext1'];
3374    _updatestextPending = ko_strings['_updates']['_updatestextPending'];
3375    _updatessubsrcibe   = ko_strings['_updates']['_updatessubsrcibe'];
3376    _updatesunsubsrcibe = ko_strings['_updates']['_updatesunsubsrcibe'];
3377
3378
3379    // Registration = '// Registration',
3380    _rbtnbuy             = ko_strings['_registration']['_rbtnbuy'];
3381    _regbuy              = ko_strings['_registration']['_regbuy'];
3382    _rbtnregister        = ko_strings['_registration']['_rbtnregister'];
3383    _rbtnclosed          = ko_strings['_registration']['_rbtnclosed'];
3384    _rbtnsoon            = ko_strings['_registration']['_rbtnsoon'];
3385    _rbtnupdates         = ko_strings['_registration']['_rbtnupdates'];
3386    _verifyemailregister = ko_strings['_registration']['_verifyemailregister'];
3387    _regbtnhtml          = ko_strings['_registration']['_regbtnhtml'];
3388    _regerror            = ko_strings['_registration']['_regerror'];
3389    _regerror2           = ko_strings['_registration']['_regerror2'];
3390    _regprocessing       = ko_strings['_registration']['_regprocessing'];
3391    _registersuccess     = ko_strings['_registration']['_registersuccess'];
3392    _regaccepted         = ko_strings['_registration']['_regaccepted'];
3393    _regaccepted2        = ko_strings['_registration']['_regaccepted2'];
3394    _regaccepted2_2      = ko_strings['_registration']['_regaccepted2_2'];
3395    _regaccepted2_3      = ko_strings['_registration']['_regaccepted2_3'];
3396    _regaccepted3        = ko_strings['_registration']['_regaccepted3'];
3397    _regdone1            = ko_strings['_registration']['_regdone1'];
3398    _regdone2            = ko_strings['_registration']['_regdone2'];
3399    _regdone3            = ko_strings['_registration']['_regdone3'];
3400    _selectregtype       = ko_strings['_registration']['_selectregtype'];
3401    _regtype             = ko_strings['_registration']['_regtype'];
3402
3403
3404    // Registrations Confirm = '// Registrations Confirm',
3405    _regtext1      = ko_strings['_registration_confirm']['_regtext1'];
3406    _regtext2      = ko_strings['_registration_confirm']['_regtext2'];
3407    _regguest1     = ko_strings['_registration_confirm']['_regguest1'];
3408    _regpending1   = ko_strings['_registration_confirm']['_regpending1'];
3409    _regpending2   = ko_strings['_registration_confirm']['_regpending2'];
3410    _updateinfobtn = ko_strings['_registration_confirm']['_updateinfobtn'];
3411    _confirmreg    = ko_strings['_registration_confirm']['_confirmreg'];
3412
3413
3414    // Privacy / Terms Notice = '// Privacy / Terms Notice',
3415    privacytext = ko_strings['privacytext'];
3416    termsofuse  = ko_strings['termsofuse'];
3417
3418    // Copyright == '// Copyright ',
3419    upptextlogo    = 'Ultra Passport<span class="tm">&trade;</span>';
3420    privacylink    = `<a href="https://ultrapassport.com/privacy-policy" target="_blank">${ko_strings['_registration_confirm']['privacytext']}</a>`;
3421    termslink      = `<a href="https://ultrapassport.com/terms-of-use" target="_blank">${ko_strings['_registration_confirm']['termsofuse']}</a>`;
3422    _agreesignup   = ko_strings['_registration_confirm']['_agreesignup'];
3423    _agreesignup2  = ko_strings['_registration_confirm']['_agreesignup2'];
3424    _agreeregister = ko_strings['_registration_confirm']['_agreeregister'];
3425
3426
3427    // Passport Dashboard = '// Passport Dashboard',
3428    _action            = ko_strings['_passport_labels']['_action'];
3429    _awarded           = ko_strings['_passport_labels']['_awarded'];
3430    _award             = ko_strings['_passport_labels']['_award'];
3431    _benefit           = ko_strings['_passport_labels']['_benefit'];
3432    _howtoqualify      = ko_strings['_passport_labels']['_howtoqualify'];
3433    _pointsexpire      = ko_strings['_passport_labels']['_pointsexpire'];
3434    _qualifydisclaimer = ko_strings['_passport_labels']['_qualifydisclaimer'];
3435    _active            = ko_strings['_passport_labels']['_active'];
3436    _deleted           = ko_strings['_passport_labels']['_deleted'];
3437    _btn_dashboard     = ko_strings['_passport_labels']['_btn_dashboard'];
3438    _btn_benefits      = ko_strings['_passport_labels']['_btn_benefits'];
3439    _btn_qualify       = ko_strings['_passport_labels']['_btn_qualify'];
3440    _btn_points        = ko_strings['_passport_labels']['_btn_points'];
3441
3442    leveltext = _silver;
3443    nextlevel = _gold;
3444
3445
3446    // Errors : '// Errors',
3447    var errors = ko_strings['_errors'];
3448
3449    // Point Labels : '// Point Labels'
3450    var pointcodes = {
3451        manual : ko_strings['_point_labels']['_points_manual'],
3452        verify : ko_strings['_point_labels']['_points_verify'],
3453        unknown : ko_strings['_point_labels']['_points_unknown'],
3454        attend_festival : ko_strings['_point_labels']['_points_attend_festival'],
3455        attend_rtu : ko_strings['_point_labels']['_points_attend_rtu'],
3456        attend_resistance : ko_strings['_point_labels']['_points_attend_resistance'],
3457        away_bonus : ko_strings['_point_labels']['_points_away_bonus'],
3458        home_bonus_1 : ko_strings['_point_labels']['_points_home_bonus_1'],
3459        home_bonus_2 : ko_strings['_point_labels']['_points_home_bonus_2'],
3460        home_bonus_3 : ko_strings['_point_labels']['_points_home_bonus_3'],
3461    };
3462}
3463
3464// JS CONFIG
3465var loadEvents = false;
3466var modallogin = 1;
3467var sortbytype = 1;
3468var devmode = 0;
3469var stage = 0;
3470var maintenance = 0;
3471var registration_notice = 0;
3472
3473if (stage) {
3474    $('body').append('<div class="stagenotice">Passport Staging Server</div>');
3475}
3476
3477// ASSETS
3478var passportimage = `<img src="${upp_assets.images.logo}" alt="Ultra Passport&trade;" width="200" class="mb25">`;
3479
3480// PASSPORT
3481var uppgold = 100000;
3482var uppplatinum = 200000;
3483var level = 'silver';
3484var neededpoints = 0;
3485var nextpercent = 0;
3486var gold = false;
3487var platinum = false;
3488var levelnextname = 'gold';
3489var levelpointsstart = 0;
3490var levelpointsend = uppgold;
3491
3492function homeEvents() {
3493    getEventJSON()
3494    .done(function(data) {
3495
3496        var events = _.sortBy(data, 'title');
3497
3498        var event_options = `<option value="" disabled="" selected="">— ${_pleaseselect} —</option>`;
3499
3500        $.each( eventTypes, function( k, v ) {
3501            $.each( _.filter(events, { 'type': v.type, 'visibility': { 'home_event': true } }), function( key, val ) {
3502                event_options += `<option value="${val.passport.subscription_code}">${val.title_label_short}</option>`;
3503            });
3504        });
3505
3506        $('[name="homeevent"]').html(event_options);
3507        $('[name="newhomeevent"]').html(event_options);
3508        $('[name="event"]').html(event_options);
3509
3510        var current_event = $('#event').data('event');
3511        $(`select#event option[value="${current_event}"]`).attr('selected', true);
3512
3513        if (ultra_settings.event_code) {
3514            $('[name="homeevent"]').each(function () {
3515                var $select = $(this);
3516                if (!$select.val() && $select.find('option[value="' + ultra_settings.event_code + '"]').length) {
3517                    $select.val(ultra_settings.event_code);
3518                }
3519            });
3520        }
3521    });
3522}
3523
3524function getHomeEvents(label) {
3525    return getEventsByType()
3526        .done(function (events) {
3527            var event_options = `<option value="" disabled="" selected="">— ${label} —</option>`;
3528
3529            event_options += _(events)
3530                .map(eventType => _(eventType.events)
3531                    .filter(event => event.visibility.home_event)
3532                    .map(eventType, event => `<option value="${event.passport.subscription_code}">${event.title_label_short}</option>`)
3533                    .join(''))
3534                .join('');
3535            return event_options;
3536        });
3537}
3538
3539moment.locale(ultra_settings.locale);
3540
3541// DETECT HOST
3542var hosturl = document.location.hostname;
3543
3544// DEFAULTS
3545
3546var _createaccountheader = '';
3547
3548// RESISTANCE IBIZA THEME
3549if(ultra_settings.theme === 'ibiza') {
3550
3551    if ( pplang == 'en') {
3552        $('[data-field="icon"]').html(`<img src="${upp_assets.images.levels.silver.icon}">`);
3553        _createaccountheader = `<span class="upp-photo tiny-hide2"><img src="${upp_assets.images.levels.silver.icon}"></span> Sign Up`;
3554    }
3555}
3556
3557
3558// SELECTORS
3559var _result = $('.uppresult');
3560var _allevents = $('#all-events');
3561var _container = $('#uppcontent');
3562var _signup = $('#signup-form');
3563var _edit = $('#edit-form');
3564var _login = $('#login-form');
3565var _lost = $('#lost-form');
3566var _reset = $('#reset-form');
3567var _dashboard = $('#uppdashboard');
3568var _verify = $('#verify-form');
3569var _dashbuttons = $('.myitems');
3570var _subscriptions = $('#subscriptions');
3571var _eventsearch = $('#event-search');
3572var _eventsNav = $('#events-nav');
3573var _changeemail = $('#changeemail-form');
3574var _ticketspage = $('#tickets-app');
3575var _updatesGuest = $('#updates-guest');
3576var _newpoints = $('#newpoints');
3577var _ppprotect = $('#ppprotect');
3578var _meter = '<div class="meter"><i></i></div>';
3579var _loginmodal = $('#loginmodal');
3580var _calcpoints = $('.calcpoints');
3581var _ut = $('#ut');
3582var _utbody = $('#ut>tbody');
3583var _betaform = $('#beta-signup');
3584
3585
3586 // CONTENT BLOCKS
3587
3588 var redirect = getUrlParam('redirect') || '';
3589 if (redirect) {
3590   redirect = '?redirect=' + redirect;
3591 }
3592
3593var loginmodalhtml = `
3594<div id="loginmodal" class="modal" style="display:none;">
3595  <div class="md-content">
3596    <div class="inner">
3597      <div class="replacer w880">
3598        <h2 class="mb10"><img alt="Ultra Passport Login" src="${upp_assets.images.logo}" width="150"></h2>
3599         <div class="lbreak3 clear op50" style="position:relative; margin-bottom:45px !important"></div>
3600         <form action="${upp_page.login}" method="post" class="styledform loginhtml" id="login-form" novalidate="novalidate">
3601            <ol>
3602              <li class="w48 left rs100">
3603                <label for="loginemail">${_email}:</label>
3604                <input type="text" id="loginemail" name="loginemail" placeholder="" data-field="email" class="required email" aria-required="true" autocomplete="email" autofocus>
3605              </li>
3606              <li class="w48 right rs100">
3607                <label for="loginpassword" class="left">${_password}</label>
3608                <div class="password-field">
3609                  <input type="password" id="loginpassword" name="loginpassword" placeholder="" class=" required" aria-required="true" autocomplete="current-password">
3610                  <a class="toggle-password fas fa-eye" tabindex="-1"></a>
3611                </div>
3612              </li>
3613              <li class="left w48 rs100 mb25">
3614                  <button type="submit" class="btn-main ${upp_assets.buttons.primary_btn} btn-lg max100 upplogin">${_logintext} <span class="fas fa-chevron-right"></span></button>
3615              </li>
3616              <li class="w48 right rs100 oauth-providers">
3617                <p><a href="${upp_page.signup}${redirect}" class="textbutton mlsignup nou">${_signuptext}</a> <span class="spacer">/</span> <a href="${upp_page.lost_password}" class="textbutton nou btn-lost">${_forgot}</a></p>
3618              </li>
3619            </ol>
3620        </form>
3621        <form action="${upp_page.lost_password}" method="post" class="styledform clear forgothtml" id="lost-form" style="display:none">
3622        <ol>
3623          <li>
3624            <label for="lostemail">${_enteryouremail}:</label>
3625            <input type="text" placeholder="" name="lostemail" id="lostemail" class="required email">
3626          </li>
3627         <li class="clear w100 rs100 mb25">
3628            <button type="submit" id="upploginbtn" name="upploginbtn" class="btn-main ${upp_assets.buttons.primary_btn} btn-lg mr30 mb15 left">${_requestnewpass} <span class="fas fa-chevron-right"></span></button>
3629            <a href="${upp_page.login}" class="textbutton padt10 back2login "><span class="fas fa-chevron-left fa-sm"></span> ${_backtologin}</a>
3630          </li>
3631        </ol>
3632      </form>
3633      </div>
3634    </div>
3635  </div>
3636  <div class="md-bg"></div>
3637  <a class="md-close"><i></i><b></b></a>
3638</div>`;
3639
3640
3641var signupmodalhtml = `
3642<div id="signupmodal" class="modal" style="display:none;">
3643  <div class="md-content">
3644    <div class="inner">
3645      <div class="replacer w880">
3646      <h2 class="atitle mb20 block mb10"><span class="vcenter padr20"><img alt="Ultra Passport Signup" src="${upp_assets.images.logo}" width="150"></span><span class="vcenter"></span></h2>
3647      <div class="lbreak3 clear op50" style="position:relative; margin-bottom:45px !important"></div>
3648        <form action="" method="post" class="styledform clear" id="signup-form">
3649      <ol>
3650        <li class="w48 left rs100 clear">
3651          <label for="email">${_emailaddy}:</label>
3652          <input data-field="email" name="email" id="email" placeholder="" type="text" class="required email" autocomplete="email" autofocus>
3653        </li>
3654        <li class="w48 right rs100">
3655          <label for="password">${_password}:</label>
3656          <div class="password-field">
3657            <input name="password" id="password" type="password" autocomplete="new-password">
3658            <a class="toggle-password fas fa-eye" tabindex="-1"></a>
3659          </div>
3660        </li>
3661        <li class="w48 left rs100">
3662          <label for="firstname">${_firstname}:</label>
3663          <input data-field="firstname" name="firstname" id="firstname" type="text" class="required" placeholder="" autocomplete="given-name">
3664        </li>
3665        <li class="w48 right rs100">
3666          <label for="lastname">${_lastname}:</label>
3667          <input data-field="lastname" name="lastname" id="lastname" type="text" class="required" autocomplete="family-name">
3668        </li>
3669        <li class="birthday w48 left rs100 clear">
3670            <label for="birthday">${_birthday}:</label><input type="text" name="birthday" id="birthday" data-field="birthday" class="required date-input" autocomplete="bday">
3671        </li>
3672        <li class="gender w48 right rs100 padr30 padb30">
3673          <label for="gender">${_gender}:</label>
3674          <select name="gender" id="gender" class="required" data-field="gender" aria-required="true">
3675            <option value="" disabled selected>— ${_pleaseselect} —</option>
3676            <option value="male">${_male}</option>
3677            <option value="female">${_female}</option>
3678            <option value="other">${_other}</option>
3679            <option value="unknown">${_unknown}</option>
3680          </select>
3681        </li>
3682        <li class="w48 left rs100 clear">
3683          <label for="country">${_country}:</label>
3684          <select name="country" class="required" id="country" data-field="country" autocomplete="country">
3685            <option value="" disabled selected>— ${_pleaseselect} —</option><option value="AF">Afghanistan</option><option value="AX">Åland Islands</option><option value="AL">Albania</option><option value="DZ">Algeria</option><option value="AS">American Samoa</option><option value="AD">Andorra</option><option value="AO">Angola</option><option value="AI">Anguilla</option><option value="AQ">Antarctica</option><option value="AG">Antigua and Barbuda</option><option value="AR">Argentina</option><option value="AM">Armenia</option><option value="AW">Aruba</option><option value="AU">Australia</option><option value="AT">Austria</option><option value="AZ">Azerbaijan</option><option value="BS">Bahamas</option><option value="BH">Bahrain</option><option value="BD">Bangladesh</option><option value="BB">Barbados</option><option value="BY">Belarus</option><option value="BE">Belgium</option><option value="BZ">Belize</option><option value="BJ">Benin</option><option value="BM">Bermuda</option><option value="BT">Bhutan</option><option value="BO">Bolivia, Plurinational State of</option><option value="BQ">Bonaire, Sint Eustatius and Saba</option><option value="BA">Bosnia and Herzegovina</option><option value="BW">Botswana</option><option value="BV">Bouvet Island</option><option value="BR">Brazil</option><option value="IO">British Indian Ocean Territory</option><option value="BN">Brunei Darussalam</option><option value="BG">Bulgaria</option><option value="BF">Burkina Faso</option><option value="BI">Burundi</option><option value="KH">Cambodia</option><option value="CM">Cameroon</option><option value="CA">Canada</option><option value="CV">Cape Verde</option><option value="KY">Cayman Islands</option><option value="CF">Central African Republic</option><option value="TD">Chad</option><option value="CL">Chile</option><option value="CN">China</option><option value="CX">Christmas Island</option><option value="CC">Cocos (Keeling) Islands</option><option value="CO">Colombia</option><option value="KM">Comoros</option><option value="CG">Congo</option><option value="CD">Congo, the Democratic Republic of the</option><option value="CK">Cook Islands</option><option value="CR">Costa Rica</option><option value="CI">Côte d'Ivoire</option><option value="HR">Croatia</option><option value="CU">Cuba</option><option value="CW">Curaçao</option><option value="CY">Cyprus</option><option value="CZ">Czech Republic</option><option value="DK">Denmark</option><option value="DJ">Djibouti</option><option value="DM">Dominica</option><option value="DO">Dominican Republic</option><option value="EC">Ecuador</option><option value="EG">Egypt</option><option value="SV">El Salvador</option><option value="GQ">Equatorial Guinea</option><option value="ER">Eritrea</option><option value="EE">Estonia</option><option value="ET">Ethiopia</option><option value="FK">Falkland Islands (Malvinas)</option><option value="FO">Faroe Islands</option><option value="FJ">Fiji</option><option value="FI">Finland</option><option value="FR">France</option><option value="GF">French Guiana</option><option value="PF">French Polynesia</option><option value="TF">French Southern Territories</option><option value="GA">Gabon</option><option value="GM">Gambia</option><option value="GE">Georgia</option><option value="DE">Germany</option><option value="GH">Ghana</option><option value="GI">Gibraltar</option><option value="GR">Greece</option><option value="GL">Greenland</option><option value="GD">Grenada</option><option value="GP">Guadeloupe</option><option value="GU">Guam</option><option value="GT">Guatemala</option><option value="GG">Guernsey</option><option value="GN">Guinea</option><option value="GW">Guinea-Bissau</option><option value="GY">Guyana</option><option value="HT">Haiti</option><option value="HM">Heard Island and McDonald Islands</option><option value="VA">Holy See (Vatican City State)</option><option value="HN">Honduras</option><option value="HK">Hong Kong</option><option value="HU">Hungary</option><option value="IS">Iceland</option><option value="IN">India</option><option value="ID">Indonesia</option><option value="IR">
3685Iran, Islamic Republic of</option><option value="IQ">Iraq</option><option value="IE">Ireland</option><option value="IM">Isle of Man</option><option value="IL">Israel</option><option value="IT">Italy</option><option value="JM">Jamaica</option><option value="JP">Japan</option><option value="JE">Jersey</option><option value="JO">Jordan</option><option value="KZ">Kazakhstan</option><option value="KE">Kenya</option><option value="KI">Kiribati</option><option value="KP">Korea, Democratic People's Republic of</option><option value="KR">Korea, Republic of</option><option value="KV">Kosovo</option><option value="KW">Kuwait</option><option value="KG">Kyrgyzstan</option><option value="LA">Lao People's Democratic Republic</option><option value="LV">Latvia</option><option value="LB">Lebanon</option><option value="LS">Lesotho</option><option value="LR">Liberia</option><option value="LY">Libya</option><option value="LI">Liechtenstein</option><option value="LT">Lithuania</option><option value="LU">Luxembourg</option><option value="MO">Macao</option><option value="MK">Macedonia, the former Yugoslav Republic of</option><option value="MG">Madagascar</option><option value="MW">Malawi</option><option value="MY">Malaysia</option><option value="MV">Maldives</option><option value="ML">Mali</option><option value="MT">Malta</option><option value="MH">Marshall Islands</option><option value="MQ">Martinique</option><option value="MR">Mauritania</option><option value="MU">Mauritius</option><option value="YT">Mayotte</option><option value="MX">Mexico</option><option value="FM">Micronesia, Federated States of</option><option value="MD">Moldova, Republic of</option><option value="MC">Monaco</option><option value="MN">Mongolia</option><option value="ME">Montenegro</option><option value="MS">Montserrat</option><option value="MA">Morocco</option><option value="MZ">Mozambique</option><option value="MM">Myanmar</option><option value="NA">Namibia</option><option value="NR">Nauru</option><option value="NP">Nepal</option><option value="NL">Netherlands</option><option value="NC">New Caledonia</option><option value="NZ">New Zealand</option><option value="NI">Nicaragua</option><option value="NE">Niger</option><option value="NG">Nigeria</option><option value="NU">Niue</option><option value="NF">Norfolk Island</option><option value="MP">Northern Mariana Islands</option><option value="NO">Norway</option><option value="OM">Oman</option><option value="PK">Pakistan</option><option value="PW">Palau</option><option value="PS">Palestinian Territory, Occupied</option><option value="PA">Panama</option><option value="PG">Papua New Guinea</option><option value="PY">Paraguay</option><option value="PE">Peru</option><option value="PH">Philippines</option><option value="PN">Pitcairn</option><option value="PL">Poland</option><option value="PT">Portugal</option><option value="PR">Puerto Rico</option><option value="QA">Qatar</option><option value="RE">Réunion</option><option value="RO">Romania</option><option value="RU">Russian Federation</option><option value="RW">Rwanda</option><option value="BL">Saint Barthélemy</option><option value="SH">Saint Helena, Ascension and Tristan da Cunha</option><option value="KN">Saint Kitts and Nevis</option><option value="LC">Saint Lucia</option><option value="MF">Saint Martin (French part)</option><option value="PM">Saint Pierre and Miquelon</option><option value="VC">Saint Vincent and the Grenadines</option><option value="WS">Samoa</option><option value="SM">San Marino</option><option value="ST">Sao Tome and Principe</option><option value="SA">Saudi Arabia</option><option value="SN">Senegal</option><option value="RS">Serbia</option><option value="SC">Seychelles</option><option value="SL">Sierra Leone</option><option value="SG">Singapore</option><option value="SX">Sint Maarten (Dutch part)</option><option value="SK">Slovakia</option><option value="SI">Slovenia</option><option value="SB">Solomon Islands</option><option value="SO">Somalia</option><option value="ZA">South Africa</option><option value="GS">South Georgia and the South Sandwich Islands</option><option value="SS">South Sudan</option><option value="ES">Spain</option><option value="LK">Sri Lanka</option><option value="SD">Sudan</option><option value="SR">Suriname</option><option value="SJ">Svalbard and Jan Mayen</option><option value="SZ">Swaziland</option><option value="SE">Sweden</option><option value="CH">Switzerland</option><option value="SY">Syrian Arab Republic</option><option value="TW">Taiwan</option><option value="TJ">Tajikistan</option><option value="TZ">Tanzania, United Republic of</option><option value="TH">Thailand</option><option value="TL">Timor-Leste</option><option value="TG">Togo</option><option value="TK">Tokelau</option><option value="TO">Tonga</option><option value="TT">Trinidad and Tobago</option><option value="TN">Tunisia</option><option value="TR">Turkey</option><option value="TM">Turkmenistan</option><option value="TC">Turks and Caicos Islands</option><option value="TV">Tuvalu</option><option value="UG">Uganda</option><option value="UA">Ukraine</option><option value="AE">United Arab Emirates</option><option value="GB">United Kingdom</option><option value="US">United States</option><option value="UM">United States Minor Outlying Islands</option><option value="UY">Uruguay</option><option value="UZ">Uzbekistan</option><option value="VU">Vanuatu</option><option value="VE">Venezuela, Bolivarian Republic of</option><option value="VN">Viet Nam</option><option value="VG">Virgin Islands, British</option><option value="VI">Virgin Islands, U.S.</option><option value="WF">Wallis and Futuna</option><option value="EH">Western Sahara</option><option value="YE">Yemen</option><option value="ZM">Zambia</option><option value="ZW">Zimbabwe</option>
3686          </select>
3687        </li>
3688        <li class="w48 rs100 right">
3689          <label for="homeevent">${_homeevent}:</label>
3690          <select name="homeevent" class="required" id="homeevent">
3691          <option value="" disabled selected>— ${_pleaseselect} —</option><option value="south-africa">Ultra South Africa</option><option value="miami">Ultra Miami</option><option value="mexico">Ultra Mexico</option><option value="korea">Ultra Korea</option><option value="europe">Ultra Europe</option><option value="china">Ultra China</option><option value="singapore">Ultra Singapore</option><option value="bali">Ultra Bali</option><option value="japan">Ultra Japan</option><option value="brasil">Ultra Brasil</option><option value="thailand">RTU Thailand</option><option value="buenos-aires">RTU Buenos Aires</option><option value="taiwan">RTU Taiwan</option><option value="hong-kong">RTU Hong Kong</option><option value="philippines">RTU Philippines</option><option value="india">RTU India</option><option value="peru">RTU Peru</option><option value="chile">RTU Chile</option><option value="bolivia">RTU Bolivia</option><option value="paraguay">RTU Paraguay</option><option value="puerto-rico">RTU Puerto Rico</option><option value="australia">RTU Australia</option><option value="ibiza">Resistance Ibiza</option>
3692          </select>
3693        </li>
3694        <li class="w100 rs100 left terms">
3695            <label for="accept_terms">
3696                <input type="checkbox" name="accept_terms" id="accept_terms" class="required" aria-required="true">
3697                <p>${_agreesignup}</p>
3698            </label>
3699        </li>
3700        <li class="w100 rs100 clear padt5 padb50">
3701          <div class="lbreak3 op50"></div>
3702          <input type="hidden" id="modlocale" name="modlocale" value="${pplang}" />
3703          <button type="submit" class="uppsignup btn-main btn-lg ${upp_assets.buttons.primary_btn}">${_createaccount} <span class="fas fa-chevron-right"></span></button>
3704          <span class="spacer">/</span>
3705          <a href="${upp_page.login}" class="textbutton mllogin">${_signin} <span class="fas fa-chevron-right"></span></a>
3706        </li>
3707      </ol>
3708      </form>
3709    </div>
3710    </div>
3711  </div>
3712  <div class="md-bg"></div>
3713  <a class="md-close"><i></i><b></b></a>
3714</div>`;
3715
3716var header_html = `
3717<li class="upplink">
3718  <a href="${upp_page.dashboard}" class="dashboardbtn">
3719      <span class="upp-photo tiny-hide2" data-field="icon"></span>
3720      <span class="small-hide" data-field="firstname"></span>
3721  </a>
3722  <ul class="uppsub">
3723    <li class="w100">
3724      <a href="${upp_page.dashboard}" class="uppstatus"><span data-field="badge22">
3725      <div class="lbreak3 op50" style="margin-bottom:15px;"></div>
3726        <img src="${upp_assets.images.logo}" alt="Ultra Passport" class="upp left block">
3727        <span class="right block">
3728          <strong class="block relative statuslevel clearfix">
3729            <span class="uicon iblock vc" data-field="icon"></span>
3730            <span class="iblock vc uplevel" data-field="level"></span>
3731          </strong>
3732        </span>
3733      </a>
3734      <div class="clear mb15"></div>
3735      <div class="lbreak3 op50 mb5"></div>
3736      <a href="${upp_page.events}" class="btn-main w100 mb10 btn-lg ${upp_assets.buttons.primary_btn} mr20">${_events} <span class="fas fa-chevron-right"></span></a>
3737      <a href="${upp_page.updates}" class="btn-main w100 mb0 btn-lg ${upp_assets.buttons.secondary_btn} mr20">${_updates} <span class="fas fa-chevron-right"></span></a>
3738    </li>
3739    <li class="edit w100">
3740      <div class="clear mb20"></div>
3741      <div class="lbreak3 op50 mb10"></div>
3742      <a href="${upp_page.dashboard}" class="textbutton dashboardbtn">${_mypassport} <span class="fas fa-chevron-right"></span></a>
3743      <span class="spacer">/</span>
3744      <a href="${upp_page.login}" class="textbutton upplogout">${_signout} <span class="fas fa-chevron-right"></span></a>
3745    </li>
3746  </ul>
3747  </li>`;
3748
3749if(_createaccountheader != '') {
3750  _createaccount = _createaccountheader;
3751}
3752var header_html_guest = `
3753  <li class="upplink signupm"><a href="${upp_page.signup}"><img width="18" alt="Ultra Passport" src="${upp_assets.images.levels.platinum.icon}" class="upp-photo"><span class="small-hide">${_myaccount}</span></a>
3754    <ul class="uppsub">
3755      <li class="w100">
3756        <a href="${upp_page.signup}" class="uppstatus"><span>
3757        <div class="lbreak3 op50" style="margin-bottom:15px;"></div>
3758          <img src="${upp_assets.images.logo}" alt="Ultra Passport" class="upp left block">
3759          <span class="right block">
3760            <strong class="block relative statuslevel clearfix">
3761            <img width="22" alt="Ultra Passport Silver Icon" src="${upp_assets.images.levels.silver.icon}" class="iblock vc mt5 mr5">
3762            <img width="22" alt="Ultra Passport Gold Icon" src="${upp_assets.images.levels.gold.icon}" class="iblock vc mt5 mr5">
3763            <img width="22" alt="Ultra Passport Platinum Icon" src="${upp_assets.images.levels.platinum.icon}" class="iblock vc mt5 mr5">
3764            </strong>
3765          </span>
3766        </a>
3767        <div class="clear mb20"></div>
3768        <div class="lbreak3 op50 mb10"></div>
3769        <a href="${upp_page.events}" class="btn-main w100 mb10 btn-lg ${upp_assets.buttons.primary_btn} mr20">${_events} <span class="fas fa-chevron-right"></span></a>
3770        <a href="${upp_page.updates}" class="btn-main w100 mb0 btn-lg ${upp_assets.buttons.secondary_btn} mr20">${_updates} <span class="fas fa-chevron-right"></span></a>
3771      </li>
3772      <li class="edit w100">
3773        <div class="clear mb20"></div>
3774        <div class="lbreak3 op50 mb10"></div>
3775          <a href="${upp_page.signup}" class="textbutton signupbtn">${_signuptext} <span class="fas fa-chevron-right"></span></a>
3776          <span class="spacer">/</span>
3777          <a href="${upp_page.login}" class="textbutton loginbtn">${_signin} <span class="fas fa-chevron-right"></span></a>
3778      </li>
3779    </ul>
3780  </li>`;
3781
3782var loginform = `
3783  <form action="" method="post" class="styledform" id="login-form">
3784    <ol>
3785      <li>
3786        <label>Email Address</label>
3787        <input type="text" id="email" name="email" placeholder="" data-field="email" class="required email" autocomplete="email" autofocus>
3788      </li>
3789      <li>
3790        <label class="left">Password</label>
3791        <input type="password" id="password" name="password" placeholder="" class=" required" autocomplete="current-password">
3792      </li>
3793      <li class="left w48 rs100 mb25">
3794        <button type="submit" class="btn-main ${upp_assets.buttons.primary_btn} upplogin">Login <span class="fas fa-chevron-right"></span></button>
3795      </li>
3796    </ol>
3797  </form>`;
3798
3799
3800var footer_html = `
3801  <div class="ppf rel">
3802  <div class="left sign-in-state"><p class="mb30"><a href="${upp_page.dashboard}">${_welcome} <span data-field="firstname"></span></a></p></div>
3803  <div class="clear"></div>
3804  <a href="${upp_page.dashboard}" class="uppstatus mb30"><span data-field="badge22">
3805    <img src="${upp_assets.images.logo}" alt="Ultra Passport" class="upp left block">
3806    <span class="left padl20 block">
3807      <strong class="block relative statuslevel clearfix">
3808        <span class="uicon iblock vc" data-field="icon"></span>
3809        <span class="silver iblock vc uplevel " data-field="level_code"></span>
3810      </strong>
3811    </span>
3812  </a>
3813  <div class="clear mb30"></div>
3814  <div class="lbreak3 op50 uppubar" style="margin-bottom:10px "></div>
3815  <p class="fub upp-upgrade">
3816  <a href="${upp_page.dashboard}">
3817  <span class="fs11 text-uppercase">${_nextlevel}</span>
3818  <span class="fat fa-chevron-right"></span>
3819  <span class="text-uppercase fs11" data-field="level-next-name"></span>
3820  (<strong><span class="count" data-field="level-next-percent"></span>%</strong>)
3821  </a></p>
3822  <div class="clear"></div>
3823  <div class="lbreak3 op50" style="margin-bottom:34px "></div>
3824  <div class="progress-bar status-bar w100">
3825    <div class="level silver left">
3826      <span class="currentname active" data-field="level-current-name"></span>
3827      <span class="nextname active" data-field="level-next-name"></span>
3828      <span class="em startpoints active" data-field="level-points-start"></span>
3829      <span class="em endpoints active" data-field="level-points-end"></span>
3830      <div class="bar">
3831        <div class="fill" data-field="fillpercent"></div>
3832      </div>
3833    </div>
3834  </div>
3835  <div class="clear mb25"></div>
3836  <div class="upb clearfix hide">
3837    <div class="upb-back"></div>
3838    <div class="upb-bar">
3839      <div class="fill" data-field="fillpercent"></div>
3840    </div>
3841    <div class="upb-front"></div>
3842  </div>
3843  <p><a href="${upp_page.login}" class="upplogout"><span class="fas fa-left fa-2xs"></span> <span class="fs11 text-uppercase">${_signout}</span></a></p>
3844</div>`;
3845
3846
3847var footer_html_guest = `
3848  <div class="ppf">
3849    <p class="pphead block">
3850      <a href="${upp_page.login}" class="block clearfix">
3851        <img alt="Ultra Passport" src="${upp_assets.images.logo}" width="120" class="block left"> 
3852        <span class="ml20 mt5 block left">
3853          <strong class="iblock relative  clearfix">
3854            <img width="22" alt="Ultra Passport Silver Icon" src="${upp_assets.images.levels.silver.icon}" class="iblock mr5">
3855            <img width="22" alt="Ultra Passport Gold Icon" src="${upp_assets.images.levels.gold.icon}" class="iblock mr5">
3856            <img width="22" alt="Ultra Passport Platinum Icon" src="${upp_assets.images.levels.platinum.icon}" class="iblock mr5">
3857          </strong>
3858        </span>
3859      </a>
3860    </p>
3861    <p class="ppstart">${_starttext}</p>
3862    <form class="styledform validate" id="quickform" method="post" action="${upp_page.signup}">
3863    <button type="submit" class="btn-main btn-lg w100 ${upp_assets.buttons.primary_btn}">${_getstarted} <span class="fas fa-chevron-right"></span></button>
3864    </form>
3865  </div>`;
3866
3867var almost = `
3868  <h1 class="title">${_almost}</h1>
3869  <div class="lclear op50"></div>
3870  <h2>${_almost2}</h2>
3871  <p class="almost1">${_almost3}</p>
3872  <p class="almost2">${_almost4}<br><br></p>
3873  <form action="${upp_page.dashboard}" method="post">
3874  <p><button class="btn-main btn-lg ${upp_assets.buttons.secondary_btn} continue uppsignup working disabled" disabled="disabled">${_almost5} <span class="fas fa-chevron-right"></span></button></p>
3875  </form>`;
3876
3877var guestinfo = `
3878  <section id="guestinfo" class="inner" style="margin-bottom:50px;">
3879    <h1 class="atitle mb20 block mb10"><span class="vcenter padr20"><img alt="Ultra Passport" src="${upp_assets.images.logo}" width="150"></span><span class="vcenter"></span></h1>
3880    <div class="lbreak3 mb25"></div>
3881    <p>${_guestnotice}</p>
3882    <div class="clear padt25"></div>
3883    <a href="${upp_page.signup}" class="fs14 btn-main btn-lg signupbtn ${upp_assets.buttons.primary_btn}">${_signuptext} <span class="fas fa-chevron-right"></span></a>
3884    <span class="spacer">/</span> <a href="${upp_page.login}" class="btn-main btn-lg loginbtn ${upp_assets.buttons.outline_btn} fs14">${_logintext} <span class="fas fa-chevron-right"></span></a>
3885  </section>`;
3886
3887var regHTML2 = `
3888    <div class="registered-summary clearfix clear" style="display:none">
3889    <div class="clear lbreak3 op50"></div>
3890    <ul class="info-list registered-list left mb25 rs100">
3891    <li><h4>${_regprocessing}</h4></li>
3892    </ul>
3893    <div class="right rs100">
3894      <a class="btn-main btn-lg ${upp_assets.buttons.secondary_btn}  ml25">${_regbuy} <span class="fas fa-chevron-right"></span></a>
3895     </div>
3896  </div>`;
3897
3898var regHTML = `
3899    <div class="registered-summary clearfix clear mt30rs" style="display:none">
3900    <div class="clear lbreak3 op50"></div>
3901    <ul class="info-list registered-list left mb25 rs100">
3902      <li><strong>${_regaccepted} <span class="regdate" data-field="regdate"></span> &nbsp;&nbsp; <span class="regcode2" data-field="regcode2"></span></strong></li>
3903      <li><span class="regnotice">${_regaccepted2}</span></li>
3904    </ul>
3905    <div class="right rs100">
3906      <a class="btn-main btn-lg ${upp_assets.buttons.secondary_btn} ml25 disabled">${_rbtnsoon}</a>
3907     </div>
3908  </div>`;
3909
3910var regHTMLsale = `
3911    <div class="registered-summary clearfix clear mt30rs" style="display:none">
3912    <div class="clear lbreak3 op50"></div>
3913    <ul class="info-list registered-list left mb25 rs100">
3914      <li><strong>${_regaccepted} <span class="regdate" data-field="regdate"></span></strong></li>
3915      <li><span>${_regaccepted2}</span></li>
3916    </ul>
3917    <div class="right rs100">
3918      <a class="btn-main btn-lg mt25rs rs100 ${upp_assets.buttons.secondary_btn} ml25">${_regbuy} <span class="fas fa-chevron-right"></span></a>
3919     </div>
3920  </div>`;
3921
3922
3923var registrationModal = `
3924    <div id="registration-confirm" class="modal" style="display: none">
3925      <div class="md-content">
3926        <div class="inner content ">
3927          <div class="replacer w880">
3928            <div class="register-text" style="display: none">
3929              <h1>${_regtext1}</h1>
3930              <div class="lbreak3 op50"></div>
3931              <p>${_regtext2} <strong class="regtitle"></strong> </p>
3932              <ul id="confirm-info" class="confirm-list info-list">
3933                <li><span>${_fullname}:</span> <strong data-field="firstname"></strong> <strong data-field="lastname"></strong></li>
3934                <li><span>${_email}:</span> <strong data-field="email"></strong></li>
3935                <li><span>${_birthday}:</span> <strong data-field="birthday"></strong></li>
3936                <li><span>${_location}:</span> <strong data-field="country"></strong></li>
3937                <li><span>${_gender}:</span> <strong data-field="gender"></strong></li>
3938                <li><span>${_homeevent}:</span> <strong data-field="homeevent"></strong></li>
3939              </ul>
3940              <div class="clear rs100 mb50">
3941              <p>${_agreeregister}</p>
3942              </div>
3943              <div class="actions">
3944              <a href="${upp_page.edit}" class="btn-main mb25 btn-lg ${upp_assets.buttons.outline_btn} mr25">${_updateinfobtn} <span class="fas fa-chevron-right"></span></a>
3945              </div>
3946            </div>
3947            <div class="guest-text" style="display: none">
3948              ${passportimage}
3949              <div class="lbreak3 clear op50"></div>
3950              <h1  style="font-size:24px">${_regguest1}</h1>
3951              <p class="mb50">${_agreeregister}</p>
3952              <div class="actions"">
3953                <a href="${upp_page.signup}" class="btn-main mb25 signupbtn ${upp_assets.buttons.primary_btn} btn-lg mr25">${_signuptext} <span class="fas fa-chevron-right"></span></a> <a class="btn-main ${upp_assets.buttons.outline_btn} btn-lg loginbtn" href="${upp_page.login}">${_logintext} <span class="fas fa-chevron-right"></span></a>
3954              </div>
3955            </div>
3956            <div class="pending-text" style="display: none">
3957              ${passportimage}
3958              <div class="lbreak3 clear op50"></div>
3959              <h1>${_regpending1}</h1>
3960              <p>${_regpending2}</p>
3961              <div class="actions">
3962              <a href="${upp_page.dashboard}" class="btn-main ${upp_assets.buttons.primary_btn} btn-lg btn-resend mr25">${_resendverify} <span class="fas fa-chevron-right"></span></a>
3963              </div>
3964            </div>
3965            <div class="types-text" style="display: none">
3966              <h1>${_selectregtype}</h1>
3967              <div class="lbreak3 clear op50"></div>
3968              <div class="actions types padt20">
3969              </div>
3970            </div>
3971          </div>
3972        </div>
3973      </div>
3974      <div class="md-bg"></div>
3975      <a class="md-close"><i></i><b></b></a>
3976    </div>`;
3977
3978var waitlistModal = `
3979    <div id="waitlist-confirm" class="modal" style="display: none">
3980      <div class="md-content">
3981        <div class="inner content ">
3982          <div class="replacer w880">
3983            <div class="guest-text" style="display: none">
3984              ${passportimage}
3985              <div class="lbreak3 clear op50"></div>
3986              <h1  style="font-size:24px">${_waitlistguest1}</h1>
3987              <p class="mb50">${_agreewaitlist}</p>
3988              <div class="actions"">
3989                <a href="${upp_page.signup}" class="btn-main mb25 signupbtn ${upp_assets.buttons.primary_btn} btn-lg mr25">${_signuptext} <span class="fas fa-chevron-right"></span></a>
3990                <a class="btn-main ${upp_assets.buttons.outline_btn} btn-lg loginbtn" href="${upp_page.login}">${_logintext} <span class="fas fa-chevron-right"></span></a>
3991              </div>
3992            </div>
3993            <div class="pending-text" style="display: none">
3994              ${passportimage}
3995              <div class="lbreak3 clear op50"></div>
3996              <h1>${_regpending1}</h1>
3997              <p>${_waitlistpending2}</p>
3998              <div class="actions">
3999                <a href="${upp_page.dashboard}" class="btn-main ${upp_assets.buttons.primary_btn} btn-lg btn-resend mr25">${_resendverify} <span class="fas fa-chevron-right"></span></a>
4000              </div>
4001            </div>
4002            <div class="types-text" style="display: none">
4003              <h1>${_selectregtype}</h1>
4004              <div class="lbreak3 clear op50"></div>
4005              <div class="actions types padt20">
4006              </div>
4007            </div>
4008          </div>
4009        </div>
4010      </div>
4011      <div class="md-bg"></div>
4012      <a class="md-close"><i></i><b></b></a>
4013    </div>`;
4014
4015var updatesModal = `
4016    <div id="updates-guest" class="modal" style="display: none">
4017      <div class="md-content">
4018        <div class="inner content">
4019          <div class="replacer w880">
4020            <div class="guest-text">
4021              ${passportimage}
4022              <div class="lbreak3 clear op50"></div>
4023              <h1 style="font-size:24px">${_updatestext1}</h1>
4024              <p class="mb50">${_agreesignup2}</p>
4025              <div class="guest-actions">
4026                <a style="display:none;" href="${upp_page.dashboard}" class="btn-main pending-text ${upp_assets.buttons.primary_btn} btn-lg btn-resend mr25">${_resendverify} <span class="fas fa-chevron-right"></span></a>
4027                <a href="${upp_page.signup}" class="btn-main mb25 signupbtn guest-text ${upp_assets.buttons.primary_btn} btn-lg mr25">${_signuptext} <span class="fas fa-chevron-right"></span></a>
4028                <a class="btn-main ${upp_assets.buttons.outline_btn} btn-lg guest-text loginbtn" href="${upp_page.login} ">${_logintext} <span class="fas fa-chevron-right"></span></a>
4029              </div>
4030            </div>
4031          </div>
4032        </div>
4033      </div>
4034      <div class="md-bg"></div>
4035      <a class="md-close"><i></i><b></b></a>
4036    </div>`;
4037
4038
4039var ppdashnav = `
4040  <li><a href="#dashboard" class="active" data-title="${_mypassport}">${_btn_dashboard}</a></li>
4041  <li><a href="#benefits"data-title="${_btn_benefits}">${_btn_benefits}</a></li>
4042  <li><a href="#qualify" data-title="${_howtoqualify}">${_btn_qualify}</a></li>
4043  <li><a href="#points" data-title="${_btn_points}">${_btn_points}</a></li>`;
4044
4045$(document).on('click', '.toggle-password', function () {
4046    var $this = $(this);
4047    var $input = $this.siblings('input');
4048    if ($input.attr('type') === 'password') {
4049        $input.attr('type', 'text');
4050        $this.removeClass('fa-eye').addClass('fa-eye-slash');
4051    } else {
4052        $input.attr('type', 'password');
4053        $this.removeClass('fa-eye-slash').addClass('fa-eye');
4054    }
4055});
4056
4057function getDateFormat() {
4058    return moment.localeData().longDateFormat('L');
4059}
4060
4061function initDateMask(container) {
4062    $(container || document).find('.date-input').each(function () {
4063        var el = this;
4064        if ($(el).data('imask')) return;
4065        var fmt = getDateFormat();
4066        $(el).attr('placeholder', fmt);
4067
4068        var mask = IMask(el, {
4069            mask: Date,
4070            pattern: fmt,
4071            format: function (date) {
4072                return moment(date).format(fmt);
4073            },
4074            parse: function (str) {
4075                return moment(str, fmt).toDate();
4076            },
4077            blocks: {
4078                DD: { mask: IMask.MaskedRange, from: 1, to: 31, maxLength: 2, placeholderChar: 'D', autofix: 'pad' },
4079                MM: { mask: IMask.MaskedRange, from: 1, to: 12, maxLength: 2, placeholderChar: 'M', autofix: 'pad' },
4080                YYYY: { mask: IMask.MaskedRange, from: 1900, to: new Date().getFullYear() - 18, maxLength: 4, placeholderChar: 'Y' }
4081            },
4082            min: new Date(1900, 0, 1),
4083            max: new Date(new Date().getFullYear() - 18, 11, 31),
4084            lazy: false,
4085            eager: true,
4086            overwrite: true
4087        });
4088        $(el).data('imask', mask);
4089    });
4090}
4091
4092function getDateISO(element) {
4093    var mask = $(element).data('imask');
4094    if (mask && mask.masked.isComplete) {
4095        return moment(mask.typedValue).format('YYYY-MM-DD');
4096    }
4097    var value = element.value;
4098    var m = moment(value, getDateFormat(), true);
4099    return m.isValid() ? m.format('YYYY-MM-DD') : '';
4100}
4101
4102function setDateFromISO(selector, isoDate) {
4103    var $input = $(selector || '#birthday');
4104    var fmt = getDateFormat();
4105    var m = moment(isoDate);
4106    if (m.isValid()) {
4107        $input.val(m.format(fmt));
4108        var mask = $input.data('imask');
4109        if (mask) { mask.updateValue(); }
4110    }
4111}
4112
4113$(function () { initDateMask(); });
4114
4115function fillData(data) {
4116
4117    $('[data-field]:not(select,input)').each(function(){
4118
4119        var $this = $(this);
4120        var fieldname = $this.attr('data-field');
4121        var val = '';
4122
4123        var datakey = fieldname === 'homelogo' ? 'homeevent' : fieldname;
4124
4125        if (typeof(data[datakey]) == 'undefined' || data[datakey] == null) {
4126            return;
4127        }
4128
4129        var dataval = data[datakey];
4130
4131        if (fieldname === 'gender' || fieldname === 'status') {
4132
4133            val = capitalizeFirstLetter(dataval);
4134
4135            if(dataval === 'male') { val = _male; }
4136            if(dataval === 'female') { val = _female; }
4137            if(dataval === 'other') { val = _other; }
4138            if(dataval === 'unknown') { val = _unknown; }
4139            if(dataval === 'silver') { val = _silver; }
4140            if(dataval === 'gold') { val = _gold; }
4141            if(dataval === 'platinum') { val = _platinum; }
4142
4143            $this.html(val);
4144            return;
4145        }
4146        if (fieldname === 'birthday' || fieldname === 'created_at') {
4147
4148            val = moment(dataval).format('MMMM Do, YYYY');
4149
4150            $this.html(val);
4151            return;
4152        }
4153        if (fieldname === 'registrations' || fieldname === 'subscriptions') {
4154            $this.html(dataval.length);
4155            return;
4156        }
4157        if (fieldname === 'id') {
4158            $this.html(dataval);
4159            return;
4160        }
4161        if (fieldname === 'country') {
4162            $this.html(typeof(countries[dataval]) == 'undefined' ? dataval : countries[dataval]);
4163            return;
4164        }
4165        if (fieldname === 'homeevent') {
4166            getEventJSON()
4167                .done(function(data) {
4168                    var event = _.find(data, function(o) { return o.passport.subscription_code === dataval; });
4169                    if (event) {
4170                        $this.html(event.title_label);
4171                    }
4172                });
4173            return;
4174        }
4175        if (fieldname === 'homelogo') {
4176            getEventJSON()
4177                .done(function(data) {
4178                    var event = _.find(data, function(o) { return o.passport.subscription_code === dataval; });
4179                    if (event && event.media.white_logo) {
4180                        var logo = `<img alt="${event.title}" src="${event.media.white_logo}" class="homelogo" width="175">`;
4181                    } else {
4182                        var logo = event.title_label;
4183                    }
4184                    if (event && event.url) {
4185                        var website = event.url;
4186                    } else {
4187                        var website = '#';
4188                    }
4189                    $this.html(`<a href="${website}" target="_blank">${logo}</a>`);
4190                });
4191            return;
4192        }
4193        if (fieldname === 'points') {
4194            $this.attr('data-points', dataval);
4195            val = Number(dataval).toLocaleString();
4196            $this.html(val);
4197            fillProgress(dataval);
4198            return;
4199        }
4200
4201        if (fieldname === 'level_expires') {
4202            var val = moment(dataval).format('MMM Do, YYYY');
4203            $('[data-field="level_expires"]').text(val);
4204            if ( data.level !== 0 ) {
4205                $('.expires-note').fadeIn(300);
4206            }
4207            return;
4208        }
4209
4210        if (fieldname === 'level_code') {
4211            fillStatus(dataval);
4212            return;
4213        }
4214
4215        $this.html($.parseHTML(dataval));
4216
4217        if (!! _dashboard.length) {
4218            _dashboard.fadeTo(300,1);
4219        }
4220
4221    });
4222}
4223
4224var fillStatusRan = false;
4225function fillStatus(level = 'silver') {
4226    if ( fillStatusRan ) {
4227        return;
4228    }
4229
4230    let level_assets = upp_assets.images.levels[level];
4231
4232    $('.uplevel[data-field="level_code"]').html(level).addClass(level);
4233    $('[data-field="gfx"]').html(`<img alt="${level} icon" src="${level_assets.gfx}">`);
4234    $('[data-field="icon"]').html(`<img alt="${level} icon" src="${level_assets.icon}">`);
4235    $('[data-field="stamp"]').html(`<img alt="${level} icon" src="${level_assets.stamp}" width="95">`);
4236    fillStatusRan = true;
4237}
4238
4239
4240var fillProgressRan = false;
4241function fillProgress(points) {
4242
4243    if ( fillProgressRan ) {
4244        return;
4245    }
4246
4247    if (points >= uppplatinum) {
4248        level = 'platinum';
4249    } else if (points >= uppgold) {
4250        level = 'gold';
4251    } else {
4252        level = 'silver';
4253    }
4254
4255    neededpoints = uppgold - points;
4256    nextpercent = (points / uppgold).toFixed(2) * 100;
4257
4258    if(level === 'gold') {
4259        levelnextname = 'platinum';
4260        levelpointsstart = uppgold;
4261        neededpoints = uppplatinum - points;
4262        levelpointsend = uppplatinum;
4263        nextpercent = (points / uppplatinum).toFixed(2) * 100;
4264    }
4265    if(level === 'platinum') {
4266        levelnextname = 'platinum';
4267        levelpointsstart = uppplatinum;
4268        neededpoints = 0;
4269        levelpointsend = uppplatinum;
4270        nextpercent = 100;
4271    }
4272
4273    levelpointsstart = Number(levelpointsstart).toLocaleString();
4274    levelpointsend = Number(levelpointsend).toLocaleString();
4275    neededpoints = Number(neededpoints).toLocaleString();
4276
4277    $('[data-field="level-current-name"]').html(level).addClass(level);
4278    $('[data-field="level-next-name"]').html(levelnextname).addClass(levelnextname);
4279    $('[data-field="level-points-start"]').html(levelpointsstart).addClass(level);
4280    $('[data-field="level-points-end"]').html(levelpointsend).addClass(levelnextname);
4281    $('[data-field="level-next-points"]').html(neededpoints);
4282    $('[data-field="level-next-percent"]').html(nextpercent);
4283    $('[data-field="fillpercent"]').css({'width':nextpercent+'%'});
4284
4285    $('span.next-status').html(levelnextname).addClass(levelnextname);
4286    $('div.level').removeClass('silver gold platinum');
4287    $('div.level').addClass(level);
4288
4289
4290    if (level === 'platinum') {
4291        $('.unlock-note').html("<span class='platinum'>Platinum</span> Level Reached!");
4292        $('.unlock-note').html("<strong>Max Level Reached!</strong>");
4293        //$('[data-field="level-points-end"]').html('?');
4294        //$('[data-field="level-next-name"]').html('?');
4295        $('[data-field="level-points-start"]').html(Number(uppgold).toLocaleString()).removeClass('platinum').addClass('gold');
4296        $('[data-field="level-current-name"]').html('gold').removeClass('platinum').addClass('gold');
4297    }
4298
4299    fillProgressRan = true;
4300}
4301
4302function hideResult() {
4303    notyf.dismissAll();
4304}
4305
4306function showResult(content, type = 'info', options = {}) {
4307    return notyf.open({
4308        type: type,
4309        message: content,
4310        ...options
4311    });
4312}
4313
4314function scrollToTop() {
4315    return new Promise((resolve, reject) => {
4316        $("html:not(:animated), body:not(:animated)").animate({
4317            scrollTop: 0
4318        }, {
4319            duration: 900,
4320            easing: 'easeInOutExpo',
4321            complete: resolve // This will be called once the animation is complete.
4322        });
4323    });
4324}
4325
4326
4327
4328function modalClose(modalContainer) {
4329    var modalContainer = $(modalContainer) || $('.modal');
4330    modalContainer.on('click', '.md-close', function (e) {
4331        var $this = $(this);
4332        e.preventDefault();
4333        $this.parent().fadeOut(300);
4334        modalClosed();
4335    });
4336    $(document).on("keyup", function (event) {
4337        if (event.keyCode === 27 && !!modalContainer.find('.md-close').length) {
4338            modalContainer.find('.md-close').trigger('click');
4339            modalClosed();
4340        }
4341    });
4342}
4343
4344function modalOpen() {
4345   //hideResult('modal');
4346   $('html').addClass('modalopen');
4347}
4348
4349function modalClosed() {
4350    hideResult()
4351    $('html').removeClass('modalopen');
4352}
4353
4354function registrationNotice(passport) {
4355    //log(passport.registrations.length);
4356    if(!passport.registrations.length && passport.status === 'active') {
4357        //showResult(_globalnotice, 'info');
4358    }
4359
4360    if(passport.registrations.length && passport.status === 'active') {
4361        //showResult(_globalnoticereg, 'info');
4362    }
4363}
4364
4365
4366/*
4367function combineDates() {
4368
4369    var birthday = $('#birthday');
4370    var datefields = $('#bday_month, #bday_day, #bday_year');
4371
4372    if ( !! birthday.length ) {
4373
4374        var updateDate = function() {
4375
4376          var month = $('#bday_month').val();
4377          var day = $('#bday_day').val();
4378          var year = $('#bday_year').val();
4379
4380          var singular_date = year+'-'+month+'-'+day;
4381
4382          birthday.val(singular_date);
4383
4384        }
4385
4386        updateDate();
4387
4388        datefields.change(function(e) {
4389          updateDate();
4390        });
4391
4392    }
4393
4394}
4395*/
4396
4397function titleCase(str) {
4398    return str
4399        .split('-')
4400        .map(i => i.charAt(0).toUpperCase() + i.slice(1).toLowerCase())
4401        .join(' ');
4402}
4403
4404function capitalizeFirstLetter(string) {
4405    if (typeof string !== 'string' || string.length === 0) {
4406        return string;
4407    }
4408    return string.charAt(0).toUpperCase() + string.slice(1);
4409}
4410
4411function validate() {
4412
4413    if (!!$('.validate').length) {
4414        $('.validate').validate();
4415    }
4416
4417    $.validator.addClassRules({
4418        password: {
4419            minlength: 8,
4420            maxlength: 100
4421        }
4422    });
4423
4424}
4425
4426
4427function passwordField() {
4428    var pwd = document.getElementById("password");
4429
4430    function hide() {
4431        pwd.setAttribute('type', 'password');
4432    }
4433
4434    function show() {
4435        pwd.setAttribute('type', 'text');
4436    }
4437
4438    pwd.addEventListener("blur", function () {
4439        hide();
4440    }, false);
4441
4442    pwd.addEventListener("focus", function () {
4443        show();
4444    }, false);
4445}
4446
4447function convertToSlug(Text) {
4448    return Text
4449    .toLowerCase()
4450    .replace(/[^\w ]+/g,'')
4451    .replace(/ +/g,'-')
4452    ;
4453}
4454
4455// Scroll to top function
4456jQuery(function($) {
4457    $.fn.scrollToTop = function() {
4458        $(this).on('click', function() {
4459            $("html, body").animate({
4460                scrollTop: 0
4461            }, {duration:900, easing:'easeInOutExpo'})
4462        })
4463    }
4464});
4465
4466function fillParams() {
4467    var token = getUrlParam('token');
4468    var email = getUrlParam('email');
4469    if(!email) {
4470        email = getUrlParam('verifyemail');
4471    }
4472    var home = getUrlParam('home');
4473    if ( email ) {
4474        $('#updateemail').val(email);
4475        $('#loginemail').val(email);
4476        $('#email').val(email);
4477        $('#verifyemail').val(email);
4478    }
4479    if ( token ) { $('#token').val(token); }
4480    if ( home ) { $('#homeevent').val(home); }
4481}
4482
4483function getUrlParam(param, returnArray){
4484    var current_url = new URL(window.location);
4485
4486    if (returnArray) {
4487        return current_url.searchParams.getAll(param);
4488    }
4489    return current_url.searchParams.get(param);
4490}
4491
4492function passportRedirect(fallback_url){
4493    var redirect;
4494    var url_redirect = getUrlParam('redirect');
4495
4496    if(url_redirect){
4497        redirect = url_redirect;
4498    }
4499    else if(fallback_url) {
4500        redirect = fallback_url;
4501    }
4502    else {
4503        redirect = upp_page.dashboard;
4504    }
4505    window.location.assign(redirect);
4506}
4507
4508/**
4509 * Generic array sorting
4510 *
4511 * @param property
4512 * @returns {Function}
4513 */
4514 var sortByProperty = function (property) {
4515     return function (x, y) {
4516         return ((x[property] === y[property]) ? 0 : ((x[property] > y[property]) ? 1 : -1));
4517     };
4518 };
4519
4520 function getCFCountry() {
4521     return $.get('/cdn-cgi/trace').then(function (data) {
4522         var match = data.match(/loc=(\w+)/);
4523         return match ? match[1] : null;
4524     }).catch(function () {
4525         return null;
4526     });
4527 }
4528
4529 function mergeRecursive (obj1, obj2) {
4530     return _.mergeWith({}, obj1, obj2, function(objValue, srcValue) {
4531         if (_.isArray(objValue)) {
4532             return objValue.concat(srcValue);
4533         }
4534     })
4535 }
4536
4537// Custom validator: birthday mask must be fully completed
4538$.validator.addMethod('completeDate', function(value, element) {
4539    var mask = $(element).data('imask');
4540    if (mask) { return mask.masked.isComplete; }
4541    return value.length > 0;
4542}, 'This field is required.');
4543function updatePost() {
4544
4545    _edit.on('submit', function(e) {
4546        e.preventDefault();
4547    }).validate({
4548        messages: {
4549            gender: _gendertext
4550        },
4551        rules: {
4552            email: {
4553                required: true,
4554                email: true,
4555            },
4556            firstname: {
4557                required: true,
4558            },
4559            lastname: {
4560                required: true,
4561            },
4562            birthday: {
4563                completeDate: true,
4564            },
4565            gender: {
4566                required: true,
4567            },
4568            country: {
4569                required: true,
4570            },
4571            password: {
4572                minlength: {
4573                    param: 8,
4574                    depends: function(element) {
4575                        return $(element).val().length > 0;
4576                    }
4577                },
4578                maxlength: 100,
4579            },
4580        },
4581        errorPlacement: function(error, element) {
4582            error.insertAfter(element);
4583        },
4584        submitHandler: function(form, event) {
4585            edit(form, this);
4586        }
4587
4588    });
4589
4590}
4591
4592function editLoad(data) {
4593
4594    var status = data.status;
4595
4596    if (status != 'active') {
4597
4598       //showResult(_emailverifydashboard, 'warning');
4599
4600   }
4601
4602}
4603
4604
4605function accountDeleteForm() {
4606
4607    $('#delete-my-account form').on('submit', function(e) {
4608        e.preventDefault();
4609    }).validate({
4610        submitHandler: function(form) {
4611            $('#delete-my-account form button[type="submit"]').addClass('working disabled');
4612            $('#delete-my-account-form-response').html('');
4613
4614            passport.delete()
4615                .done(function() {
4616                    var successtext = '<p>Your account has been deleted. Redirecting...</p>';
4617                    $('#delete-my-account-form-response').html(successtext);
4618                    $('#delete-my-account form').slideUp(500, 'easeInOutExpo');
4619                    $('#delete-my-account-form-response').slideDown(500, 'easeInOutExpo');
4620                    setTimeout(function() {
4621                        passport.logout().always(function() {
4622                            window.location.assign('/');
4623                        });
4624                    }, 2000);
4625                })
4626                .fail(function() {
4627                    $('#delete-my-account form button[type="submit"]').removeClass('working disabled');
4628                    showResult(errors.general, 'error');
4629                });
4630        }
4631    });
4632
4633}
4634
4635
4636
4637function processChangeEmailForm() {
4638
4639    _changeemail.on('submit', function(e) {
4640        e.preventDefault();
4641    }).validate({
4642        submitHandler: function(form) {
4643            processChangeEmail(form);
4644        }
4645    });
4646
4647}
4648
4649function processChangeEmail() {
4650
4651    var email = $('#email').val();
4652    var token = $('#token').val();
4653    var locale = $('#locale').val();
4654
4655    return passport.processChangeEmail(token,email, upp_page.events, locale)
4656
4657    .fail(function(jqXHR, textStatus, error){
4658        $(document).trigger('rebuild');
4659        if (jqXHR.status == 401) {
4660          //$(document).trigger('logged-out');
4661          showResult(errors.token, 'error');
4662      } else if (jqXHR.status == 409) {
4663          showResult(errors.duplicateemail, 'error');
4664      } else if (jqXHR.status == 404) {
4665          showResult(errors.token, 'error');
4666      } else {
4667          showResult(errors.token, 'error');
4668      }
4669  })
4670    .done(function(data, textStatus, jqXHR){
4671        showResult(_emailupdatedverified, 'success');
4672        $(document).trigger('rebuild');
4673
4674        setTimeout(function() {
4675            document.location = upp_page.dashboard;
4676        }, 2000);
4677
4678    })
4679}
4680
4681
4682function edit(form, validator) {
4683
4684    var form_data = Object.fromEntries(new FormData(form).entries());
4685
4686    var formdata = {
4687        firstname: form_data.firstname,
4688        lastname: form_data.lastname,
4689        email: form_data.email,
4690        birthday: getDateISO(form.elements.birthday),
4691        gender: form_data.gender,
4692        country: form_data.country
4693    };
4694
4695    var actoken = getUrlParam('token');
4696    var locale = form_data.locale || $('#locale').val();
4697    var activateurl = upp_page.verify + '?token=' + actoken + '&email=' + formdata.email;
4698
4699    if (form_data.password) {
4700        formdata.password = form_data.password;
4701    }
4702
4703    passport.update(formdata, upp_page.change_email, locale)
4704    .fail(function(jqXHR, textStatus, error){
4705        $(document).trigger('rebuild');
4706
4707        if (jqXHR.status == 400) {
4708            var responseJSON = jqXHR.responseJSON;
4709
4710            if(responseJSON.errors)  {
4711                validator.showErrors(responseJSON.errors);
4712            }
4713        } else
4714        if (jqXHR.status == 401) {
4715            $(document).trigger('logged-out');
4716        } else
4717        if (jqXHR.status == 0) {
4718            showResult(_revalidate, 'warning');
4719        } else
4720        if (jqXHR.status == 409) {
4721            showResult(errors.duplicateemail, 'error');
4722        } else {
4723            showResult(errors.general, 'error');
4724        }
4725
4726    })
4727    .done(function(formdata, textStatus, jqXHR){
4728
4729         //log(jqXHR);
4730
4731
4732         if( $('#edit-form').hasClass('nc')) {
4733
4734             if(actoken) {
4735                 log(activateurl);
4736                 document.location = activateurl;
4737             } else {
4738                 sendVerify(upp_page.verify);
4739                 $('#edit-form').removeClass('nc');
4740                 showResult(_verifysent, 'success');
4741                 return;
4742             }
4743
4744         }
4745
4746
4747         if (_edit.hasClass('changed')) {
4748             _edit.removeClass('changed');
4749            //$('#password').val('');
4750
4751            if (jqXHR.status == 200) {
4752                showResult(_accountupdated, 'success');
4753            }
4754
4755            if (jqXHR.status == 202) {
4756                showResult(_emailupdatedstarted, 'warning');
4757            }
4758
4759
4760
4761        } else {
4762            showResult(_nochanges, 'info');
4763        }
4764
4765        if(formdata.password) {
4766
4767            uppLogin(formdata.email, formdata.password).done(function () {
4768              //document.location.href = upp_page.dashboard;
4769              $(document).trigger('rebuild');
4770              $('#password').val('');
4771          });
4772
4773        } else {
4774            $(document).trigger('rebuild');
4775        }
4776
4777    })
4778
4779}
4780
4781
4782function completeForms(data) {
4783
4784    var nb = 0;
4785    var ng = 0;
4786
4787    $('input[data-field], select[data-field]').each(function(){
4788
4789        var el = $(this);
4790        var field = el.attr('data-field');
4791        var val = data[field];
4792
4793        if(field == 'birthday') {
4794            if(val) { setDateFromISO('#birthday', val); } else { nb = 1; }
4795            return;
4796        }
4797
4798
4799        if(field == 'homeevent') {
4800
4801        getEventJSON()
4802        .done(function(data) {
4803            $.each( data, function( key, v ) {
4804
4805                if ( !v.web ) {
4806                    return;
4807                }
4808
4809                if(val == v.passport.subscription_code) {
4810                    el.val(`${v.type} ${v.title}`);
4811                }
4812
4813            });
4814        });
4815
4816        return;
4817    }
4818
4819    if (field == 'gender') {
4820
4821        if (val) {
4822            $('#gender').val(val);
4823        } else {
4824            ng = 1;
4825        }
4826
4827    } else {
4828
4829        el.val(val);
4830
4831    }
4832
4833});
4834
4835  // if dob or gender not completed
4836  if(ng || nb) {
4837      showResult(errors.pnc, 'warning');
4838      $('#edit-form').addClass('nc');
4839      if(nb) {
4840          $('#birthday').addClass('error');
4841      }
4842      if(ng) {
4843          $('li.gender select').after('<label id="gender-error" class="error" for="gender">Please select a gender option.</label>');
4844      }
4845  }
4846
4847}
4848
4849
4850
4851$(document).on('guestview', function () {
4852    $('#guestinfo').remove();
4853
4854    if ( !!$('.uppprivate').length) {
4855
4856        $('#uppcontent article').hide();
4857        $('#ppnav, .ptab, .dashboard .guesthide').fadeOut(300);
4858        $('#uppcontent').after(guestinfo);
4859
4860        setTimeout(function() {
4861            $('.status-bar .fill')
4862                .css({'width':'0px'})
4863                .html('');
4864            $('#ledger').html('');
4865            $('#points-ledger tbody').html('');
4866        },500);
4867
4868    }
4869    else {
4870        setTimeout(function() {
4871            $('#uppcontent').fadeTo(300,1);
4872            _ppprotect.fadeTo(300,1);
4873        },250);
4874
4875        var passedevent = getUrlParam('event');
4876        if(passedevent && $('#updates-guest').length ) {
4877            $('#updates-guest').fadeIn(300);
4878        }
4879    }
4880});
4881
4882$(document).on('maintenance', function () {
4883    if ( !!$('#uppcontent').length) {
4884        //$(document).trigger('logged-out');
4885        showResult(_maintenance, 'warning');
4886        showResult(_maintenance, 'warning');
4887    }
4888});
4889
4890function lostPost() {
4891    _lost.validate({
4892        submitHandler: function(form) {
4893            lostPassword(form);
4894        }
4895    });
4896}
4897
4898function lostPassword() {
4899    var email = $('#main #lostemail').val();
4900    var locale = $('#locale').val();
4901
4902    return passport.sendReset(email, upp_page.reset_password, upp_page.signup, locale)
4903    .fail(function(jqXHR, textStatus, error){
4904        $(document).trigger('rebuild');
4905        if (jqXHR.status == 401) {
4906            //$(document).trigger('logged-out');
4907            showResult(_error, 'error');
4908        } else if (jqXHR.status == 409) {
4909            showResult(errors.duplicateemail, 'error');
4910        } else {
4911            showResult(errors.general, 'error');
4912        }
4913    })
4914    .done(function(data, textStatus, jqXHR){
4915        if (jqXHR.status == 401) {
4916            showResult(errors.general, 'error');
4917        } else {
4918            showResult(_passwordresetsent, 'success', { duration: 4000 });
4919        }
4920
4921        $(document).trigger('rebuild');
4922
4923    })
4924
4925}
4926
4927function resetPost() {
4928    _reset.validate({
4929        rules: {
4930            newpassword: {
4931                required: true,
4932                minlength: 8
4933            }
4934        },
4935        messages: {
4936            newpassword: {
4937                minlength: errors.password
4938            }
4939        },
4940        showErrors: function(errorMap, errorList) {
4941            $.each(errorList, function() {
4942                showResult(this.message, 'error');
4943            });
4944            this.defaultShowErrors();
4945        },
4946        submitHandler: function(form) {
4947            resetPassword(form);
4948        }
4949    });
4950
4951}
4952
4953function resetPassword(form) {
4954    let form_data = Object.fromEntries(new FormData(form).entries());
4955
4956    let token = form_data.token;
4957    let email = form_data.updateemail;
4958    let password = form_data.newpassword;
4959    let locale = form_data.locale;
4960
4961    return passport.processReset(token, email, password, upp_page.dashboard, locale)
4962    .fail(function(jqXHR, textStatus, error){
4963        $(document).trigger('rebuild');
4964        if (jqXHR.status == 401) {
4965                  //$(document).trigger('logged-out');
4966                  showResult(errors.general, 'error');
4967              } else if (jqXHR.status == 409) {
4968                  showResult(errors.duplicateemail, 'error');
4969              } else {
4970                  showResult(errors.reset, 'error');
4971              }
4972          })
4973    .done(function(data, textStatus, jqXHR){
4974        showResult(_passwordresetsuccess, 'success', { duration: 8
4974000 });
4975        setTimeout(function() {
4976            passportRedirect();
4977        }, 2000);
4978    });
4979}
4980
4981
4982
4983function loginPost(data) {
4984    _login.validate({
4985        submitHandler: function(form) {
4986            login(form);
4987        }
4988    });
4989}
4990
4991function login(form) {
4992    let form_data = Object.fromEntries(new FormData(form).entries());
4993
4994    uppLogin(form_data.loginemail, form_data.loginpassword)
4995    .done(function () {
4996        passportRedirect();
4997    });
4998}
4999
5000function uppLogin(email,password) {
5001    hideResult();
5002    return passport.login(email,password)
5003    .fail(function(jqXHR, textStatus, error){
5004        $(document).trigger('rebuild');
5005        if (jqXHR.status == 401) {
5006                    //$(document).trigger('logged-out');
5007                    showResult(errors.loginfail, 'error');
5008                } else if (jqXHR.status == 409) {
5009                    showResult(errors.duplicateemail, 'error');
5010                } else {
5011                    showResult(errors.general, 'error');
5012                }
5013            })
5014    .done(function(data, textStatus, jqXHR){
5015        window.dataLayer = window.dataLayer || [];
5016        window.dataLayer.push({
5017            'event': 'login',
5018            'method': 'passport'
5019        });
5020        setTimeout(function(){
5021            showResult(_signedin, 'success');
5022        }, 50);
5023
5024        $(document).trigger('rebuild');
5025    });
5026}
5027
5028$(document).on('click', '.upplogout', function(e){
5029    e.preventDefault();
5030    setTimeout(function(){
5031        passport.logout()
5032            .always(function(){
5033                $(document)
5034                    .trigger('logged-out')
5035                    .trigger('rebuild');
5036            });
5037    }, 300);
5038});
5039
5040$(document).on('logged-in', function(event,passport){
5041    // always fade in uppcontent wrapper on logged in
5042    setTimeout(function() { $('#uppcontent').fadeTo(300,1); },250);
5043    if ( !! $('#guestinfo').length) {
5044        $('#guestinfo').remove();
5045    }
5046
5047    $('#upp-header:not(.logged-in)')
5048        .addClass('logged-in')
5049        .removeClass('logged-out')
5050        .hide()
5051        .html(`<ul>${header_html}</ul>`)
5052        .delay(100)
5053        .fadeIn(300);
5054
5055    $('#upp-footer:not(.logged-in)')
5056        .addClass('logged-in')
5057        .removeClass('logged-out')
5058        .hide()
5059        .html(`<ul>${footer_html}</ul>`)
5060        .delay(100)
5061        .fadeIn(300);
5062
5063    fillData(passport);
5064
5065    $('#mnav-main').find('.upplink').remove();
5066
5067    $('#mnav-main').append(`<li class="upplink"><div class="lbreak3 op50" style="position:relative; top:10px;"></div><a><img width="100" alt="Ultra Passport" src="${upp_assets.images.logo}"></a></li>`);
5068    $('#mnav-main').append(`<li class="upplink"><a href="${upp_page.events}">${_events}</a></li>`);
5069    $('#mnav-main').append(`<li class="upplink"><a href="${upp_page.updates}">${_updates}</a></li>`);
5070    $('#mnav-main').append(`<li class="upplink"><a href="${upp_page.dashboard}"><strong>${_mypassport}</strong></a></li>`);
5071    $('#mnav-main').append(`<li class="upplink"><a href="${upp_page.login}" class="upplogout"><strong>${_signout}</strong></a></li>`);
5072
5073    $('#mnav .tiny-hide').removeClass('tiny-hide');
5074
5075    $('#subscriptions.guest').removeClass('guest');
5076    $('#all-events.guest').removeClass('guest');
5077    $('#allbtns').removeClass('hide');
5078    $('#uppcontent, #uppcontent article').fadeIn(300);
5079    $('#pp-footer .fdates .ppstart').hide();
5080
5081    if( !!$('.pphome').length ) {
5082        window.location.href = upp_page.dashboard;
5083    }
5084
5085    if ( !! $('#guest-activate').length) {
5086        if ( passport.wristbands.length ) {
5087            window.location.href = ultra_settings.site_url + '/activate/form';
5088        }
5089    }
5090
5091    setTimeout(function() {
5092        modalClose('#updates-guest');
5093        if(registration_notice || local_registration) {
5094            let alreadyregistered = _.some(passport.registrations, function(registration) {
5095                return registration.code === regcode;
5096            });
5097
5098            if(!alreadyregistered && !_verify.length) {
5099                showResult($('#all-events').length ? _globalnotice2 : _globalnotice, 'info');
5100            }
5101        }
5102    }, 500);
5103    window.dataLayer = window.dataLayer || [];
5104    window.dataLayer.push({
5105        'user_id': String(passport.id)
5106    });
5107    // TODO: Drop 'setUserID' once GTM config reads user_id from data layer directly.
5108    window.dataLayer.push({
5109        'event': 'setUserID',
5110        'userID': String(passport.id),
5111        'user_id': String(passport.id)
5112    });
5113
5114    $('body')
5115        .removeClass('upp-guest upp-pending upp-active')
5116        .addClass(passport.status === 'active' ? 'upp-active' : 'upp-pending');
5117
5118    $(document).trigger('after-login');
5119});
5120
5121$(document).on('after-login', function() {
5122    // If we're on the zoho desk login page, get a zoho desk token and redirect back to zoho desk with the provided serviceurl.
5123    let serviceUrl = getUrlParam('serviceurl');
5124    if (serviceUrl) {
5125        console.log(passport.generateZohoDeskToken(serviceUrl));
5126    }
5127
5128    let redirect = getUrlParam('redirect');
5129    if (redirect) {
5130        passportRedirect();
5131    }
5132})
5133
5134$(document).on('logged-out', function(){
5135    if(local_registration) {
5136        if( $('#all-events').length) {
5137            showResult(_globalnotice2, 'info');
5138        } else {
5139            showResult(_globalnotice, 'info');
5140        }
5141    }
5142
5143    $('body')
5144        .removeClass('upp-pending upp-active')
5145        .addClass('upp-guest');
5146
5147    _allevents
5148        .addClass('guest')
5149        .find('a.confirm').remove();
5150
5151    $('#upp-header:not(.logged-out)')
5152        .removeClass('logged-in')
5153        .addClass('logged-out')
5154        .hide()
5155        .html(`<ul>${header_html_guest}</ul>`)
5156        .delay(100)
5157        .fadeIn(300);
5158
5159    $('#upp-footer:not(.logged-out)')
5160        .removeClass('logged-in')
5161        .addClass('logged-out')
5162        .hide()
5163        .html(`<ul>${footer_html_guest}</ul>`)
5164        .delay(100)
5165        .fadeIn(300);
5166
5167    $('.ppf form').on('submit', function(e) {
5168        e.preventDefault();
5169    }).validate({
5170        submitHandler: function(form) {
5171            leadForm(form);
5172        }
5173    });
5174
5175    $('#mnav-main').find('.upplink').remove();
5176
5177    $('#mnav-main').append(`<li class="upplink"><div class="lbreak3 op50" style="position:relative; top:10px;"></div><a><img width="100" alt="Ultra Passport" src="${upp_assets.images.logo}"></a></li>`);
5178    $('#mnav-main').append(`<li class="upplink"><a href="${upp_page.events}">${_events}</a></li>`);
5179    $('#mnav-main').append(`<li class="upplink"><a href="${upp_page.updates}">${_updates}</a></li>`);
5180    $('#mnav-main').append(`<li class="upplink signupm"><a href="${upp_page.signup}"><strong>${_signuptext}</strong></a></li>`);
5181    $('#mnav-main').append(`<li class="upplink loginh"><a href="${upp_page.login}"><strong>${_signin}</strong></a></li>`);
5182
5183    $('#pp-footer .fdates .ppstart').show();
5184
5185    $('#all-events')
5186        .removeClass('pending')
5187        .addClass('guest');
5188
5189    $('#subscriptions').addClass('guest');
5190    $('#allbtns').addClass('hide');
5191    $('#dashboard').fadeOut(300);
5192
5193    $('.pending-text, .register-text').hide();
5194    $('.guest-text').show();
5195
5196    setTimeout(function() {
5197        if(registration_notice) {
5198            if( $('#all-events').length || $('#tickets-app').length ) {
5199                showResult(_globalnotice2, 'info');
5200            }
5201
5202            if( $('#manage-updates').length || $('.home-slider').length ) {
5203                showResult(_globalnotice, 'info');
5204            }
5205        }
5206    }, 500);
5207
5208    if ( !! $('#activate-form').length) {
5209        showResult('You must have an Ultra Passport account in order to activate your wristband.', 'info');
5210        $('#activate-form').find('.guest').slideDown(300);
5211        $('#activate-form').find('ol').slideUp(300);
5212        $('#successbtn').remove();
5213    }
5214});
5215
5216
5217function leadForm() {
5218    //var email = $('#emailaddress').val();
5219
5220    //$('#upp-footer form button').addClass('working');
5221    //$('#upp-footer form input').slideUp(300);
5222
5223    $('.signupm>a').trigger('click');
5224    //$('#email').val(email);
5225    //setTimeout(function(){
5226      //document.location.href = (upp_page.signup+'/?e='+email);
5227  //}, 2000);
5228
5229/*
5230  passport.sendLead(email,'unknown',null, ultra_settings.site_url)
5231    .fail(function(jqXHR, textStatus, error){
5232        $(document).trigger('rebuild');
5233        if (jqXHR.status == 401) {
5234          //$(document).trigger('logged-out');
5235          showResult('Error', 'error');
5236        } else if (jqXHR.status == 409) {
5237          showResult('Duplicate Email', 'error');
5238        } else {
5239          showResult('Something went wrong.', 'error');
5240        }
5241    })
5242    .done(function(data, textStatus, jqXHR){
5243
5244      $('#upp-footer form button').addClass('working');
5245      $('#upp-footer form input').slideUp(300);
5246
5247      setTimeout(function(){
5248        document.location.href = (upp_page.signup+'/?e='+email);
5249      }, 2000);
5250
5251  })*/
5252
5253}
5254
5255function autofill() {
5256
5257    if (devmode) {
5258        $('body').append('<a class="autofiller right hide">Autofill</a>');
5259
5260        $('.autofiller').on('click', function(){
5261
5262            var randomer = Math.floor((Math.random() * 1000) + 1);
5263
5264            $('#signup-form input#firstname').val('John');
5265            $('#signup-form input#lastname').val('Doe');
5266            $('#signup-form input#password').val('testertest');
5267            $('#signup-form input#email').val('gg+'+randomer+'@ultra.us');
5268            $('#signup-form #birthday').val('04/24/1980');
5269            $('#signup-form select#country').val('US');
5270            $('#signup-form select#homeevent').val('miami');
5271            $('#signup-form select#homeevent-signup').val('miami');
5272            $('#signup-form #gender').val('male');
5273            $('#signup-form input#accept_terms').prop('checked', true);
5274
5275        })
5276
5277    //setTimeout(function() { $('.autofiller').trigger('click'); }, 500)
5278
5279}
5280
5281}
5282
5283jQuery(function($) {
5284
5285    passport.configure({url: ultra_settings.endpoints.passport_url});
5286
5287    $(document).on('rebuild', function () {
5288        // Grab the Passport JSON
5289        var passportInfoAJAX = passport.info();
5290
5291        // Add login status HTML
5292        passportInfoAJAX.done(function (data, textStatus, jqXHR) {
5293            $(document).trigger('logged-in', [data]);
5294
5295        });
5296        passportInfoAJAX.fail(function (jqXHR, textStatus, error) {
5297            if (jqXHR.status == 401) {
5298                $(document).trigger('logged-out');
5299            } else {
5300                $(document).trigger('logged-error');
5301                log('error');
5302                $(document).trigger('maintenance');
5303                log('Ultra Passport Maintenance Mode');
5304            }
5305
5306            $(document).trigger('guestview');
5307
5308        });
5309
5310        if (loadEvents) {
5311            // Grab the events JSON
5312            var eventsAJAX = getEventJSON();
5313            $(document).trigger('rebuild-page', [eventsAJAX, passportInfoAJAX]);
5314        }
5315
5316    });
5317
5318    // Unit Tests
5319    if (!! _ut.length) {
5320        unitTests();
5321    }
5322
5323    if (!! _newpoints.length) {
5324        //combineDates();
5325        $(document).on('logged-in', function(event,passport){
5326            newPoints(passport);
5327        });
5328    }
5329    if (!! _signup.length) {
5330        //combineDates();
5331        validate();
5332        createPost();
5333        fillParams();
5334        autofill();
5335    }
5336
5337    if (!! _login.length) {
5338        validate();
5339        loginPost(passport);
5340        completeForms(passport);
5341    }
5342
5343    if (!! _lost.length) {
5344        validate();
5345        lostPost();
5346    }
5347    if (!! _betaform.length) {
5348        betaSignup(passport);
5349    }
5350
5351    if (!! _reset.length) {
5352        fillParams();
5353        resetPost();
5354    }
5355
5356    if (!! _verify.length) {
5357        validate();
5358        fillParams();
5359        postProcessVerify();
5360        _verify.trigger('submit');
5361    }
5362
5363    if (!! _changeemail.length) {
5364        fillParams();
5365        processChangeEmailForm(passport);
5366        _changeemail.trigger('submit');
5367    }
5368
5369    if (!! _allevents.length) {
5370        loadEvents = true;
5371        $('body').append(registrationModal);
5372        $('body').append(updatesModal);
5373        modalClose('#updates-guest');
5374        loadRegistrationPage('#all-events', '#registration-confirm', '.events-nav');
5375    }
5376
5377    if (!! _subscriptions.length) {
5378        loadEvents = true;
5379        $('body').append(updatesModal);
5380        loadSubscriptionPage('#subscriptions', '#updates-guest');
5381        modalClose('#updates-guest');
5382        $(document).on('logged-in', function(event,passport){
5383            registrationNotice(passport);
5384        });
5385    }
5386
5387    if (!! _dashboard.length) {
5388        $(document).on('logged-in', function(event,passport){
5389            dashboard(passport);
5390            registrationNotice(passport);
5391        });
5392    }
5393
5394    if (!! _edit.length) {
5395        $(document).on('logged-in', function(event,passport){
5396            //combineDates();
5397            completeForms(passport);
5398            updatePost(passport);
5399            editLoad(passport);
5400            accountDeleteForm();
5401            _edit.change(function(e) {
5402                _edit.addClass('changed');
5403            });
5404        });
5405    }
5406
5407    if (!! _ticketspage.length || !!$('.ppgs').length) {
5408        $('body').append(updatesModal);
5409        modalClose('#updates-guest');
5410        $('body').append(registrationModal);
5411        modalClose('#registration-confirm');
5412        $('body').append(waitlistModal);
5413        modalClose('#waitlist-confirm');
5414    }
5415
5416    if( !!_ppprotect.length) {
5417        //$('.signupbtn').trigger('click');
5418    }
5419
5420    if( !! $('#activate-form').length ) {
5421        activatePost();
5422        $(document).on('logged-in', function(event,passport){
5423            activateExists(passport);
5424        });
5425    }
5426
5427    if( modallogin ) {
5428        accountmodals();
5429    }
5430
5431    if( !! $('.ppgs').length ) {
5432        passportGlobalSubscribe();
5433        $(document).on('logged-in', function(event,passport){
5434            passportGlobalSubscribeFill(passport);
5435        });
5436    }
5437
5438    // Start the Application
5439    $(document).trigger('rebuild');
5440
5441    setTimeout(function(){
5442
5443        if(window.location.hash == '#signup') {
5444            $(".signupm>a").trigger('click');
5445        }
5446
5447    }, 500);
5448
5449});
5450
5451
5452(function ($) {
5453
5454    $(document).on('click', '.sa2', function () {
5455        var el = $(this);
5456
5457        el.addClass('registering');
5458        $('.sa1').trigger('click');
5459
5460    });
5461
5462    var buildHtml = function (data) {
5463        var defaultItem = {
5464            url: '',
5465            title: '',
5466            white_logo: '',
5467            venue: '',
5468            city: '',
5469            country: '',
5470            register_status: '',
5471            on_sale_link: '',
5472            registration_title: '',
5473            registration_code: '',
5474            registration_notice: '',
5475            registration_types: '',
5476            subscription_code: ''
5477        };
5478
5479        return _(data)
5480            .filter({'visibility': {'events': true}})
5481            .map(function(val) {
5482                val = $.extend({}, defaultItem, val);
5483
5484                var rtypes = false;
5485
5486                var rtypeshtml =
5487                    _(val.passport.registration_types)
5488                    .filter(item => item.locale === pplang)
5489                    .map(value => {
5490                        rtypes = true;
5491                        return `
5492                        <li class="mb25">
5493                            <p>${value.info}</p>
5494                            <a data-regcode="${value.code}" class="btn-main aqua-btn btn-lg mb20">${value.type} <span class="fas fa-chevron-right"></span></a>
5495                        </li>`;
5496
5497                    })
5498                    .join('');
5499
5500                var location_label = val.passport.location_label;
5501                var location = val.locations[0];
5502
5503                if (location) {
5504                    if (location_label) {
5505                        location_label += ` &mdash;`;
5506                    }
5507                    if (location.venue) {
5508                        location_label += ` ${location.venue} &mdash;`;
5509                    }
5510                    if (location.city) {
5511                        location_label += ` ${location.city},`;
5512                    }
5513                    if (location.country) {
5514                        location_label += ` ${location.country}`;
5515                    }
5516                }
5517
5518                let buttonMap = {
5519                    'Get Updates': {
5520                        attributes: {
5521                            class: ['outline-btn', 'get-updates'],
5522                            'data-updates': val.passport.subscription_code,
5523                        },
5524                        content: `${_rbtnupdates} <span class="fas fa-chevron-right"></span>`,
5525                    },
5526                    'On Sale': {
5527                        attributes: {
5528                            href: val.on_sale_link,
5529                            target: '_blank',
5530                            class: ['on-sale', 'gray-btn'],
5531                        },
5532                        content: `${_rbtnbuy} <span class="fas fa-chevron-right"></span>`,
5533                    },
5534                    'Third Party Registration': {
5535                        attributes: {
5536                            href: val.on_sale_link,
5537                            target: '_blank',
5538                            class: ['register2', upp_assets.buttons.registration_btn, 'tprfill'],
5539                        },
5540                        content: `${_rbtnregister} <span class="fas fa-chevron-right"></span>`,
5541                    },
5542                    'Registration Available': {
5543                        attributes: {
5544                            class: ['register', upp_assets.buttons.registration_btn],
5545                            'data-regtypes': rtypes,
5546                            'data-regurl': val.on_sale_link,
5547                            'data-regnotice': val.passport.registration_notice,
5548                            'data-regcode': val.passport.registration_code,
5549                            'data-regtitle': val.passport.registration_title,
5550                        },
5551                        content: `${_rbtnregister} <span class="fas fa-chevron-right"></span>`,
5552                    },
5553                    'Closed': {
5554                        attributes: {
5555                            class: ['disabled', 'outline-btn'],
5556                            'data-regtypes': rtypes,
5557                            'data-regurl': val.on_sale_link,
5558                            'data-regnotice': val.passport.registration_notice,
5559                            'data-regcode': val.passport.registration_code,
5560                            'data-regtitle': val.passport.registration_title,
5561                        },
5562                        content: _rbtnclosed,
5563                    },
5564                    'Coming Soon': {
5565                        attributes: {
5566                            class: ['coming-soon', 'disabled'],
5567                        },
5568                        content: _rbtnsoon,
5569                    },
5570                    'Sold Out': {
5571                        attributes: {
5572                            class: ['sold-out', 'red-disabled'],
5573                        },
5574                        content: _rbtnsoldout,
5575                    },
5576
5577                };
5578
5579                let buttonEntry = buttonMap[val.passport.register_status] || {
5580                    attributes: { class: ['disabled'] },
5581                    content: val.passport.register_status || '',
5582                };
5583
5584                let buttonAttributes = mergeRecursive(
5585                    {
5586                        class: ['btn-main', 'btn-lg'],
5587                    },
5588                    buttonEntry.attributes
5589                );
5590
5591                buttonAttributes.class = buttonAttributes.class.join(' ');
5592
5593                let buttonContent = buttonEntry.content || '';
5594
5595                var buttonHTML = $('<a>').attr(buttonAttributes).html(buttonContent).prop('outerHTML');
5596
5597                var logoHTML = val.media.white_logo ? `<img src="${val.media.white_logo}" width="250" alt="${val.title}">` : val.title;
5598
5599                return `
5600                <article data-regitem="${val.passport.registration_code}" class="${val.type_key} ${convertToSlug(val.passport.register_status)}">
5601                    <a href="${val.url}" target="_blank" class="event">${logoHTML}</a>
5602                    <p class="details">
5603                        <img src="${upp_assets.images.map_pin}" alt="" width="10">
5604                        <span class="location">${location_label}</span> <span class="date">${val.date.label}</span> <span class="hide">${val.title} ${val.type_key}</span>
5605                    </p>
5606                    ${buttonHTML}
5607                    <div class="hide"><div class="types"><ul>${rtypeshtml}</ul></div></div>
5608                </article>`;
5609            })
5610            .join('');
5611    }
5612
5613    window.loadRegistrationPage = _.memoize(function (eventsContainer, modalContainer, eventsNav) {
5614        var $eventsContainer = $(eventsContainer);
5615        var $modalContainer = $(modalContainer);
5616        var _updatesGuest = $('#updates-guest');
5617
5618        $eventsContainer
5619            .on('click', 'a.register', function (e) {
5620                e.preventDefault();
5621                var el = $(this);
5622                var code = el.data('regcode');
5623                var title = el.data('regtitle');
5624                var types = el.data('regtypes');
5625                var regurl = el.data('regurl');
5626                var typeshtml = el.parent().find('.types').html();
5627
5628                if (!!$('#all-events.pending').length) {
5629                    el.addClass('registering');
5630                    showResult(_verifyemailregister, 'error');
5631                    $modalContainer.find('div.types-text, div.register-text, div.guest-text').hide();
5632                    $modalContainer.find('div.pending-text').show();
5633                    $('.btn-resend').on('click', function (e) {
5634                        e.preventDefault();
5635                        sendVerify(upp_page.verify);
5636                        showResult(_verifyemailregister, 'error');
5637                        $modalContainer.fadeOut(300);
5638                        showResult(_sendingverification, 'info');
5639                        setTimeout(function () {
5640                            showResult(_verifysent, 'success');
5641                            el.removeClass('registering');
5642                        }, 1500);
5643                    });
5644                }
5645                else if (!!$('#all-events.guest').length) {
5646                    el.addClass('registering');
5647                    $modalContainer.find('div.types-text, div.register-text, div.pending-text').hide();
5648                    $modalContainer.find('div.guest-text').show();
5649                }
5650                else {
5651                    el.addClass('registering');
5652                    $modalContainer.find('div.pending-text, div.guest-text').hide();
5653                    $modalContainer.find('div.register-text')
5654                        .find('a.confirm').remove().end()
5655                        .find('strong.regtitle').text(title);
5656
5657                    if (types) {
5658                        $modalContainer.find('div.register-text').hide();
5659                        $modalContainer.find('div.types-text').show();
5660                        $('.types-text .types').html(`<ul>${typeshtml}</ul>`);
5661                        $('.types-text .types>ul a').on('click', function (e) {
5662                            e.preventDefault();
5663                            var el = $(this);
5664                            var type = el.data('regcode');
5665                            $modalContainer.find('div.types-text').hide();
5666                            if (!$('.typesback').length) {
5667                                $modalContainer.find('div.register-text').find('.actions').prepend(`<a class="btn-main typesback mr25 ${upp_assets.buttons.outline_btn} btn-lg mb50" data-regcode="${code}"><span class="fas fa-chevron-left fa-sm"></span> ${_goback}</a>`);
5668                            }
5669
5670                            if (!$('a.confirm').length) {
5671                                $modalContainer.find('div.register-text').find('.actions').append(`<a class="btn-main ${upp_assets.buttons.primary_btn} btn-lg confirm mb50" data-regtype="${type}" data-regcode="${code}">${_confirmreg} <span class="fas fa-chevron-right"></span></a>`);
5672                            }
5673                            $modalContainer.find('div.register-text').show();
5674
5675                            $('.regtype').remove();
5676                            $('#confirm-info').append(`<li class="regtype">${_regtype}: <strong>${type}</strong></li>`)
5677                        });
5678
5679                    }
5680                    else {
5681                        $('.regtype').remove();
5682                        $('.typesback').remove();
5683                        $modalContainer.find('div.register-text')
5684                            .find('.actions')
5685                            .append(`<a class="btn-main ${upp_assets.buttons.primary_btn} btn-lg confirm mb50" data-regcode="${code}">${_confirmreg} <span class="fas fa-chevron-right"></span></a>`)
5686                            .end()
5687                            .show();
5688                    }
5689
5690                    var sharetitle = 'Register for tickets to ' + title;
5691                    var sharebuilder = socialShare(regurl, sharetitle, code);
5692
5693                    $('.eventregname').html(title);
5694                    $('#register-share .share').html(sharebuilder);
5695
5696                }
5697
5698                $modalContainer.fadeIn(300);
5699            }
5699).on('run-register', 'a.register', function (event, code, type, regaccept) {
5700            var el = $(this);
5701
5702            var autotype = el.data('autotype');
5703            if (autotype) {
5704                type = autotype;
5705            }
5706            var regdata = {
5707                source: document.location.hostname,
5708                type: type,
5709                accepted: regaccept,
5710            };
5711
5712            passport.register(code, regdata)
5713                .done(function (data, textStatus) {
5714                    var regdate = moment(data.created_at).format('MMMM Do, YYYY');
5715                    var regcode = data.regcode || '';
5716
5717                    // TODO: Drop 'Lead' once GTM trigger (52) and FB tag (28) are cleaned up.
5718                    window.dataLayer = window.dataLayer || [];
5719                    window.dataLayer.push({
5720                        'event': 'Lead',
5721                        'leadEventId': data.event,
5722                        'leadEventInstance': data.instance,
5723                        'leadEventType': data.type,
5724                    });
5725                    window.dataLayer.push({
5726                        'event': 'generate_lead',
5727                        'lead_source': 'registration',
5728                        'currency': 'USD',
5729                        'value': 0
5730                    });
5731
5732                    el.trigger('mark-success', [data, textStatus]);
5733
5734                    setTimeout(function () {
5735                        var title = $('.register-text').find('strong.regtitle').text();
5736                        //$eventsContainer.find('article[data-regitem="'+code+'"]').find('.regcode').html(regcode);
5737                        $eventsContainer.find(`article[data-regitem="${code}"]`).find('.regdate').html(regdate);
5738                        $eventsContainer.find(`article[data-regitem="${code}"]`).find('.regtype').html(regdata.type);
5739                        showResult(title + ' ' + _registersuccess, 'success');
5740                        //scrollToTop();
5741                    }, 1500);
5742
5743                })
5744                .fail(function (jqXHR, textStatus, error) {
5745                    el.trigger('mark-fail', [jqXHR, textStatus, error]);
5746                });
5747        }).on('mark-success', 'a.register', function (e) {
5748            var el = $(this);
5749            var datacode = el.data('regcode');
5750            var datanotice = el.data('regnotice');
5751            var title = el.data('regtitle');
5752            var regurl = el.data('regurl');
5753            var sharetitle = `Register for tickets to ${title}`;
5754            var sharebuilder = socialShare(regurl, sharetitle, datacode);
5755
5756            el.html(`${_regbtnhtml} <span class="check">&#x2713;</span>`)
5757                .addClass('registering');
5758            el.parent().append(regHTML);
5759
5760            el.html(`${_regbtnhtml} <span class="check">&#x2713;</span>`)
5761                .addClass('registered')
5762                .removeClass('register')
5763                .removeClass('registering');
5764
5765            if (datanotice) {
5766                if (datanotice == 2) {
5767                    el.parent().find('.regnotice').text(_regaccepted2_2);
5768                }
5769                else if (datanotice == 3) {
5770                    el.parent().find('.regnotice').text(_regaccepted2_3);
5771                }
5772                else if (datanotice == 4) {
5773                    el.parent().find('.regnotice').text(_regaccepted2_4);
5774                }
5775
5776                setTimeout(function () {
5777                    $(`article[data-regitem="${datacode}"] .registered-summary .right`).html(`<div class="events-share"><strong>Share with your friends:</strong>${sharebuilder}</div>`);
5778                    $('.registered-summary').slideDown(300);
5779                }, 500);
5780            }
5781
5782
5783        })
5784            .on('mark-success', 'a.closed', function (e) {
5785                var el = $(this);
5786                var datacode = el.data('regcode');
5787                var datanotice = el.data('regnotice');
5788                var title = el.data('regtitle');
5789                var regurl = el.data('regurl');
5790                var sharetitle = `Register for tickets to ${title}`;
5791                var sharebuilder = socialShare(regurl, sharetitle);
5792
5793                el.html(`${_regbtnhtml} <span class="check">&#x2713;</span>`)
5794                    .addClass('registering');
5795                el.parent().append(regHTML);
5796                setTimeout(function () {
5797
5798                    el.html(`${_regbtnhtml} <span class="check">&#x2713;</span>`)
5799                        .addClass('registered')
5800                        .removeClass('register registering');
5801
5802                    if (datanotice == 2) {
5803                        el.parent().find('.regnotice').text(_regaccepted2_2);
5804                    }
5805                    else if (datanotice == 3) {
5806                        el.parent().find('.regnotice').text(_regaccepted2_3);
5807                    }
5808
5809                    setTimeout(function () {
5810                        $(`article[data-regitem="${datacode}"] .registered-summary .right`).html(`<div class="events-share"><strong>Share with your friends:</strong>${sharebuilder}</div>`);
5811                        $('.registered-summary').slideDown(300);
5812                    }, 500);
5813
5814                }, 1500);
5815
5816            })
5817            .on('mark-fail', 'a.register', function (e) {
5818                var el = $(this);
5819                el.html(_regerror)
5820                    .addClass('error')
5821                    .removeClass('registering');
5822                setTimeout(function () {
5823                    el.html(_regerror2);
5824                    setTimeout(function () {
5825                        el.html(`${_regbtnhtml} <span class="fas fa-chevron-right"></span>`)
5826                            .removeClass('error');
5827                    }, 3000);
5828                }, 1500);
5829                log("Failed registering for " + el.data('regcode'));
5830            });
5831
5832        $modalContainer.on('click', 'a.confirm', function () {
5833            var code = $(this).data('regcode');
5834            var type = $(this).data('regtype');
5835
5836            var regaccept = getUrlParam('rcode');
5837
5838            if (readCookie('register')) {
5839                regaccept = readCookie('register');
5840            }
5841            setTimeout(function () {
5842                $('.rgbtn').trigger('click');
5843            }, 1000);
5844            $modalContainer.fadeOut(300);
5845            $eventsContainer.find(`a[data-regcode="${code}"]`).trigger('run-register', [code, type, regaccept]);
5846        });
5847
5848        $modalContainer.on('click', 'a.typesback', function () {
5849            $modalContainer.find('div.register-text').hide();
5850            $modalContainer.find('div.types-text').show();
5851        });
5852
5853        $modalContainer.on('click', '.md-close', function (e) {
5854            var $this = $(this);
5855            setTimeout(function () {
5856                $('a.registering')
5857                    .addClass('register')
5858                    .removeClass('registering');
5859            }, 1000)
5860            e.preventDefault();
5861            $this.parent().fadeOut(300);
5862        });
5863        $(document).on("keyup", function (event) {
5864            if (event.keyCode == 27 && !!$modalContainer.find('.md-close').length) {
5865                $modalContainer.find('.md-close').trigger('click');
5866            }
5867        });
5868
5869        $eventsContainer
5870            .on('click', 'a.get-updates', function (e) {
5871
5872                var el = $(this);
5873                var code = $(this).data('updates');
5874                e.preventDefault();
5875
5876                if (!!$('#all-events.pending').length) {
5877                    showResult(_verifyemailregister, 'error');
5878                    _updatesGuest.find('h1').html(_updatestextPending);
5879                    _updatesGuest.find('p').html(_emailverifyupdates);
5880                    _updatesGuest.find('div.guest-text .guest-text').hide();
5881                    _updatesGuest.find('div.guest-text .pending-text').show();
5882                    _updatesGuest.fadeIn(300);
5883
5884                    _updatesGuest.find('.btn-resend').on('click', function (e) {
5885                        e.preventDefault();
5886                        showResult(_verifyemailregister, 'error');
5887
5888                        _updatesGuest.fadeOut(300);
5889                        scrollToTop();
5890
5891                        showResult(_sendingverification, 'info');
5892                        setTimeout(function () {
5893                            showResult(_verifysent, 'success');
5894                        }, 3000);
5895                    })
5896                }
5897                else if (!!$('#all-events.guest').length) {
5898                    _updatesGuest.find('div.guest-text .guest-text').show();
5899                    _updatesGuest.find('div.guest-text .pending-text').hide();
5900                    _updatesGuest.find('h1').html(_updatestext1);
5901                    _updatesGuest.find('p').html(_agreesignup2);
5902                    _updatesGuest.fadeIn(300);
5903
5904                }
5905                else {
5906                    el.addClass('registering');
5907                    el.trigger('run-subscribe', [code]);
5908                }
5909            })
5910            .on('run-subscribe', 'a.get-updates', function (event, code) {
5911                var el = $(this);
5912                passport.subscribe(code)
5913                    .done(function (data, textStatus) {
5914                        el.trigger('mark-success', [data, textStatus]);
5915                    })
5916                    .fail(function (jqXHR, textStatus, error) {
5917                        el.trigger('mark-fail', [jqXHR, textStatus, error]);
5918                    });
5919            })
5920            .on('mark-success', 'a.get-updates', function (e, co
5920de) {
5921                var el = $(this);
5922                el.addClass('registering');
5923                setTimeout(function () {
5924                    el.html(_subscribed + ' <i class="fas fa-check"></i>')
5925                        .addClass('subscribed')
5926                        .removeClass('get-updates')
5927                        .removeClass('registering');
5928                }, 1000);
5929            })
5930            .on('mark-fail', 'a.get-updates', function (e, code) {
5931                var el = $(this);
5932                el.html(_regerror)
5933                    .addClass('error')
5934                    .removeClass('registering');
5935
5936                setTimeout(function () {
5937                    el.html(_regerror2);
5938                    setTimeout(function () {
5939                        el.html(_rbtnupdates + ' <span class="fas fa-chevron-right"></span>')
5940                            .removeClass('error');
5941                    }, 3000);
5942                }, 1500);
5943
5944                log("Failed subscribing to " + code);
5945            });
5946
5947        $(document).on('rebuild-page', function (event, eventsPromise, passportPromise) {
5948            eventsPromise.done(function (data) {
5949                $eventsContainer.html(buildHtml(data));
5950
5951                var autotype = getUrlParam('type');
5952
5953                if (autotype) {
5954                    autotype = autotype.replace('week', 'Week ');
5955                }
5956                $('article[data-regitem="ibiza-2018"] a.register').attr('data-autotype', autotype);
5957
5958                // Sort events list by class name
5959                if (sortbytype) {
5960                    var tasks = document.querySelector('#all-events'),
5961                        items = document.querySelectorAll('#all-events > article'),
5962                        classlist = ['register', 'register2', 'closed', 'on-sale', 'get-updates', 'coming-soon', 'sold-out'];
5963                    for (var i = 0, arr = classlist; i < arr.length; i++) {
5964                        for (var j = 0; j < items.length; j++) {
5965                            if (~(" " + items[j].className + " ").indexOf(" " + arr[i] + " ")) {
5966                                tasks.appendChild(items[j]);
5967                            }
5968                        }
5969                    }
5970                }
5971
5972                if (window.location.hash) {
5973                    var filter = window.location.hash.substring(1);
5974                    if (filter == 'all') {
5975                        return;
5976                    }
5977                    filter = filter.replace('-', ' ');
5978                    $('#event-search').val(filter);
5979                    updateList();
5980                }
5981
5982
5983            });
5984
5985            // Update the registration page selections
5986            $.when(eventsPromise, passportPromise).done(function (events, passport) {
5987
5988                var fname = passport[0].firstname;
5989                var lname = passport[0].lastname;
5990                var fillemail = passport[0].email;
5991
5992                $('.tprfill').each(function (index) {
5993                    var href = $(this).attr('href');
5994                    href = `${href}?first=${fname}&last=${lname}&email=${fillemail}`;
5995                    $(this).attr('href', href);
5996                    //log(href);
5997                });
5998
5999                //add restriction message and register prevent action
6000                var ppstatus = passport[0].status;
6001                $eventsContainer.removeClass('guest')
6002                if (ppstatus == 'active') {
6003                    registrationNotice(passport[0]);
6004                }
6005                else {
6006                    showResult(_emailverifydashboard, 'warning');
6007                    _allevents.addClass('pending');
6008                }
6009
6010                var level = passport[0].points_level;
6011
6012                //log(level);
6013
6014                function allowPurchase(startdate, level) {
6015                    startdate = moment(startdate);
6016                    if (level == 'gold') {
6017                        return startdate.subtract(1, "hour");
6018                    }
6019                    else if (level == 'platinum') {
6020                        return startdate.subtract(2, "hour");
6021                    }
6022                    else {
6023                        return startdate;
6024                    }
6025                }
6026
6027
6028                $.each(passport[0].registrations, function (index, registration) {
6029                    var registrationCode = `${registration.event}-${registration.instance}`;
6030                    $eventsContainer.find('article[data-regitem="' + registrationCode + '"]').each(function () {
6031
6032                        var el = $(this);
6033
6034                        // log(registration);
6035                        var regdate = moment(registration.created_at).format('MMMM Do, YYYY');
6036                        var regcode = registration.regcode;
6037
6038                        //var regcode = registration.regcode;
6039                        el.find('a.register').trigger('mark-success');
6040                        el.find('a.closed').trigger('mark-success');
6041                        el.find('a.closed').removeClass('disabled');
6042                        el.find('.regdate').html(regdate);
6043                        //el.find('.regcode').html(regcode);
6044                        el.find('.regtype').html(registration.type);
6045
6046                    });
6047                });
6048
6049
6050                //$('a.register:last').trigger('click');
6051                $.each(passport[0].subscriptions, function (index, subscription) {
6052                    $eventsContainer.find('a.get-updates').each(function () {
6053                        var el = $(this);
6054                        var code = el.data('updates');
6055                        var subcode = passport[0].subscriptions[index].code;
6056
6057                        if (code == subcode) {
6058                            el.trigger('mark-success');
6059                        }
6060                    });
6061                });
6062
6063                if (window.location.hash) {
6064                    var filter = window.location.hash.substring(1);
6065                    if (filter == 'all') {
6066                        return;
6067                    }
6068                    filter = filter.replace('-', ' ');
6069                    $('#event-search').val(filter);
6070                    updateList();
6071                }
6072
6073            });
6074        });
6075
6076
6077        if (!!_eventsearch.length) {
6078
6079            $.extend($.expr[":"], {
6080                "containsIN": function (elem, i, match, array) {
6081                    return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
6082                }
6083            });
6084
6085            var updateList = function () {
6086
6087                var allRows = _allevents.find('article');
6088                allRows.removeClass('hiddenRow');
6089                var clickedText = _eventsearch.val();
6090                var theCounter = 0;
6091
6092                allRows.each(function () {
6093                    //$(this).contains
6094                    if (!$(this).is(`:containsIN("${clickedText}")`)) {
6095                        $(this).addClass('hiddenRow');
6096                    }
6097                    else {
6098                        theCounter++;
6099                    }
6100                });
6101
6102                if (theCounter == 0) {
6103                    $('#noevents').fadeIn(300);
6104                }
6105                else {
6106                    $('#noevents').fadeOut(10);
6107                }
6108            }
6109
6110            updateList();
6111
6112            _eventsearch.on('keyup', function (e) {
6113                updateList();
6114                if (!$('a.all-events').hasClass('active')) {
6115                    $('a.all-events').trigger('click');
6116                }
6117            });
6118
6119            _eventsearch.on('blur', function (e) {
6120                updateList();
6121            });
6122        }
6123
6124        $('#noevents').fadeOut(10);
6125
6126        $('#events-nav a').on('click', function (e) {
6127            e.preventDefault();
6128
6129            var el = $(this);
6130
6131            if (el.hasClass('active') && !el.hasClass('all-events')) {
6132                $('a.all-events').trigger('click');
6133                return;
6134            }
6135
6136            try {
6137                window.location.hash = this.hash;
6138                //history.pushState(null, null, this.hash);
6139                $(`#upp${this.hash.substring(1)}`).fadeIn();
6140            }
6141            catch (error) {
6142                console.log(error);
6143            }
6144
6145            _eventsNav.find('a.active').removeClass('active');
6146            el.addClass('active');
6147
6148            var sorter = el.attr('data-sort');
6149            if (sorter != 'all') {
6150                _allevents.find(`article:not(.${sorter})`).slideUp(200);
6151                _allevents.find(`article.${sorter}`).fadeIn(300);
6152            }
6153            else {
6154                _allevents.find('article').fadeIn(300);
6155            }
6156
6157        });
6158    });
6159})(jQuery);
6160
6161(function ($) {
6162
6163    var buildHtml = function (data, filter) {
6164        filter = $.extend({'visibility': { 'updates': true }}, filter);
6165
6166        return _(data)
6167            .filter(filter)
6168            .sortBy('title')
6169            .map(function (val) {
6170                return `
6171                <li class="${val.passport.subscription_code}">
6172                    <input data-name="${val.title_label_short}" id="${val.passport.subscription_code}" name="subscriptions[]" value="${val.passport.subscription_code}" type="checkbox" class="tgl tgl-skewed" />
6173                    <label style="width: ${_lwidth}" data-tg-off="✕" data-tg-on="✔" for="${val.passport.subscription_code}" class="tgl-btn"></label>
6174                    <strong><img width="15" alt="${val.title_label_short} flag" src="${val.media.flag || ultra_settings.images.default_flag}" style="position:relative; top:2px;"> ${val.title_label_short}</strong>
6175                </li>`;
6176            })
6177            .join('')
6178    };
6179
6180    window.loadSubscriptionPage = _.memoize(function (subscriptionsContainer,modalContainer) {
6181        var subscriptionsContainer = $(subscriptionsContainer);
6182        var modalContainer = $(modalContainer);
6183
6184        subscriptionsContainer
6185        .on('click', 'input', function () {
6186
6187            if (!!$('#subscriptions.guest').length) {
6188                modalContainer.fadeIn(300);
6189                return false;
6190            } else {
6191
6192                if ( !! $('#subscriptions.pending').length ) {
6193                    showResult(_emailverifyupdates, 'info');
6194                    return false;
6195
6196                } else {
6197                    $(this).trigger(this.checked ? 'run-subscribe' : 'run-unsubscribe', [$(this).val()]);
6198                }
6199
6200            }
6201        })
6202        .on('click', 'li strong', function () {
6203                // Bind strong to toggle input for better UX
6204                $(this).siblings('input').trigger('click');
6205            })
6206        .on('set-value', 'input', function (event, subscribed) {
6207                // Event used to set subscribed/unsubscribed value for checkbox
6208                $(this).prop('checked', !!subscribed);
6209            })
6210        .on('run-subscribe', 'input', function (event, code) {
6211            var el = $(this);
6212            var text = $(this).data('name');
6213
6214            showResult(`${_updatessubsrcibe} ${text}`, 'success');
6215            passport.subscribe(code).always(function () {
6216                passport.subscriptions().done(function (data) {
6217                    var found = false;
6218                    $.each(data, function (index, item) {
6219                        if (item.code == code) {
6220                            found = true;
6221                                //log(_updatessubsrcibe, code);
6222                                return false;
6223                            }
6224                        });
6225                    el.trigger('set-value', found);
6226                });
6227            });
6228        })
6229        .on('run-unsubscribe', 'input', function (event, code) {
6230            var el = $(this);
6231            var text = $(this).data('name');
6232            showResult(`${_updatesunsubsrcibe} ${text}`, 'info');
6233            passport.unsubscribe(code).always(function () {
6234                passport.subscriptions().done(function (data) {
6235                    var found = false;
6236                    $.each(data, function (index, item) {
6237                        if (item.code == code) {
6238                            found = true;
6239                                //log(_updatesunsubsrcibe, code);
6240                                return false;
6241                            }
6242                        });
6243                    el.trigger('set-value', found);
6244                });
6245            });
6246        });
6247
6248        $('#subscribe-all').on('click', function () {
6249            // ALL ON BUTTON
6250            lis = subscriptionsContainer.find('li');
6251            li_count = lis.length;
6252            li_animation_time = 100;
6253            header_animation_time = li_count * li_animation_time;
6254
6255            lis.toArray().map(function (e) {
6256                return function () {
6257                    return $(e).find('input:not(:checked)').trigger('click').delay(li_animation_time).promise();
6258                };
6259            }).reduce(function (cur, next) {
6260                return cur.then(next);
6261            }, $().promise());
6262        });
6263
6264        $('#unsubscribe-all').on('click', function () {
6265            // ALL OFF BUTTON
6266            lis = subscriptionsContainer.find('li');
6267            li_count = lis.length;
6268            li_animation_time = 100;
6269            header_animation_time = li_count * li_animation_time;
6270
6271            lis.toArray().map(function (e) {
6272                return function () {
6273                    return $(e).find('input:checked').trigger('click').delay(li_animation_time).promise();
6274                };
6275            }).reduce(function (cur, next) {
6276                return cur.then(next);
6277            }, $().promise());
6278        });
6279
6280        $(document).on('rebuild-page', function (event, eventsPromise, passportPromise) {
6281
6282            eventsPromise.done(function (data) {
6283                subscriptionsContainer.find('.subscribe-list-ultra').html(buildHtml(data, {type_key: 'ultra'}));
6284                subscriptionsContainer.find('.subscribe-list-beach').html(buildHtml(data, {type_key: 'beach'}));
6285                subscriptionsContainer.find('.subscribe-list-rtu').html(buildHtml(data, {type_key: 'rtu'}));
6286                subscriptionsContainer.find('.subscribe-list-resistance').html(buildHtml(data, {type_key: 'resistance'}));
6287            });
6288
6289            // Update the subscription page selections
6290            $.when(eventsPromise, passportPromise).done(function (events, passport) {
6291
6292                var status = passport[0].status;
6293
6294                $.each(passport[0].subscriptions, function(index,subscription) {
6295                    subscriptionsContainer.find(`input[value="${subscription.code}"]`).each(function () {
6296                        var el = $(this);
6297                        var code = el.val();
6298                        el.trigger('set-value', [true]);
6299                    });
6300                });
6301
6302                if (status == 'active') {
6303
6304                    var countempties = $('#manage-updates input[type="checkbox"]:checked').length;
6305                    var counttotal = $('#manage-updates input[type="checkbox"]').length;
6306                    //log(countempties);
6307
6308                    if (countempties < counttotal ) {
6309                        //showResult(_moreupdates, 'info');
6310                    } else {
6311                        //showResult(_truefan, 'success');
6312                    }
6313
6314                    $('#allbtns').removeClass('hide');
6315
6316                } else {
6317                    showResult(_emailverifyupdates, 'warning');
6318                    _subscriptions.addClass('pending');
6319                }
6320
6321                var subscribeEvents = getUrlParam('event', true);
6322                if(subscribeEvents.length) {
6323                    $.each(subscribeEvents, function(key, subscribeEvent){
6324                        $('input[value="' + subscribeEvent + '"]:not(:checked)').trigger('click');
6325                    });
6326                }
6327            });
6328
6329        });
6330
6331    });
6332
6333})(jQuery);
6334
6335function passportGlobalSubscribe() {
6336
6337    $('.ppgs').each(function(){
6338        var el = $(this);
6339        var eventcode = $(this).data('event');
6340        //var text = $(this).data('text') || 'Get Updates';
6341
6342        el
6343        .on('click', function (e) {
6344            e.preventDefault();
6345            var el = $(this);
6346            var _updatesGuest = $('#updates-guest');
6347            if (!!$('body.upp-pending').length) {
6348                    //showResult(_updatestextPending, 'warning');
6349                    _updatesGuest.find('h1').html(_updatestextPending);
6350                    _updatesGuest.find('p').html(_emailverifyupdates);
6351                    _updatesGuest.find('div.guest-text .guest-text').hide();
6352                    _updatesGuest.find('div.guest-text .pending-text').show();
6353                    _updatesGuest.fadeIn(300);
6354                    _updatesGuest.find('.btn-resend').on('click', function (e) {
6355                        e.preventDefault();
6356                        _updatesGuest.fadeOut(300).promise().then(function () {
6357                            scrollToTop();
6358                            sendVerify(upp_page.verify, window.location.href);
6359                        });
6360                    });
6361                }
6362                else if (!!$('body.upp-guest').length) {
6363                    //showResult(_updatestext1, 'info');
6364                    var verifyRedirect = `${upp_page.updates}?${$.param({event: eventcode}, true)}`;
6365                    $('#signup-form').data('redirect', verifyRedirect);
6366                    $('#login-form').data('redirect', verifyRedirect);
6367                    _updatesGuest.find('div.guest-text .guest-text').show();
6368                    _updatesGuest.find('div.guest-text .pending-text').hide();
6369                    _updatesGuest.find('h1').html(_updatestext1);
6370                    _updatesGuest.find('p').html(_agreesignup2);
6371                    _updatesGuest.fadeIn(300);
6372                }
6373                else {
6374                    el.trigger('run-subscribe', eventcode);
6375                }
6376            })
6377        .on('run-subscribe', function (event, code) {
6378            var el = $(this);
6379            el.addClass('registering');
6380
6381            passport.subscribe(eventcode)
6382            .done(function (data, textStatus) {
6383                log('done');
6384                el.trigger('mark-success');
6385                showResult(`${_updatessubsrcibe} ${eventcode}`, 'success');
6386            })
6387            .fail(function (jqXHR, textStatus, error) {
6388                log('fail');
6389                el.trigger('mark-fail', [jqXHR, textStatus, error]);
6390            });
6391        })
6392        .on('mark-success', function (e, code) {
6393            var $this = $(this);
6394
6395            return $this
6396            .html(($this.data('subscribed') || _subscribed) + ' <i class="fas fa-check"></i>')
6397            .addClass('subscribed')
6398            .removeClass('get-updates')
6399            .removeClass('registering');
6400        })
6401        .on('mark-fail', function (e, code) {
6402            var $this = $(this);
6403
6404            return $this
6405            .html(_regerror)
6406            .addClass('error')
6407            .removeClass('registering')
6408            .delay(1500)
6409            .html(_regerror2)
6410            .delay(3000)
6411            .html($this.data('subscribe') || _subscribe)
6412            .removeClass('error')
6413            .promise().then(function () {
6414                showResult(sprintf(__('Failed subscribing to %s', 'ultra-2015'), eventcode), 'error');
6415            });
6416        });
6417
6418        $(document).on('logged-in', function (event, passport) {
6419            var subscription = passport.subscriptions.find(function (value) {
6420                return value.code == eventcode;
6421            });
6422            if (subscription !== undefined) {
6423                $('a.ppgs').trigger('mark-success');
6424            }
6425        });
6426
6427        $(document).on('logged-out', function (event, passport) {
6428            $('a.ppgs.subscribed').each(function () {
6429                var $this = $(this);
6430
6431                $this
6432                .removeClass('subscribed')
6433                .removeClass('registering')
6434                .addClass('get-updates')
6435                .html($this.data('subscribe') || _subscribe);
6436            })
6437
6438        });
6439
6440            /*el.wrap('<ul class="ppgs-wrap">');
6441            el.wrap('<li>');
6442            el.after('<ul><li class="sub-content"></li></ul>');
6443
6444            $.get( ultra_settings.endpoints.events_url, function() {})
6445            .done(function(data) {
6446                data = sortByTitle(data);
6447                $.each( data, function( key, val ) {
6448                    if(val.code == event) {
6449                        log(val);
6450                        var location_label = val.passport.location_label || '';
6451                        var location = val.locations[0] || 'TBD';
6452                        if(location){
6453                            if ( location.venue ) {
6454                                location.city = location.venue + ' &mdash; ' + location.city;
6455                            }
6456                            if ( location_label ) {
6457                                location.city = location_label + ' &mdash; ';
6458                            } else {
6459                                if(location.city) {
6460                                    location.city = location.city + ', ';
6461                                }
6462                            }
6463                            location = location.city + location.country;
6464                        }
6465
6466                        //<span class="location">'+location+'</span><br>\
6467                        var html = '\
6468                        <article>\
6469                        <a href="'+val.url+'" target="_blank" class="logo">\
6470                        <img src="'+val.media.white_logo+'" alt="'+val.title+'" width="180">\
6471                        </a>\
6472                        <p class="info">\
6473                        <span class="date">'+val.date.label+'</span>\</p>\
6474                        <div class="action">\
6475                        <a data-updates="'+event+'" class="btn-main btn-lg green-btn quick-subscribe">'+text+' <span class="fas fa-chevron-right"></span></a>\
6476                        </div>\
6477                        </article>';
6478                        //el.html(html);
6479
6480                        el.parent().find('.sub-content').html(html);
6481                    }
6482                });
6483            });*/
6484        });
6485}
6486
6487function passportGlobalSubscribeFill(passport) {
6488    //log(passport);
6489}
6490
6491(function ($) {
6492    var defaults = {
6493        url: "https://api.ultrapassport.net",
6494        suffix: "",
6495        token_name: "token"
6496    };
6497
6498    var settings = $.extend({}, defaults);
6499
6500    function createCookie(name, value, days) {
6501        if (days) {
6502            var date = new Date();
6503            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
6504            var expires = "; expires=" + date.toGMTString();
6505        } else {
6506            var expires = "";
6507        }
6508        document.cookie = name + "=" + value + expires + "; path=/";
6509    }
6510
6511    function readCookie(name) {
6512        var nameEQ = name + "=";
6513        var ca = document.cookie.split(';');
6514        for (var i = 0; i < ca.length; i++) {
6515            var c = ca[i];
6516            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
6517            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
6518        }
6519        return null;
6520    }
6521
6522    function eraseCookie(name) {
6523        createCookie(name, "", -1);
6524    }
6525
6526    function addAuth(xhr) {
6527        var token = readCookie('passport_token');
6528        if (token) {
6529            xhr.setRequestHeader('Authorization', 'passport_token ' + token);
6530        }
6531    }
6532
6533    function getParameterByName(name, url) {
6534        if (!url) {
6535            url = window.location.href;
6536        }
6537        name = name.replace(/[\[\]]/g, "\\$&");
6538        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
6539        results = regex.exec(url);
6540        if (!results) return null;
6541        if (!results[2]) return '';
6542        return decodeURIComponent(results[2].replace(/\+/g, " "));
6543    }
6544
6545    window.passport = {
6546        configure: function (options) {
6547            settings = $.extend({}, defaults, options);
6548            if(settings.token_name) {
6549                var token = getParameterByName(settings.token_name);
6550                if(token) {
6551                    createCookie('passport_token', token, 365);
6552                }
6553            }
6554        },
6555        login: function (email, password) {
6556            return $.ajax({
6557                url: settings.url.replace(/\/+$/, "") + '/passport/token' + settings.suffix,
6558                type: 'POST', contentType: 'application/json', dataType: 'json',
6559                xhrFields: {withCredentials: true},
6560                data: JSON.stringify({'email': email, 'password': password})
6561            })
6562            .done(function (data, textStatus, jqXHR) {
6563                var token = data.token;
6564                createCookie('passport_token', token, 365);
6565            });
6566        },
6567        logout: function () {
6568            return $.ajax({
6569                url: settings.url.replace(/\/+$/, "") + '/passport/token' + settings.suffix,
6570                type: 'DELETE', contentType: 'application/json', dataType: 'json',
6571                xhrFields: {withCredentials: true},
6572                beforeSend: addAuth
6573            });
6574        },
6575        info: function () {
6576            return $.ajax({
6577                url: settings.url.replace(/\/+$/, "") + '/passport/me' + settings.suffix,
6578                type: 'GET', dataType: 'json',
6579                xhrFields: {withCredentials: true},
6580                beforeSend: addAuth
6581            });
6582        },
6583        create: function (data,locale) {
6584            return $.ajax({
6585                url: settings.url.replace(/\/+$/, "") + '/passport/me' + settings.suffix,
6586                type: 'POST', contentType: 'application/json', dataType: 'json',
6587                data: JSON.stringify($.extend(data, {'locale': locale})),
6588                beforeSend: addAuth
6589            });
6590        },
6591        update: function (data, url, locale) {
6592            return $.ajax({
6593                url: settings.url.replace(/\/+$/, "") + '/passport/me' + settings.suffix,
6594                type: 'PUT', contentType: 'application/json', dataType: 'json',
6595                xhrFields: {withCredentials: true},
6596                data: JSON.stringify($.extend(data, {'url': url, 'locale': locale})),
6597                beforeSend: addAuth
6598            });
6599        },
6600        delete: function () {
6601            return $.ajax({
6602                url: settings.url.replace(/\/+$/, "") + '/passport/me' + settings.suffix,
6603                type: 'DELETE', contentType: 'application/json', dataType: 'json',
6604                xhrFields: {withCredentials: true},
6605                beforeSend: addAuth
6606            });
6607        },
6608        subscriptions: function () {
6609            return $.ajax({
6610                url: settings.url.replace(/\/+$/, "") + '/passport/me/subscription' + settings.suffix,
6611                type: 'GET', dataType: 'json',
6612                xhrFields: {withCredentials: true},
6613                beforeSend: addAuth
6614            });
6615        },
6616        subscribe: function (code) {
6617            return $.ajax({
6618                url: settings.url.replace(/\/+$/, "") + '/passport/me/subscription/' + code + settings.suffix,
6619                type: 'PUT', contentType: 'application/json', dataType: 'json',
6620                xhrFields: {withCredentials: true},
6621                data: JSON.stringify({}),
6622                beforeSend: addAuth
6623            });
6624        },
6625        unsubscribe: function (code) {
6626            return $.ajax({
6627                url: settings.url.replace(/\/+$/, "") + '/passport/me/subscription/' + code + settings.suffix,
6628                type: 'DELETE', contentType: 'application/json', dataType: 'json',
6629                xhrFields: {withCredentials: true},
6630                beforeSend: addAuth
6631            });
6632        },
6633        registrations: function () {
6634            return $.ajax({
6635                url: settings.url.replace(/\/+$/, "") + '/passport/me/registration' + settings.suffix,
6636                type: 'GET', dataType: 'json',
6637                xhrFields: {withCredentials: true},
6638                beforeSend: addAuth
6639            });
6640        },
6641        register: function (code, extra) {
6642            if (extra === undefined) {
6643                extra = {};
6644            }
6645            return $.ajax({
6646                url: settings.url.replace(/\/+$/, "") + '/passport/me/registration/' + code + settings.suffix,
6647                type: 'PUT', contentType: 'application/json', dataType: 'json',
6648                xhrFields: {withCredentials: true},
6649                data: JSON.stringify(extra),
6650                beforeSend: addAuth
6651            });
6652        },
6653        unregister: function (code) {
6654            return $.ajax({
6655                url: settings.url.replace(/\/+$/, "") + '/passport/me/registration/' + code + settings.suffix,
6656                type: 'DELETE', contentType: 'application/json', dataType: 'json',
6657                xhrFields: {withCredentials: true},
6658                data: JSON.stringify({}),
6659                beforeSend: addAuth
6660            });
6661        },
6662        estimate: function (event, instance) {
6663            return $.ajax({
6664                url: settings.url.replace(/\/+$/, "") + '/passport/estimate/' + event + '/' + instance + settings.suffix,
6665                type: 'GET', dataType: 'json',
6666                xhrFields: {withCredentials: true},
6667                beforeSend: addAuth
6668            });
6669        },
6670        activateWristband: function (wristband_id, serial) {
6671            return $.ajax({
6672                url: settings.url.replace(/\/+$/, "") + '/get_token/wristband/activate' + settings.suffix,
6673                type: 'POST', contentType: 'application/json', dataType: 'json',
6674                xhrFields: {withCredentials: true},
6675                data: JSON.stringify({external_id: wristband_id+serial}),
6676                beforeSend: addAuth
6677            });
6678        },
6679        checkFrontGateRegistration: function (event, instance, lookup_id) {
6680            return grecaptcha.ready(() => {
6681                return grecaptcha.execute(recaptcha_site_key, {action: 'front_gate_registration/registration/check'}).then((token) => {
6682                    return $.ajax({
6683                        url: settings.url.replace(/\/+$/, "") + '/front_gate_tickets/registration/check' + settings.suffix,
6684                        type: 'POST', contentType: 'application/json', dataType: 'json',
6685                        xhrFields: {withCredentials: true},
6686                        data: JSON.stringify({event: event, instance: instance, lookup_id: lookup_id}),
6687                        beforeSend: function (xhr) {
6688                            addAuth(xhr);
6689                            xhr.setRequestHeader('X-Recaptcha-Token', token);
6690                        }
6691                    });
6692                });
6693            });
6694        },
6695        activateFrontGateRegistration: function (event, instance, lookup_id) {
6696            let result = new Promise((resolve, reject) => {
6697                grecaptcha.ready(() =>
6698                    grecaptcha.execute(recaptcha_site_key, { action: 'front_gate_registration/registration/activate' }).then(token => {
6699                            resolve(token);
6700                        },
6701                        reject)
6702                );
6703            }).then((token) =>
6704                $.ajax({
6705                    url: settings.url.replace(/\/+$/, "") + '/front_gate_tickets/registration/activate' + settings.suffix,
6706                    type: 'POST', contentType: 'application/json', dataType: 'json',
6707                    xhrFields: {withCredentials: true},
6708                    data: JSON.stringify({event: event, instance: instance, lookup_id: lookup_id}),
6709                    beforeSend: function (xhr) {
6710                        addAuth(xhr);
6711                        xhr.setRequestHeader('X-Recaptcha-Token', token);
6712                    }
6713                })
6714            );
6715
6716            return result;
6717        },
6718        generateZohoDeskToken: function (service_url) {
6719            return $.ajax({
6720                url: settings.url.replace(/\/+$/, "") + '/zoho_desk/token' + settings.suffix,
6721                type: 'POST', contentType: 'application/json', dataType: 'json',
6722                xhrFields: {withCredentials: true},
6723                data: JSON.stringify({'service_url': service_url}),
6724                beforeSend: addAuth
6725            });
6726        },
6727        sendVerify: function (url, locale) {
6728            return $.ajax({
6729                url: settings.url.replace(/\/+$/, "") + '/passport/me/verify' + settings.suffix,
6730                type: 'POST', contentType: 'application/json', dataType: 'json',
6731                xhrFields: {withCredentials: true},
6732                data: JSON.stringify({'url': url}),
6733                beforeSend: addAuth
6734            });
6735        },
6736        processVerify: function (token, email, url, locale) {
6737            return $.ajax({
6738                url: settings.url.replace(/\/+$/, "") + '/passport/me/verify/' + token + settings.suffix,
6739                type: 'POST', contentType: 'application/json', dataType: 'json',
6740                xhrFields: {withCredentials: true},
6741                data: JSON.stringify({'email': email, 'url': url}),
6742                beforeSend: addAuth
6743            }).done(function (data, textStatus, jqXHR) {
6744                createCookie(data.scheme, data.token, 365);
6745            });
6746        },
6747        processChangeEmail: function (token, email, url, locale) {
6748            return $.ajax({
6749                url: settings.url.replace(/\/+$/, "") + '/passport/me/ch
6749ange_email/' + token + settings.suffix,
6750                type: 'POST', contentType: 'application/json', dataType: 'json',
6751                xhrFields: {withCredentials: true},
6752                data: JSON.stringify({'email': email, 'url': url, 'locale': locale}),
6753                beforeSend: addAuth
6754            });
6755        },
6756        sendReset: function (email, url, failUrl, locale) {
6757            return $.ajax({
6758                url: settings.url.replace(/\/+$/, "") + '/passport/reset' + settings.suffix,
6759                type: 'POST', contentType: 'application/json', dataType: 'json',
6760                xhrFields: {withCredentials: true},
6761                data: JSON.stringify({'email': email, 'url': url, 'failUrl': failUrl}),
6762                beforeSend: addAuth
6763            });
6764        },
6765        processReset: function (token, email, password, url, locale) {
6766            return $.ajax({
6767                url: settings.url.replace(/\/+$/, "") + '/passport/reset/' + token + settings.suffix,
6768                type: 'POST', contentType: 'application/json', dataType: 'json',
6769                xhrFields: {withCredentials: true},
6770                data: JSON.stringify({'password': password, 'url': url}),
6771                beforeSend: addAuth
6772            }).done(function (data, textStatus, jqXHR) {
6773                createCookie(data.scheme, data.token, 365);
6774            });
6775        },
6776        sendLead: function (email, lastName, firstName, leadSource) {
6777            return $.ajax({
6778                url: settings.url.replace(/\/+$/, "") + '/lead' + settings.suffix,
6779                type: 'POST', contentType: 'application/json', dataType: 'json',
6780                //xhrFields: {withCredentials: true},
6781                data: JSON.stringify({
6782                    'Email': email,
6783                    'LastName': lastName,
6784                    'FirstName': firstName,
6785                    'LeadSource': leadSource
6786                }),
6787                //beforeSend: addAuth
6788            });
6789        }
6790    };
6791})(jQuery);
6792
6793var countries = {
6794  'AF' : 'Afghanistan' ,
6795  'AX' : 'Åland Islands' ,
6796  'AL' : 'Albania' ,
6797  'DZ' : 'Algeria' ,
6798  'AS' : 'American Samoa' ,
6799  'AD' : 'AndorrA' ,
6800  'AO' : 'Angola' ,
6801  'AI' : 'Anguilla' ,
6802  'AQ' : 'Antarctica' ,
6803  'AG' : 'Antigua and Barbuda' ,
6804  'AR' : 'Argentina' ,
6805  'AM' : 'Armenia' ,
6806  'AW' : 'Aruba' ,
6807  'AU' : 'Australia' ,
6808  'AT' : 'Austria' ,
6809  'AZ' : 'Azerbaijan' ,
6810  'BS' : 'Bahamas' ,
6811  'BH' : 'Bahrain' ,
6812  'BD' : 'Bangladesh' ,
6813  'BB' : 'Barbados' ,
6814  'BY' : 'Belarus' ,
6815  'BE' : 'Belgium' ,
6816  'BZ' : 'Belize' ,
6817  'BJ' : 'Benin' ,
6818  'BM' : 'Bermuda' ,
6819  'BT' : 'Bhutan' ,
6820  'BO' : 'Bolivia' ,
6821  'BA' : 'Bosnia and Herzegovina' ,
6822  'BW' : 'Botswana' ,
6823  'BV' : 'Bouvet Island' ,
6824  'BR' : 'Brazil' ,
6825  'IO' : 'British Indian Ocean Territory' ,
6826  'BN' : 'Brunei Darussalam' ,
6827  'BG' : 'Bulgaria' ,
6828  'BF' : 'Burkina Faso' ,
6829  'BI' : 'Burundi' ,
6830  'KH' : 'Cambodia' ,
6831  'CM' : 'Cameroon' ,
6832  'CA' : 'Canada' ,
6833  'CV' : 'Cape Verde' ,
6834  'KY' : 'Cayman Islands' ,
6835  'CF' : 'Central African Republic' ,
6836  'TD' : 'Chad' ,
6837  'CL' : 'Chile' ,
6838  'CN' : 'China' ,
6839  'CX' : 'Christmas Island' ,
6840  'CC' : 'Cocos (Keeling) Islands' ,
6841  'CO' : 'Colombia' ,
6842  'KM' : 'Comoros' ,
6843  'CG' : 'Congo' ,
6844  'CD' : 'Congo, The Democratic Republic of the' ,
6845  'CK' : 'Cook Islands' ,
6846  'CR' : 'Costa Rica' ,
6847  'CI' : 'Cote D\'Ivoire' ,
6848  'HR' : 'Croatia' ,
6849  'CU' : 'Cuba' ,
6850  'CY' : 'Cyprus' ,
6851  'CZ' : 'Czech Republic' ,
6852  'DK' : 'Denmark' ,
6853  'DJ' : 'Djibouti' ,
6854  'DM' : 'Dominica' ,
6855  'DO' : 'Dominican Republic' ,
6856  'EC' : 'Ecuador' ,
6857  'EG' : 'Egypt' ,
6858  'SV' : 'El Salvador' ,
6859  'GQ' : 'Equatorial Guinea' ,
6860  'ER' : 'Eritrea' ,
6861  'EE' : 'Estonia' ,
6862  'ET' : 'Ethiopia' ,
6863  'FK' : 'Falkland Islands (Malvinas)' ,
6864  'FO' : 'Faroe Islands' ,
6865  'FJ' : 'Fiji' ,
6866  'FI' : 'Finland' ,
6867  'FR' : 'France' ,
6868  'GF' : 'French Guiana' ,
6869  'PF' : 'French Polynesia' ,
6870  'TF' : 'French Southern Territories' ,
6871  'GA' : 'Gabon' ,
6872  'GM' : 'Gambia' ,
6873  'GE' : 'Georgia' ,
6874  'DE' : 'Germany' ,
6875  'GH' : 'Ghana' ,
6876  'GI' : 'Gibraltar' ,
6877  'GR' : 'Greece' ,
6878  'GL' : 'Greenland' ,
6879  'GD' : 'Grenada' ,
6880  'GP' : 'Guadeloupe' ,
6881  'GU' : 'Guam' ,
6882  'GT' : 'Guatemala' ,
6883  'GG' : 'Guernsey' ,
6884  'GN' : 'Guinea' ,
6885  'GW' : 'Guinea-Bissau' ,
6886  'GY' : 'Guyana' ,
6887  'HT' : 'Haiti' ,
6888  'HM' : 'Heard Island and Mcdonald Islands' ,
6889  'VA' : 'Holy See (Vatican City State)' ,
6890  'HN' : 'Honduras' ,
6891  'HK' : 'Hong Kong' ,
6892  'HU' : 'Hungary' ,
6893  'IS' : 'Iceland' ,
6894  'IN' : 'India' ,
6895  'ID' : 'Indonesia' ,
6896  'IR' : 'Iran, Islamic Republic Of' ,
6897  'IQ' : 'Iraq' ,
6898  'IE' : 'Ireland' ,
6899  'IM' : 'Isle of Man' ,
6900  'IL' : 'Israel' ,
6901  'IT' : 'Italy' ,
6902  'JM' : 'Jamaica' ,
6903  'JP' : 'Japan' ,
6904  'JE' : 'Jersey' ,
6905  'JO' : 'Jordan' ,
6906  'KZ' : 'Kazakhstan' ,  
6907  'KE' : 'Kenya' ,
6908  'KI' : 'Kiribati' ,
6909  'KP' : 'Korea, Democratic People\'S Republic of' ,
6910  'KR' : 'Korea, Republic of' ,
6911  'KV' : 'Kosovo' ,
6912  'KW' : 'Kuwait' ,
6913  'KG' : 'Kyrgyzstan' ,
6914  'LA' : 'Lao People\'S Democratic Republic' ,
6915  'LV' : 'Latvia' ,
6916  'LB' : 'Lebanon' ,
6917  'LS' : 'Lesotho' ,
6918  'LR' : 'Liberia' ,
6919  'LY' : 'Libyan Arab Jamahiriya' ,
6920  'LI' : 'Liechtenstein' ,
6921  'LT' : 'Lithuania' ,
6922  'LU' : 'Luxembourg' ,
6923  'MO' : 'Macao' ,
6924  'MK' : 'Macedonia, The Former Yugoslav Republic of' ,
6925  'MG' : 'Madagascar' ,
6926  'MW' : 'Malawi' ,
6927  'MY' : 'Malaysia' ,
6928  'MV' : 'Maldives' ,
6929  'ML' : 'Mali' ,
6930  'MT' : 'Malta' ,
6931  'MH' : 'Marshall Islands' ,
6932  'MQ' : 'Martinique' ,
6933  'MR' : 'Mauritania' ,
6934  'MU' : 'Mauritius' ,
6935  'YT' : 'Mayotte' ,
6936  'MX' : 'Mexico' ,
6937  'FM' : 'Micronesia, Federated States of' ,
6938  'MD' : 'Moldova, Republic of' ,
6939  'MC' : 'Monaco' ,
6940  'MN' : 'Mongolia' ,
6941  'MS' : 'Montserrat' ,
6942  'MA' : 'Morocco' ,
6943  'MZ' : 'Mozambique' ,
6944  'MM' : 'Myanmar' ,
6945  'NA' : 'Namibia' ,
6946  'NR' : 'Nauru' ,
6947  'NP' : 'Nepal' ,
6948  'NL' : 'Netherlands' ,
6949  'AN' : 'Netherlands Antilles' ,
6950  'NC' : 'New Caledonia' ,
6951  'NZ' : 'New Zealand' ,
6952  'NI' : 'Nicaragua' ,
6953  'NE' : 'Niger' ,
6954  'NG' : 'Nigeria' ,
6955  'NU' : 'Niue' ,
6956  'NF' : 'Norfolk Island' ,
6957  'MP' : 'Northern Mariana Islands' ,
6958  'NO' : 'Norway' ,
6959  'OM' : 'Oman' ,
6960  'PK' : 'Pakistan' ,
6961  'PW' : 'Palau' ,
6962  'PS' : 'Palestinian Territory, Occupied' ,
6963  'PA' : 'Panama' ,
6964  'PG' : 'Papua New Guinea' ,
6965  'PY' : 'Paraguay' ,
6966  'PE' : 'Peru' ,
6967  'PH' : 'Philippines' ,
6968  'PN' : 'Pitcairn' ,
6969  'PL' : 'Poland' ,
6970  'PT' : 'Portugal' ,
6971  'PR' : 'Puerto Rico' ,
6972  'QA' : 'Qatar' ,
6973  'RE' : 'Reunion' ,
6974  'RO' : 'Romania' ,
6975  'RU' : 'Russian Federation' ,
6976  'RW' : 'RWANDA' ,
6977  'SH' : 'Saint Helena' ,
6978  'KN' : 'Saint Kitts and Nevis' ,
6979  'LC' : 'Saint Lucia' ,
6980  'PM' : 'Saint Pierre and Miquelon' ,
6981  'VC' : 'Saint Vincent and the Grenadines' ,
6982  'WS' : 'Samoa' ,
6983  'SM' : 'San Marino' ,
6984  'ST' : 'Sao Tome and Principe' ,
6985  'SA' : 'Saudi Arabia' ,
6986  'SN' : 'Senegal' ,
6987  'CS' : 'Serbia and Montenegro' ,
6988  'SC' : 'Seychelles' ,
6989  'SL' : 'Sierra Leone' ,
6990  'SG' : 'Singapore' ,
6991  'SK' : 'Slovakia' ,
6992  'SI' : 'Slovenia' ,
6993  'SB' : 'Solomon Islands' ,
6994  'SO' : 'Somalia' ,
6995  'ZA' : 'South Africa' ,
6996  'GS' : 'South Georgia and the South Sandwich Islands' ,
6997  'ES' : 'Spain' ,
6998  'LK' : 'Sri Lanka' ,
6999  'SD' : 'Sudan' ,
7000  'SR' : 'Suriname' ,
7001  'SJ' : 'Svalbard and Jan Mayen' ,
7002  'SZ' : 'Swaziland' ,
7003  'SE' : 'Sweden' ,
7004  'CH' : 'Switzerland' ,
7005  'SY' : 'Syrian Arab Republic' ,
7006  'TW' : 'Taiwan' ,
7007  'TJ' : 'Tajikistan' ,
7008  'TZ' : 'Tanzania, United Republic of' ,
7009  'TH' : 'Thailand' ,
7010  'TL' : 'Timor-Leste' ,
7011  'TG' : 'Togo' ,
7012  'TK' : 'Tokelau' ,
7013  'TO' : 'Tonga' ,
7014  'TT' : 'Trinidad and Tobago' ,
7015  'TN' : 'Tunisia' ,
7016  'TR' : 'Turkey' ,
7017  'TM' : 'Turkmenistan' ,
7018  'TC' : 'Turks and Caicos Islands' ,
7019  'TV' : 'Tuvalu' ,
7020  'UG' : 'Uganda' ,
7021  'UA' : 'Ukraine' ,
7022  'AE' : 'United Arab Emirates' ,
7023  'GB' : 'United Kingdom' ,
7024  'US' : 'United States' ,
7025  'UM' : 'United States Minor Outlying Islands' ,
7026  'UY' : 'Uruguay' ,
7027  'UZ' : 'Uzbekistan' ,
7028  'VU' : 'Vanuatu' ,
7029  'VE' : 'Venezuela' ,
7030  'VN' : 'Viet Nam' ,
7031  'VG' : 'Virgin Islands, British' ,
7032  'VI' : 'Virgin Islands, U.S.' ,
7033  'WF' : 'Wallis and Futuna' ,
7034  'EH' : 'Western Sahara' ,
7035  'YE' : 'Yemen' ,
7036  'ZM' : 'Zambia' ,
7037  'ZW' : 'Zimbabwe'
7038};
7039
7040function activatePost() {
7041    $('#activate-form #lookupcode').inputmask({
7042        mask: upp_wristband_activation.uid_mask || "*******[*]",
7043        autoUnmask: true,
7044        greedy: false
7045    });
7046
7047    $.validator.addMethod("alphanumeric_mixed", function(value, element) {
7048        return this.optional(element) || /[a-zA-Z]/.test(value);
7049    }, "Should contain at least one letter.");
7050
7051    $('#activate-form').validate({
7052        rules: {
7053            lookupcode: {
7054                required: true,
7055                alphanumeric_mixed: true
7056            },
7057        },
7058        submitHandler: function(form) {
7059            activateForm(form);
7060        }
7061
7062    });
7063
7064    $('.wba-confirm .cancel').on('click', function(){
7065        $('#activate-form ol').slideDown(300, 'easeInOutExpo');
7066        $('.wba-confirm').slideUp(300, 'easeInOutExpo');
7067        hideResult();
7068    });
7069
7070    $('.wba-confirm .confirm').on('click', function(){
7071        $('#activate-form')
7072            .addClass('confirmed')
7073            .trigger('submit');
7074    });
7075}
7076
7077function activateExists(data) {
7078    $('.wba-guest').slideUp(300);
7079
7080    let event = upp_wristband_activation.event;
7081    let instance = upp_wristband_activation.instance;
7082
7083    if(data.fgt_registrations && data.fgt_registrations.length) {
7084        let fgt_registration = _.find(data.fgt_registrations, {'event_event': event, 'event_instance': instance});
7085        if (fgt_registration) {
7086            passport.estimate(event, instance).done(function(award){
7087                let activated = moment(fgt_registration.updated_at).format('MMMM Do, YYYY');
7088                showResult($.validator.format(upp_wristband_activation.messages.activated, [activated]), 'success');
7089                $('.wba-success-title').text($.validator.format(upp_wristband_activation.messages.success_title, [fgt_registration.frontgate_item_lookup_id]));
7090                $('.pre-activate').slideUp(300, 'easeInOutExpo');
7091                $(`#${award.level}-success`).show();
7092                if (upp_wristband_activation.cashless_enabled) {
7093                    $('.wba-cashless a.btn-main').attr('href', upp_wristband_activation.cashless_url + fgt_registration.event_registration_directory + '?email=' + encodeURI(data.email) + '&barcode=' + encodeURI(fgt_registration.frontgate_item_lookup_id));
7094                }
7095                $('.wba-success').slideDown();
7096            });
7097        }
7098        else {
7099            $('.wba-form').slideDown();
7100            $('#activate-form')
7101                .removeClass('confirmed')
7102                .find('ol').slideDown(300);
7103        }
7104    }
7105    else {
7106        $('.wba-form').slideDown();
7107        $('#activate-form')
7108            .removeClass('confirmed')
7109            .find('ol').slideDown(300);
7110    }
7111}
7112
7113function activateForm(form) {
7114    let lookupcode = $('#lookupcode').val().toUpperCase();
7115
7116    let event = upp_wristband_activation.event;
7117    let instance = upp_wristband_activation.instance;
7118
7119    if ( ! $('#activate-form').hasClass('confirmed') ) {
7120        showResult(upp_wristband_activation.messages.confirm_alert, 'w
7120arning');
7121        $('#activate-form ol').slideUp(300, 'easeInOutExpo');
7122        $('.wba-confirm').slideDown(300, 'easeInOutExpo');
7123
7124        $('#errorscroll').get(0)?.scrollIntoView({behavior: 'smooth'});
7125
7126        return;
7127    } else {
7128        $('.wba-confirm').slideUp(300, 'easeInOutExpo');
7129    }
7130
7131    return passport.activateFrontGateRegistration(event, instance, lookupcode)
7132        .then(function(data, textStatus, jqXHR){
7133            /*$('#activate-form ol').slideUp(300, 'easeInOutExpo');
7134            showResult(upp_wristband_activation.messages.success_alert, 'success');
7135            $('.pre-activate').slideUp(300, 'easeInOutExpo');
7136            $('.wba-cashless a.btn-main').attr('href', 'https://registration.frontgatetickets.com/#/' + data.fgt_registration.event_registration_directory + '?email=' + data.email + '&barcode=' + data.fgt_registration.frontgate_item_lookup_id);
7137            $('#'+data.fgt_registration.attendance_estimate.level+'-success').show();
7138            $('.wba-success').slideDown();*/
7139            passport.info()
7140                .then(activateExists)
7141                .then($('.wba-success').get(0)?.scrollIntoView({behavior: 'smooth'}));
7142        })
7143        .catch(function(jqXHR, textStatus, error){
7144            $(document).trigger('rebuild');
7145
7146            switch(jqXHR.status) {
7147                case 401:
7148                    showResult(errors.token, 'error');
7149                    break;
7150                case 404:
7151                    showResult(upp_wristband_activation.messages.error_invalid, 'error');
7152                    break;
7153                case 403:
7154                    showResult(upp_wristband_activation.messages.error_in_use, 'error');
7155                    break;
7156                case 409:
7157                    showResult(upp_wristband_activation.messages.error_already_claimed, 'error');
7158                    break;
7159                default:
7160                    showResult(upp_wristband_activation.messages.error_default, 'error');
7161            }
7162
7163            $('#errorscroll').get(0)?.scrollIntoView({behavior: 'smooth'});
7164        });
7165}
7166
7167function betaSignup(passportdata) {
7168
7169    $(document).on('logged-in', function(event,passportdata){
7170
7171        if( !!_ppprotect.length) {
7172
7173            var privhtml = $('.pcontent').html();
7174
7175            $('.pcontent').remove();
7176
7177            //_ppprotect.fadeTo(300,0);
7178            setTimeout(function(){
7179
7180                _ppprotect.html(privhtml);
7181
7182                _ppprotect.fadeTo(300,1);
7183
7184                $('.ppgpem').html(passportdata.email);
7185                var gp = $('#gplayemail').attr('placeholder');
7186                var gplay = $('.gplay');
7187                var ostoggle = $('.ostoggle');
7188                var type = $('#type');
7189                var btnios = $('.iosbtn');
7190                var btnandroid = $('.androidbtn');
7191                var deletebeta = $('.btn-delete-beta');
7192
7193                //$('#gplayemail').attr('placeholder', gp+': '+passportdata.email)
7194
7195                btnios.on('click', function(e){
7196                    e.preventDefault();
7197                    var el = $(this);
7198                    type.val(el.data('type'));
7199                    ostoggle.removeClass('registering').removeClass('btnactive');
7200                    el.addClass('registering');
7201                    gplay.slideUp(300);
7202                    betaRegister();
7203                    setTimeout(function(){
7204                      $('.beta1').slideUp(500, 'easeInOutExpo');
7205                      $('.beta2').slideDown(500, 'easeInOutExpo');
7206                    }, 1500);
7207                });
7208
7209                btnandroid.on('click', function(e){
7210                    e.preventDefault();
7211                    var el = $(this);
7212                    type.val(el.data('type'));
7213                    ostoggle.removeClass('registering').removeClass('btnactive');
7214                    el.addClass('btnactive');
7215                    gplay.slideDown(300);
7216                });
7217
7218
7219                $('#beta-signup').on('submit', function(e) {
7220                    e.preventDefault();
7221                    //btnandroid.addClass('registering');
7222                    if( $('#gplayemail').val() == '') {
7223                      $('#gplayemail').addClass('error');
7224                      return;
7225                    }
7226                    $('#betaformbtn').addClass('registering');
7227                    betaRegister();
7228                    setTimeout(function(){
7229                      $('.beta1').slideUp(500, 'easeInOutExpo');
7230                      $('.beta2').slideDown(500, 'easeInOutExpo');
7231                    }, 1500);
7232                });
7233
7234                betaRegistered(passportdata);
7235
7236                deletebeta.on('click', function(e){
7237                    e.preventDefault();
7238                    var answer = confirm ("Are you sure you want to cancel your Ultra Worldwide App Beta Registration?");
7239                    if (answer) {
7240                      passport.unregister('worldwide-beta');
7241                      $('.beta1').slideDown(500, 'easeInOutExpo');
7242                      $('.beta2').slideUp(500, 'easeInOutExpo');
7243                      $('.registering').removeClass('registering');
7244                    }
7245                })
7246
7247            },350);
7248
7249        }
7250
7251    });
7252
7253}
7254
7255function betaRegister() {
7256
7257    var regdata = {
7258        email: $('#gplayemail').val(),
7259        source: document.location.hostname,
7260        type: $('#type').val(),
7261    };
7262
7263    //log(regdata);
7264    //return;
7265    passport.register('worldwide-beta', regdata)
7266    .done(function (newdata, textStatus) {
7267        var updated = passport.info();
7268        updated.done(function(data) {
7269            betaRegistered(data);
7270        });
7271    })
7272    .fail(function (jqXHR, textStatus, error) {
7273      //log(jqXHR,textStatus,error);
7274    });
7275
7276
7277}
7278
7279
7280
7281function betaRegistered(passport) {
7282
7283    if(passport.registrations) {
7284
7285        $.each(passport.registrations, function(key, value) {
7286
7287            if(value.code == 'worldwide-beta') {
7288
7289                $('.beta2 ul').find('li.email').remove();
7290                $('.beta1').slideUp(500, 'easeInOutExpo');
7291                $('.beta2').slideDown(500, 'easeInOutExpo');
7292
7293                $('.beta2 strong').each(function(){
7294                    var el = $(this);
7295                    var field = el.data('field');
7296                    if(field == 'type') {
7297                        el.html(value.type);
7298                        if(value.type == 'Android' && value.email.length) {
7299                          $('.beta2 ul').append('<li class="email">Email: <strong>'+value.email+'</strong></li>')
7300                        }
7301                    }
7302                    if(field == 'registered_at') {
7303                        var regdate = moment(value.created_at).format('MMMM Do, YYYY');
7304                        el.html(regdate);
7305                    }
7306                    if(field == 'accepted') {
7307                        if(!value.accepted) {
7308                          value.accepted = 'Pending';
7309                        } else {
7310                          value.accepted = 'Accepted';
7311                        }
7312                        el.html(value.accepted);
7313                    }
7314                })
7315            }
7316
7317        });
7318    }
7319
7320    $(document).trigger('rebuild-page');
7321
7322}
7323
7324function dashboard(data) {
7325    if (data.status == 'active') {
7326        var verified = getUrlParam('verified');
7327        if (verified) {
7328            showResult(_accountactivated, 'success', { duration: 6000 });
7329        }
7330    } else {
7331        showResult(_emailverifydashboard, 'warning');
7332        _dashbuttons.prepend(`<a class="uppresend btn-main btn-lg ${upp_assets.buttons.primary_btn}">${_resendverify}<span class="fas fa-chevron-right"></span></a>`);
7333    }
7334
7335    _dashbuttons.fadeIn(300);
7336
7337    $('.btn-help').attr('href',helpurl);
7338    $('.btn-help').html(`${_helpcenter} <span class="fas fa-chevron-right"></span>`);
7339
7340    if (ultra_settings.theme != 'passport') {
7341        $('.btn-help').attr('target','_blank');
7342    }
7343
7344    if(data) {
7345
7346        $('#ppnav').html(ppdashnav);
7347
7348        if(ultra_settings.theme == 'ibiza') {
7349            $('.myitems').find('.gray-btn').addClass('red-outline-btn').removeClass('.gray-btn');
7350
7351        }
7352
7353        $('#ppnav li a').on('click', function(event) {
7354
7355            event.preventDefault();
7356
7357            var el = $(this);
7358
7359            if(el.hasClass('active')) {
7360                return;
7361            }
7362
7363            $("#ppnav li a.active").removeClass("active");
7364            el.addClass("active");
7365            $(".ptab").hide();
7366
7367            var activeTab = el.attr("href");
7368            window.location.hash = activeTab;
7369            activeTab = activeTab.replace('#','');
7370            activeTab = `#upp${activeTab}`;
7371            $(activeTab).fadeIn();
7372
7373
7374            var title = el.data("title");
7375            $('.dtitle').text(title);
7376
7377            return false;
7378
7379
7380        });
7381
7382
7383        setTimeout(function(){
7384            $('#ppnav, .dashboard .guesthide').fadeIn(300);
7385        },300)
7386
7387        qualifyTable();
7388        benefitsTable();
7389
7390    }
7391
7392
7393    $(window).bind( 'hashchange', function(e) {
7394        $(`#ppnav li a[href="${window.location.hash}"]`).trigger('click');
7395    });
7396
7397    if(data.points_history && data.points_history.length) {
7398        $.each( data.points_history, function( key, val ) {
7399
7400            if(val.id) {
7401
7402                var dateformat = 'MMMM D, YYYY';
7403                var deldate = '';
7404                var created_by = '';
7405                var deleted_by = '';
7406                var logo = upp_assets.images.logo;
7407                var website = '';
7408                var delclass = '';
7409                var deleted = false;
7410                var description = '';
7411                var event = '';
7412                var type = '';
7413                var active_year = '';
7414                var expired = false;
7415                var code = '';
7416                var alt = '';
7417                var calcamount = Number(val.amount).toLocaleString();
7418                var entrydate = moment(val.created_at).format(dateformat);
7419                var expiresdate = moment(val.expires_at).format(dateformat);
7420
7421                if (val.deleted_at) {
7422                    deleted = true;
7423                } else {
7424                    deldate = '<li>&nbsp;</li>';
7425                    delcamount = `<span>${calcamount}</span>`;
7426                }
7427
7428                if ( val.expired ) {
7429                    expired = true;
7430                }
7431
7432                event = val.event || '';
7433                code = val.code;
7434
7435                description = (typeof(pointcodes[code]) == 'undefined' ? val.description : pointcodes[code]);
7436
7437                //TODO: Fix this
7438                getEventJSON()
7439                .done(function(data) {
7440
7441                    $.each( data, function( key, val ) {
7442
7443                        if(event == val.code){
7444
7445                            if (val.media.white_logo) {
7446                                logo = val.media.white_logo;
7447                            }
7448                            if (val.type) {
7449                                type = val.type;
7450                            }
7451                            if (val.title) {
7452                                title = val.title;
7453                            }
7454                            if (val.active_year) {
7455                                active_year = val.active_year;
7456                            }
7457                            alt = `${type} ${title} ${active_year}`;
7458                            if (val.url) {
7459                                website = val.url;
7460                            } else {
7461                                website = '#';
7462                            }
7463                            if (val.type == 'RTU') {
7464                                description = (typeof(pointcodes['attend_rtu']) == 'undefined' ? 'attend_rtu' : pointcodes['attend_rtu']);
7465                            }
7466                            if (val.type == 'Resistance') {
7467                                description = (typeof(pointcodes['attend_resistance']) == 'undefined' ? 'attend_resistance' : pointcodes['attend_resistance']);
7468                            }
7469                        }
7470
7471                    });
7472
7473                    logo = `<a href="${website}" target="blank"><img src="${logo}" alt="${alt}" width="150" style=""></a>`;
7474
7475                    if(deleted) {
7476
7477                        delclass = 'deletedpoints';
7478                        deldate = moment(val.deleted_at).format(dateformat)
7479
7480                        delcamount = `<span>${calcamount}</span>`;
7481                        deldate = `<span>${entrydate}</span>`;
7482
7483                        output = `
7484                        <div class="entry ${delclass}">
7485                            <ul>
7486                                <li>${logo}</li>
7487                                <li class="created"><div class="lbreak3 op50 mb2"></div></li>
7488                                <li class="amount">&ndash; <strong>${delcamount}</strong><div class="lbreak3 op50"></div></li>
7489                                <li class="description">${deldate}<br>${description}</li>
7490                            </ul>
7491                        </div>`;
7492                        $('#ledger').append(output);
7493                        return;
7494                    }
7495
7496                    output = `
7497                    <div class="entry">
7498                        <ul>
7499                            <li>${logo}</li>
7500                            <li class="created"><div class="lbreak3 op50 mb2"></div></li>
7501                            <li class="amount">+ <strong>${calcamount}</strong><div class="lbreak3 op50"></div></li>
7502                            <li class="description">${entrydate}<br>${description}</li>
7503                        </ul>
7504                    </div>`;
7505
7506                    $('#ledger').append(output);
7507
7508                    var website = website || '';
7509                    var title = title || '';
7510                    var type = type || '';
7511
7512                    var rowclass = 'active';
7513                    var symbol = '';
7514                    var related_event = '';
7515                    if ( deleted ) {
7516                        rowclass = 'deleted';
7517                        //var symbol = '&ndash;';
7518                    }
7519                    if ( expired ) {
7520                        rowclass = 'expired';
7521                        //var symbol = '&ndash;';
7522                    }
7523                    if ( ! title ) {
7524                        related_event = 'no-event';
7525                    }
7526
7527                    output = `
7528                    <tr class="${rowclass}">
7529                        <td class="${related_event}"><strong class="label">Event</strong> <span class="entry-details">${type} ${title}</span></td>
7530                        <td><strong class="label">Activity</strong> <span class="entry-details">${description}</span></td>
7531                        <td><strong class="label">Points</strong> <span class="entry-details"> <strong>${symbol} ${calcamount}</strong> </span></td>
7532                        <td><strong class="label">Earned</strong> <span class="entry-details">${entrydate}</span></td>
7533                        <td><strong class="label">Expires </strong> <span class="entry-details">${expiresdate}</span></td>
7534                    </tr>`;
7535
7536                    $('#points-ledger tbody').append(output);
7537
7538                })
7539
7540}
7541
7542$('.activepoints').text(_active);
7543$('.deletedpoints').text(_expired);
7544
7545});
7546
7547} else {
7548    $('#ledger').append('<div class="entry"><ul><li>You have not earned any points yet.</li></ul></div>');
7549}
7550
7551
7552
7553}
7554
7555$(document).on('click', '.uppresend', function(e){
7556    e.preventDefault();
7557    sendVerify(upp_page.verify);
7558})
7559
7560
7561
7562
7563function qualifyTable() {
7564
7565    $.get( `https://ultrapassport.com/app-feed?site=${ultra_settings.site_url}` , function() {})
7566    .done(function(data) {
7567
7568        var points = $('#qualifytable');
7569        var bonus = $('#bonustable');
7570
7571        var tableheaderhtml = `<thead><tr><td>${data.earn.labels.action}</td><td align="center" width="50">${data.earn.labels.points}</td></tr></thead>`
7572        points.html(tableheaderhtml);
7573
7574        var tableheaderhtml = `<thead><tr><td>${data.earn.labels.bonus}</td><td align="center" width="50">${data.earn.labels.points}</td></tr></thead>`
7575        bonus.html(tableheaderhtml);
7576
7577        var rows = '<tbody>'
7578        $.each( data.earn.actions, function( key, val ) {
7579
7580            var qtext = '';
7581            //rows += '<tr><td><p>'+qtext+'</td><td align="center"><strong>
7581+'+Number(val[1]).toLocaleString()+'</strong></p></td></tr>';
7582
7583            var desc = '';
7584            if ( val.description && val.description.length ) {
7585                desc = `
7586                <p>${val.title}<a href="#" data-src="#action-${key}>" data-fancybox=""><i class="fas fa-circle-question"></i></a></p>
7587                <div class="hide">
7588                    <div id="action-${key}" class="description">
7589                        <div>
7590                            <h4 class="title">${val.title}</h4>
7591                            <hr class="op50">
7592                            ${val.description}
7593                        </div>
7594                    </div>
7595                </div>`;
7596            } else {
7597                desc = `<p>${val.title}</p>`;
7598            }
7599
7600            rows += `
7601            <tr data-name="points-${key}"><td>${desc}</td>
7602                <td><h3 class="points text-right mt0 mb0">${val.amount}</h3></td>
7603            </tr>`;
7604
7605        });
7606        rows += '</tbody>';
7607        points.append(rows);
7608
7609
7610        var rows = '<tbody>'
7611        $.each( data.earn.bonuses, function( key, val ) {
7612
7613            var qtext = '';
7614
7615            var desc = '';
7616            if ( val.description && val.description.length ) {
7617                desc = `
7618                <p>${val.title}<a href="#" data-src="#bonus-${key}>" data-fancybox=""><i class="fas fa-circle-question"></i></a></p>
7619                <div class="hide">
7620                    <div id="bonus-${key}" class="description">
7621                        <div>
7622                            <h4 class="title">${val.title}</h4>
7623                            <hr class="op50">
7624                            ${val.description}
7625                        </div>
7626                    </div>
7627                </div>`;
7628            } else {
7629                desc = `<p>${val.title}</p>`;
7630            }
7631
7632            rows += `
7633            <tr data-name="points-${key}"><td>${desc}</td>
7634                <td><h3 class="points text-right mt0 mb0">${val.amount}</h3></td>
7635            </tr>`;
7636
7637        });
7638        rows += '</tbody>';
7639        bonus.append(rows);
7640
7641        $('.earn-text').html(data.earn.content);
7642
7643        fillEvents();
7644
7645    });
7646
7647
7648}
7649
7650
7651function benefitsTable() {
7652
7653    $.get( `https://ultrapassport.com/app-feed?site=${ultra_settings.site_url}` , function() {})
7654    .done(function(data) {
7655
7656        var table = $('#benefitstable');
7657
7658        var tableheaderhtml = `<thead><tr><td>${data.benefits.labels.benefits}</td><td align="center" width="30">${data.benefits.labels.silver}</td><td align="center" width="30">${data.benefits.labels.gold}</td ><td align="center" width="30">${data.benefits.labels.platinum}</td></tr></thead>`
7659        table.html(tableheaderhtml);
7660
7661        var rows = '<tbody>'
7662
7663        $.each( data.benefits.benefits, function( key, val ) {
7664            if ( val.level == 1) {
7665                var desc = '';
7666                if ( val.description && val.description.length ) {
7667                    desc = `
7668                    <p>${val.title}<a href="#" data-src="#benefit-${key}>" data-fancybox=""><i class="fas fa-circle-question"></i></a></p>
7669                    <div class="hide">
7670                        <div id="benefit-${key}" class="description">
7671                            <div>
7672                                <h4 class="title">${val.title}</h4>
7673                                <hr class="op50">
7674                                ${val.description}
7675                            </div>
7676                        </div>
7677                    </div>`;
7678                } else {
7679                    desc = `<p>${val.title}</p>`;
7680                }
7681                rows += `<tr><td>${desc}</td><td><span class="silveru uicon"></span></td><td><span class="goldu uicon"></span></td><td><span class="platinumu uicon"></span></td></tr>`;
7682            }
7683        });
7684        $.each( data.benefits.benefits, function( key, val ) {
7685            if ( val.level == 2) {
7686                if ( val.description && val.description.length ) {
7687                    desc = `
7688                    <p>${val.title}<a href="#" data-src="#benefit-${key}>" data-fancybox=""><i class="fas fa-circle-question"></i></a></p>
7689                    <div class="hide">
7690                        <div id="benefit-${key}" class="description">
7691                            <div>
7692                                <h4 class="title">${val.title}</h4>
7693                                <hr class="op50">
7694                                ${val.description}
7695                            </div>
7696                        </div>
7697                    </div>`;
7698                } else {
7699                    desc = `<p>${val.title}</p>`;
7700                }
7701                rows += `<tr><td>${desc}</td><td></td><td><span class="goldu uicon"></span></td><td><span class="platinumu uicon"></span></td></tr>`;
7702            }
7703        });
7704        $.each( data.benefits.benefits, function( key, val ) {
7705            if ( val.level == 3) {
7706                if ( val.description && val.description.length ) {
7707                    desc = `
7708                    <p>${val.title}<a href="#" data-src="#benefit-${key}>" data-fancybox=""><i class="fas fa-circle-question"></i></a></p>
7709                    <div class="hide">
7710                        <div id="benefit-${key}" class="description">
7711                            <div>
7712                                <h4 class="title">${val.title}</h4>
7713                                <hr class="op50">
7714                                ${val.description}
7715                            </div>
7716                        </div>
7717                    </div>`;
7718                } else {
7719                    desc = `<p>${val.title}</p>`;
7720                }
7721                rows += `<tr><td>${desc}</td><td></td><td></td><td><span class="platinumu uicon"></span></td></tr>`;
7722            }
7723        });
7724
7725        rows += '</tbody>';
7726
7727        table.append(rows);
7728
7729        $('.benefits-text').html(data.benefits.content);
7730
7731    });
7732
7733}
7734
7735// Account Modals
7736function accountmodals() {
7737
7738    // if modal does not already exist, and not on the login page
7739    if( !$('#loginmodal').length && !$('#login-form').length ) {
7740
7741        if( ! $('body').hasClass('pplogin') ) {
7742            $('body').append(loginmodalhtml);
7743
7744            //_loginmodal.fadeIn(300);
7745            $(document).on("keyup", function (event) {
7746                if (event.keyCode == 27 && !!_loginmodal.find('.md-close').length) {
7747                    _loginmodal.find('.md-close').trigger('click');
7748                }
7749            });
7750            modalClose('#loginmodal');
7751            _loginmodal = $('#loginmodal');
7752            _login = $('#login-form', _loginmodal);
7753            _lost = $('#lost-form', _loginmodal);
7754
7755            _login.validate({
7756                submitHandler: function(form) {
7757                    mloginpost(form);
7758                }
7759            });
7760
7761            _lost.validate({
7762                submitHandler: function(form) {
7763                    mlostpost(form);
7764                }
7765            });
7766
7767            $('body').addClass('pplogin');
7768
7769        }
7770
7771        $(document).on('click', '.loginbtn, .loginh>a', function(e){
7772            e.preventDefault();
7773
7774            setTimeout(function() {
7775                $('#updates-guest, #registration-confirm, #waitlist-confirm').fadeOut(300);
7776            }, 300);
7777
7778            modalOpen();
7779            _loginmodal
7780                .fadeIn(300)
7781                .find('input[autofocus]').trigger('focus');
7782        });
7783    }
7784
7785    if( !$('#signupmodal').length && ! $('#signup-form').length && !$('#edit-form').length) {
7786
7787        $('body').append(signupmodalhtml);
7788        initDateMask();
7789        //_signupmodal.fadeIn(300);
7790        $(document).on("keyup", function (event) {
7791            if (event.keyCode == 27 && !!_signupmodal.find('.md-close').length) {
7792                _signupmodal.find('.md-close').trigger('click');
7793            }
7794        });
7795        modalClose('#signupmodal');
7796        if (autofill) { autofill(); $('.autofiller').trigger('click'); }
7797        $('body').addClass('ppsignup');
7798
7799        _signupmodal = $('#signupmodal');
7800        _signup = $('#signup-form', _signupmodal);
7801
7802        $(document).on('click', '.signupbtn, .signupm>a', function(e){
7803            e.preventDefault();
7804
7805            setTimeout(function() {
7806                $('#updates-guest, #registration-confirm, #waitlist-confirm').fadeOut(300);
7807            }, 300);
7808
7809            modalOpen();
7810            _signupmodal
7811                .fadeIn(300)
7812                .find('input[autofocus]').trigger('focus');
7813
7814        });
7815
7816        _signup.validate({
7817            //errorElement: "span",
7818            messages: {
7819                firstname: {
7820                    //required: i18n.t('labels.errors.required'),
7821                    //letterswithbasicpunc: i18n.t('labels.errors.allowed_characters'),
7822                },
7823                lastname: {
7824                    //required: i18n.t('labels.errors.required'),
7825                    //letterswithbasicpunc: i18n.t('labels.errors.lastname.allowed_characters'),
7826                },
7827                password: {
7828                    //required: i18n.t('labels.errors.required'),
7829                    //minlength: $.validator.format(i18n.t('labels.errors.password_minlength')),
7830                },
7831                email: {
7832                    //required: i18n.t('labels.errors.required'),
7833                    //email: i18n.t('labels.errors.email_valid'),
7834                    //emailNeverbounce: i18n.t('labels.errors.email_valid'),
7835                },
7836                birthday: {
7837                    //required: i18n.t('labels.errors.required'),
7838                },
7839                gender: {
7840                    //required: _gendertext,
7841                },
7842                country: {
7843                    //required: i18n.t('labels.errors.required'),
7844                },
7845                homeevent: {
7846                    //required: i18n.t('labels.errors.required'),
7847                },
7848                accept_terms: {
7849                    required: _accepttext,
7850                },
7851            },
7852            rules: {
7853                email: {
7854                    required: true,
7855                    email: true,
7856                    //emailNeverbounce: true,
7857                },
7858                password: {
7859                    required: true,
7860                    minlength: 8,
7861                    maxlength: 100
7862                },
7863                firstname: {
7864                    required: true,
7865                },
7866                lastname: {
7867                    required: true,
7868                },
7869                birthday: {
7870                    completeDate: true,
7871                },
7872                gender: {
7873                    required: true,
7874                },
7875                country: {
7876                    required: true,
7877                },
7878                homeevent: {
7879                    required: true,
7880                },
7881                accept_terms: {
7882                    required: true,
7883                }
7884            },
7885            submitHandler: function(form, event) {
7886                msignuppost(form, event, this);
7887            }
7888        });
7889
7890        homeEvents();
7891
7892        // From login screen, switch to signup
7893        $(document).on('click', '.mlsignup', function(e){
7894            e.preventDefault();
7895            $('#loginmodal').fadeOut(300);
7896            $('#signupmodal')
7897                .fadeIn(300)
7898                .find('input[autofocus]').trigger('focus');
7899        });
7900
7901        // From signup screen, switch to login
7902        $(document).on('click', '.mllogin', function(e){
7903            e.preventDefault();
7904            $('#signupmodal').fadeOut(300);
7905            $('#loginmodal')
7906                .fadeIn(300)
7907                .find('input[autofocus]').trigger('focus');
7908        });
7909
7910
7911        // From login screen, switch to lost password
7912        $(document).on('click', '#loginmodal .btn-lost', function(e){
7913            e.preventDefault();
7914            $('.loginhtml').fadeOut(300);
7915            setTimeout(function(){
7916                $('.forgothtml').fadeIn(300);
7917            }, 300)
7918        });
7919
7920
7921        // From signup screen, switch to signup
7922        $(document).on('click', '.back2login', function(e){
7923            e.preventDefault();
7924            $('.forgothtml').fadeOut(300);
7925            setTimeout(function(){
7926                $('.loginhtml')
7927                    .fadeIn(300)
7928                    .find('input[autofocus]').trigger('focus');
7929            }, 300)
7930        });
7931
7932
7933        var autotest = getUrlParam('at');
7934
7935        if(autotest) {
7936            $('#signup-form input#firstname').val('Jamie');
7937            $('#signup-form input#lastname').val('Martin');
7938            $('#signup-form input#password').val('');
7939            $('#signup-form input#email').val('@ultra.us');
7940            $('#signup-form input#confirmemail').val('@ultra.us');
7941            $('#signup-form #birthday').val('04/24/2010');
7942            $('#signup-form select#country').val('US');
7943            $('#signup-form select#homeevent-signup').val('miami');
7944            setTimeout(function() { $('#signup-form select#homeevent').val('miami') }, 500);
7945            setTimeout(function() { $('#signup-form select#homeevent').val('miami') }, 2500);
7946            $('#signup-form #gender').val('male');
7947            $('#signup-form input#accept_terms').prop('checked', true);
7948        }
7949    }
7950}
7951
7952function mloginpost(form) {
7953    hideResult();
7954
7955    let form_data = Object.fromEntries(new FormData(form).entries());
7956
7957    return uppLogin(form_data.loginemail, form_data.loginpassword)
7958    .then(function (data) {
7959        return $('#loginmodal').fadeOut(300);
7960    })
7961    .then(function (data) {
7962        return modalClosed();
7963    })
7964    .then(function (data) {
7965        var loginRedirect = $(form).data('redirect');
7966        if(loginRedirect) {
7967            window.location.assign(loginRedirect);
7968        }
7969    });
7970}
7971
7972function mlostform() {
7973
7974}
7975
7976
7977function mlostpost(form) {
7978    hideResult();
7979
7980    let $form = $(form);
7981    $form.addClass('is-submitting');
7982
7983    let form_data = Object.fromEntries(new FormData(form).entries());
7984
7985    var email = form_data.lostemail;
7986    var mlocale = form_data.modlocale;
7987    var path = upp_page.reset_password;
7988
7989    var redirect = $form.data('redirect');
7990    if(redirect !== undefined) {
7991        path += '?' + $.param({redirect: redirect});
7992    }
7993
7994    return passport.sendReset(email, path, upp_page.signup, mlocale)
7995    .fail(function(jqXHR, textStatus, error){
7996        $(document).trigger('rebuild');
7997        if (jqXHR.status == 401) {
7998                //$(document).trigger('logged-out');
7999                showResult(_regerror, 'error');
8000            } else if (jqXHR.status == 409) {
8001                showResult(errors.duplicateemail, 'error');
8002            } else {
8003                showResult(errors.general, 'error');
8004            }
8005        })
8006    .done(function(data, textStatus, jqXHR){
8007        if (jqXHR.status == 401) {
8008            showResult(errors.general, 'error');
8009        } else {
8010            showResult(_passwordresetsent, 'success', { duration: 4000 });
8011        }
8012    });
8013}
8014
8015function msignuppost(form, event, validator) {
8016    hideResult();
8017
8018    let $form = $(form);
8019    let redirect = $form.data('redirect');
8020    $form.addClass('is-submitting');
8021
8022    let form_data = Object.fromEntries(new FormData(form).entries());
8023
8024    var sourceurl = document.location.hostname;
8025    var rcode = getUrlParam('rcode');
8026    if(rcode) {
8027        sourceurl = sourceurl + '?rcode=' + rcode;
8028    }
8029
8030    let passport_data = {
8031        email: form_data.email,
8032        password: form_data.password,
8033        firstname: form_data.firstname,
8034        lastname: form_data.lastname,
8035        birthday: getDateISO(form.elements.birthday),
8036        gender: form_data.gender,
8037        country: form_data.country,
8038        homeevent: form_data.homeevent,
8039        lang: window.navigator.userLanguage || window.navigator.language,
8040        source: sourceurl,
8041    };
8042
8043    _signupmodal = $('#signupmodal');
8044
8045    passport.create(passport_data, $('#modlocale').val())
8046    .fail(function (jqXHR, textStatus, error) {
8047        $(document).trigger('rebuild');
8048        if (jqXHR.status == 400) {
8049            var responseJSON = jqXHR.responseJSON;
8050
8051            if (responseJSON.errors) {
8052                //let errors = {};
8053                $.each(responseJSON.errors, (error_key, error) => {
8054                    //errors[error_key] = i18n.t(`labels.errors.${error_key}`);
8055                    //showResult(errors[error_key], 'error');
8056                    showResult(error, 'error');
8057                });
8058                validator.showErrors(responseJSON.errors);
8059                if (responseJSON.errors.birthday) {
8060                    showResult(errors.birthday, 'error');
8061                    $('#birthday').addClass('error');
8062                }
8063
8064                if (responseJSON.errors.password) {
8065                    showResult(errors.password, 'error');
8066                    //$('#password').addClass('error');
8067                }
8068            }
8069        }
8070        else if (jqXHR.status == 409) {
8071            showResult(errors.duplicateemail, 'error');
8072        }
8073        else {
8074            showResult(errors.create, 'error');
8075        }
8076    })
8077    .done(function (data, textStatus, jqXHR) {
8078        window.dataLayer = window.dataLayer || [];
8079        window.dataLayer.push({
8080            'event': 'passport-create',
8081        });
8082        window.dataLayer.push({
8083            'event': 'sign_up',
8084            'method': 'passport'
8085        });
8086
8087        scrollToTop();
8088        $('#password').removeClass('error');
8089        var _container = _signupmodal.find('.md-content .replacer');
8090
8091        $('button.uppsignup')
8092            .addClass('working')
8093            .attr('disabled', 'disabled');
8094
8095        showResult(_createdinfo, 'info');
8096
8097        setTimeout(function () {
8098            _container.fadeTo(300, 0);
8099        }, 1000);
8100
8101        setTimeout(function () {
8102            almost = almost.replace('$user_firstname', $('#signupmodal #firstname').val());
8103            almost = almost.replace('$user_email', $('#signupmodal #email').val());
8104            _container.html(`${almost}`);
8105            showResult(_createdinfo, 'info');
8106        }, 1300);
8107
8108        setTimeout(function () {
8109            _container.fadeTo(300, 1);
8110        }, 1600);
8111
8112        setTimeout(function () {
8113            scrollToTop();
8114            showResult(_createdsuccess, 'success');
8115                //log('created');
8116        }, 4000);
8117
8118        setTimeout(function () {
8119            uppLogin(passport_data.email, passport_data.password).done(function () {
8120                setTimeout(function () {
8121                        //log(upp_page.verify);
8122                        sendVerify(upp_page.verify, redirect);
8123                    }, 2000);
8124
8125                setTimeout(function () {
8126                    $('button.continue')
8127                        .removeClass('working')
8128                        .removeClass('disabled')
8129                        .removeClass('gray-btn')
8130                        .addClass('gold-btn')
8131                        .prop('disabled', false);
8132
8133                    $('button.continue').on('click', function (e) {
8134                        e.preventDefault();
8135                        _signupmodal.fadeOut(300);
8136                        modalClosed();
8137                    });
8138                }, 3000);
8139            });
8140        }, 5500);
8141    });
8142}
8143
8144 function newPoints(passport) {
8145
8146     var bars = $('#npb>i.calc');
8147     var barscount = $('#npb').data('count');
8148     var animation_time = 100;
8149     var pointsoutput = $('#numcount');
8150     var ptitle = $('.points-title');
8151
8152     var basepoints = 0;
8153     var eventpoints = 0;
8154     var bonuspoints = 0;
8155
8156     var firstname = passport.firstname +'\'s ';
8157     firstname = '';
8158
8159     var easeOutCubic = function(t, b, c, d) {
8160         var ts = (t /= d) * t;
8161         var tc = ts * t;
8162         return b + c * (1.77635683940025e-15 * tc * ts + 0.999999999999998 * tc + -3 * ts + 3 * t);
8163     };
8164
8165     $('.newpoints li').hide();
8166     $('#newpoints .status-bar .silver .fill').html(_meter);
8167     $('#newpoints .status-bar div.silver .fill').css({'width': '0%'});
8168     ptitle.text(firstname+ 'Points: ');
8169
8170
8171    //https://ultrapassport.com/psdf213asdsfsdf/?key=adfsd23435r
8172
8173    var pointshistory = passport.points_history;
8174
8175    $.each( pointshistory, function( key, val ) {
8176
8177        if(val.id) {
8178
8179
8180            var dateformat = 'MMMM D, YYYY';
8181            var deldate = '';
8182            var created_by = '';
8183            var deleted_by = '';
8184            var delclass = '';
8185            var calcamount = Number(val.amount).toLocaleString();
8186            var calcamountint = Number(val.amount);
8187            var entrydate = moment(val.created_at).format(dateformat);
8188
8189
8190            if(calcamountint < 2000 && calcamountint > 100) {
8191                basepoints = calcamountint;
8192            }
8193            if(calcamountint > 25000) {
8194                eventpoints = calcamountint;
8195            }
8196            if(calcamountint < 25000 && calcamountint > 2000) {
8197                bonuspoints = calcamountint;
8198            }
8199
8200        }
8201
8202    })
8203
8204    log(basepoints, eventpoints, bonuspoints);
8205
8206    $('.awardcount').text('+'+Number(eventpoints).toLocaleString());
8207    $('.bonuscount').text('+'+Number(bonuspoints).toLocaleString());
8208
8209    if(bonuspoints < 11000) {
8210        $('.bonustext').text('Attend Your Home Event');
8211    } else {
8212        $('.bonustext').text('Attended Another Continent Event');
8213    }
8214
8215    // Set prior points
8216    pointsoutput.text(basepoints);
8217
8218    setTimeout(function(){
8219
8220        showResult('Wifi Login Successful', 'success');
8221        $('.newpoints').fadeIn(10);
8222        $('#newpoints .status-bar div.silver .fill').css({'width': '0%'});
8223
8224
8225        if(!eventpoints) {
8226            showResult('Oops, looks like something went wrong', 'error');
8227            return;
8228        }
8229
8230
8231    }, 100);
8232
8233    // count attendance points
8234    setTimeout(function(){
8235
8236        if(eventpoints) {
8237
8238            ptitle.text(firstname+ 'Points: +');
8239            showResult('Awarding attendance points', 'info');
8240            $('.slide2').slideDown(500, 'easeInOutExpo');
8241            //$('.slide1').slideUp(500, 'easeInOutExpo');
8242
8243            var newpoints = eventpoints + basepoints;
8244            var demo = new CountUp("numcount", basepoints, newpoints, 0, 3.0, options);
8245            demo.reset();
8246            demo.start();
8247
8248            var fillamount = (newpoints / uppgold) *100;
8249
8250            $('.status-bar div.silver .fill').css({'width': fillamount+'%'});
8251        }
8252
8253    }, 1500);
8254
8255
8256    // count bonus points
8257    setTimeout(function(){
8258
8259        if(bonuspoints) {
8260            showResult('Awarding bonus points', 'info');
8261            var currentpoints = eventpoints + basepoints;
8262            var newpoints = bonuspoints + currentpoints;
8263            var demo = new CountUp("numcount", currentpoints, newpoints, 0, 3.0, options);
8264            demo.start();
8265            $('.slide3').slideDown(500, 'easeInOutExpo');
8266            //$('.slide2').slideUp(500, 'easeInOutExpo');
8267
8268            var fillamount = (newpoints / uppgold) *100;
8269
8270            $('.status-bar div.silver .fill').css({'width': fillamount+'%'});
8271        }
8272
8273    }, 5000);
8274
8275
8276
8277    setTimeout(function(){
8278
8279        if(eventpoints) {
8280
8281            showResult('Points Redeemed Successfully', 'success');
8282        }
8283
8284        $('.slide4').slideDown(500, 'easeInOutExpo');
8285        /*
8286            $('.slide2').slideUp(500, 'easeInOutExpo');
8287            $('.slide3').slideUp(500, 'easeInOutExpo');
8288            $('.slide1').slideUp(500, 'easeInOutExpo');
8289            $('.slide3').slideUp(500, 'easeInOutExpo');
8290            */
8291
8292        }, 8000);
8293
8294
8295
8296
8297    var options = {
8298          useEasing : true,
8299          useGrouping : true,
8300          separator : ',',
8301          decimal : '.',
8302          prefix : '',
8303          suffix : '',
8304          //easingFn: easeOutCubic
8305    };
8306
8307/*
8308        if(bars) {
8309            var demo = new CountUp("numcount", 1000, 31000, 0, 3.4, options);
8310            $('.calcpoints2').on('click', function(e) {
8311
8312                demo.reset();
8313                demo.start();
8314                $('#npb>i.count').removeClass('count');
8315
8316                e.preventDefault();
8317                bars.toArray().map(function(e){
8318                    return function(){
8319                      return $(e).addClass('count').delay(animation_time).promise();
8320                    };
8321                }).reduce(function( cur, next ){
8322                    return cur.then(next);
8323                }, $().promise());
8324            });
8325        }*/
8326
8327
8328
8329    }
8330
8331$(document).on('logged-in', function(event,passport){
8332
8333  if( !!_ppprotect.length) {
8334
8335      var prepop = '&first='+passport.firstname+'&last='+passport.lastname+'&email='+passport.email;
8336      var prepop2 = '?first='+passport.firstname+'&last='+passport.lastname+'&email='+passport.email;
8337
8338      var privhtml = $('.pcontent').html();
8339
8340      //$('.pcontent').remove();
8341
8342      //_ppprotect.fadeTo(300,0);
8343      setTimeout(function(){
8344
8345        _ppprotect.html(privhtml);
8346
8347        if(passport) {
8348          var iframe = $('iframe.euticket');
8349          var iframeurl = $('iframe.euticket').attr('src');
8350          iframeurl = iframeurl + prepop; 
8351          iframe.attr('src', iframeurl);
8352
8353
8354
8355          var mxbtn = $('.mxticketlink');
8356          var mxbtnurl = $('.mxticketlink').attr('href');
8357          mxbtnurl = mxbtnurl + prepop2;
8358          mxbtn.attr('href', mxbtnurl);
8359
8360        }
8361
8362        _ppprotect.fadeTo(300,1);
8363      },350);
8364
8365      window.oncontextmenu = function () {
8366          //return false;
8367      }
8368
8369  }
8370
8371});
8372function createPost() {
8373
8374    _signup.validate({
8375        messages: {
8376            accept_terms: {
8377                required: _accepttext,
8378            },
8379        },
8380        rules: {
8381            email: {
8382                required: true,
8383                email: true,
8384            },
8385            password: {
8386                required: true,
8387                minlength: 8,
8388                maxlength: 100
8389            },
8390            firstname: {
8391                required: true,
8392            },
8393            lastname: {
8394                required: true,
8395            },
8396            birthday: {
8397                completeDate: true,
8398            },
8399            gender: {
8400                required: true,
8401            },
8402            country: {
8403                required: true,
8404            },
8405            homeevent: {
8406                required: true,
8407            },
8408            accept_terms: {
8409                required: true,
8410            }
8411        },
8412        errorPlacement: function(error, element) {
8413            if (element.attr('name') === 'accept_terms') {
8414                error.insertAfter(element.closest('.terms').find('label[for="accept_terms"]'));
8415            } else {
8416                error.insertAfter(element);
8417            }
8418        },
8419        submitHandler: function(form, event) {
8420            signup(form, event, this);
8421        }
8422    });
8423
8424    var autotest = getUrlParam('autotest');
8425    var first = getUrlParam('first');
8426    var last = getUrlParam('last');
8427    var email = getUrlParam('e');
8428    var emailfull = getUrlParam('email');
8429
8430    var _email = document.getElementById('email');
8431    if ( typeof(_email) != 'undefined' && _email != null ) {
8432        if ( email ) {
8433            _email.value = email;
8434            _signup.trigger('submit');
8435        }
8436
8437        if ( emailfull ) {
8438            _email.value = emailfull;
8439        }
8440    }
8441
8442    var fname = document.getElementById('firstname');
8443    if ( first && (typeof(fname) != 'undefined' && fname != null ) ) { fname.value = first; }
8444
8445    var lname = document.getElementById('lastname');
8446    if ( last && (typeof(lname) != 'undefined' && lname != null ) ) { lname.value = last; }
8447
8448
8449    getCFCountry().then(function (code) {
8450        if (code) {
8451            var $country = $('#signup-form select#country');
8452            if (!$country.val() && $country.find('option[value="' + code + '"]').length) {
8453                $country.val(code);
8454            }
8455        }
8456    });
8457
8458    if(autotest) {
8459        $('#signup-form input#firstname').val('Jamie');
8460        $('#signup-form input#lastname').val('Martin');
8461        $('#signup-form input#password').val('');
8462        $('#signup-form input#email').val('@ultra.us');
8463        $('#signup-form input#confirmemail').val('@ultra.us');
8464        $('#signup-form #birthday').val('04/24/2010');
8465        $('#signup-form select#country').val('US');
8466        $('#signup-form select#homeevent-signup').val('miami');
8467        setTimeout(function() { $('#signup-form select#homeevent-signup').val('miami') }, 500);
8468        setTimeout(function() { $('#signup-form select#homeevent-signup').val('miami') }, 2500);
8469        $('#signup-form #gender').val('male');
8470        $('#signup-form input#accept_terms').prop('checked', true);
8471    }
8472    homeEvents();
8473}
8474
8475function signup(form, event, validator) {
8476    let $form = $(form);
8477    $form.addClass('is-submitting');
8478
8479    let form_data = Object.fromEntries(new FormData(form).entries());
8480
8481    var sourceurl = document.location.hostname;
8482    var rcode = getUrlParam('rcode');
8483    if(rcode) {
8484        sourceurl = `${sourceurl}?rcode=${rcode}`;
8485    }
8486
8487    let verifyRedirect = $form.data('redirect');
8488
8489    let passport_data = {
8490        email: form_data.email,
8491        password: form_data.password,
8492        firstname: form_data.firstname,
8493        lastname: form_data.lastname,
8494        birthday: getDateISO(form.elements.birthday),
8495        gender: form_data.gender,
8496        country: form_data.country,
8497        homeevent: form_data.homeevent,
8498        lang: window.navigator.userLanguage || window.navigator.language,
8499        source: sourceurl,
8500    };
8501
8502
8503    passport.create(passport_data, $('#locale').val())
8504        .fail(function (jqXHR, textStatus, error) {
8505            $(document).trigger('rebuild');
8506            if (jqXHR.status == 400) {
8507                var responseJSON = jqXHR.responseJSON;
8508
8509                if (responseJSON.errors) {
8510                    //let errors = {};
8511                    $.each(responseJSON.errors, (error_key, error) => {
8512                        //errors[error_key] = i18n.t(`labels.errors.${error_key}`);
8513                        //showResult(errors[error_key], 'error');
8514                        showResult(error, 'error');
8515                    });
8516                    validator.showErrors(responseJSON.errors);
8517                    if (responseJSON.errors.birthday) {
8518                        showResult(errors.birthday, 'error');
8519                        $('#birthday').addClass('error');
8520                    }
8521
8522                    if (responseJSON.errors.password) {
8523                        showResult(errors.password, 'error');
8524                        //$('#password').addClass('error');
8525                    }
8526                }
8527            }
8528            else if (jqXHR.status == 409) {
8529                showResult(errors.duplicateemail, 'error');
8530            }
8531            else {
8532                showResult(errors.create, 'error');
8533            }
8534        })
8535        .done(function (data, textStatus, jqXHR) {
8536            window.dataLayer = window.dataLayer || [];
8537            window.dataLayer.push({
8538                'event': 'passport-create',
8539            });
8540            window.dataLayer.push({
8541                'event': 'sign_up',
8542                'method': 'passport'
8543            });
8544            scrollToTop();
8545
8546            $('button.uppsignup')
8547                .addClass('working')
8548                .attr('disabled', 'disabled');
8549
8550            showResult(_createdinfo, 'info');
8551
8552            setTimeout(function () {
8553                _container.fadeTo(300, 0);
8554            }, 1000);
8555
8556            setTimeout(function () {
8557                almost = almost.replace('$user_firstname', $('#firstname').val());
8558                almost = almost.replace('$user_email', $('#email').val());
8559                _container.html(almost);
8560                _container.fadeTo(300, 1);
8561            }, 1500);
8562
8563            setTimeout(function () {
8564                scrollToTop();
8565                showResult(_createdsuccess, 'success', { duration: 11000 });
8566            }, 4000);
8567
8568            setTimeout(function () {
8569                uppLogin(passport_data.email, passport_data.password)
8570                    .done(function () {
8571                        setTimeout(function () {
8572                            sendVerify(upp_page.verify, verifyRedirect);
8573                        }, 2000);
8574
8575                        setTimeout(function () {
8576                            $('button.continue')
8577                                .removeClass('working')
8578                                .removeClass('disabled')
8579                                .removeClass('gray-btn')
8580                                .addClass('gold-btn')
8581                                .prop('disabled', false);
8582                        }, 5000);
8583                    });
8584            }, 5500);
8585        });
8586}
8587
8588function sendVerify(url, redirect) {
8589    var locale = $('#locale').val();
8590
8591    let urlObj = new URL(url);
8592    if(redirect !== undefined) {
8593        urlObj.searchParams.append('redirect', redirect);
8594    }
8595
8596    showResult(_sendingverification, 'info');
8597    return passport.sendVerify(urlObj, locale)
8598    .fail(function(jqXHR, textStatus, error){
8599        //$(document).trigger('rebuild');
8600        /*if (jqXHR.status == 401) {
8601            //$(document).trigger('logged-out');
8602        } else if (jqXHR.status == 409) {
8603        } else {
8604        }*/
8605        showResult(errors.general, 'error');
8606  })
8607    .done(function(data, textStatus, jqXHR){
8608        showResult(_verifysent, 'success');
8609        //$(document).trigger('rebuild');
8610    })
8611}
8612
8613function postProcessVerify() {
8614    _verify.on('submit', function(e) {
8615        e.preventDefault();
8616    }).validate({
8617        submitHandler: function(form) {
8618            processVerify(form);
8619        }
8620    });
8621}
8622
8623function processVerify() {
8624
8625    var token = $('#token').val();
8626    var email = $('#verifyemail').val();
8627    var locale = $('#locale').val();
8628
8629    return passport.processVerify(token, email, upp_page.events, locale)
8630    .fail(function(jqXHR, textStatus, error){
8631        $(document).trigger('rebuild');
8632        switch (jqXHR.status) {
8633            case 409:
8634                showResult(_accountverified, 'success');
8635                setTimeout(function() {
8636                    passportRedirect();
8637                }, 2000);
8638                return;
8639            case 422:
8640                showResult(errors.pnc, 'warning');
8641                var nc = jqXHR.responseJSON;
8642                var editParams = {
8643                    token: nc.token
8644                };
8645                var redirect = getUrlParam('redirect');
8646                if (redirect){
8647                    editParams.redirect = redirect;
8648                }
8649                var editurl = upp_page.edit + '?' + $.param(editParams);
8650                document.location.assign(editurl);
8651                break;
8652            case 401:
8653            case 404:
8654            default:
8655                showResult(errors.token, 'error');
8656        }
8657    })
8658    .done(function(data, textStatus, jqXHR){
8659        showResult(_accountverified, 'success');
8660        $(document).trigger('rebuild');
8661
8662        setTimeout(function() {
8663            passportRedirect();
8664        }, 2000);
8665    })
8666}
8667  /*
8668///////////////////////////// Create tests for
8669
8670signup
8671lost password invalid
8672lost password
8673login
8674resend email verifiy
8675subscribe
8676unsubscribe
8677register
8678output id to delete
8679
8680/////////////////////////////
8681*/
8682
8683var testlocale = 'en';
8684var testemail = '';
8685var testpass = '';
8686
8687var testnumber = Math.floor((Math.random() * 10000) + 1);;
8688
8689var test = {
8690    login : 'Login for: ',
8691    signup : 'Signup',
8692    subscribe: 'Subscribed',
8693    unsubscribe: 'Unsubscribed',
8694    register: 'Registered',
8695    verify: 'Send Email Verifaction',
8696    editname: 'Edit Name',
8697    editpass: 'Edit Password',
8698    editemail: 'Edit Email',
8699    lost: 'Trigger Lost Password:',
8700}
8701
8702var terrors = {
8703    error: 'Error',
8704    conflict: 'Conflict',
8705    cookies: 'Cookies',
8706    newemail: 'Validate New Email',
8707    activated: 'Already Activated',
8708}
8709
8710
8711function unitTests() {
8712
8713    $(document).on('change', '#testlocale', function(){
8714
8715        testlocale = $(this).val();
8716
8717    });
8718
8719
8720    $('.rt').on('click', function(){
8721
8722
8723        testemail = $('#testemail').val();
8724        if (!testemail) {
8725            testemail = 'admin+'+testnumber+'@ultra.us';
8726        }
8727
8728        testpass = $('#testpass').val();
8729        if (!testpass) {
8730            testpass = 'testtest';
8731        }
8732
8733        var testData = {
8734            firstname : 'Test '+testnumber,
8735            lastname : 'Bar',
8736            email: testemail,
8737            password: testpass,
8738            country: 'US',
8739            birthday: '1985-01-02',
8740            gender: 'male',
8741            homeevent: 'miami',
8742            source: 'unit.tests'
8743        }
8744
8745
8746        showResult('Tests Running for ' + testData.email, 'info');
8747
8748
8749        _utbody.html('');
8750        passport.logout();
8751
8752        lostPasswordTest(testData.email)
8753        .then(function(result) { return signupTest(testData); })
8754        .then(function(result) { return loginTest(testData); })
8755        .then(function(result) { return sendVerifyTest(upp_page.verify); })
8756        .then(function(result) { return lostPasswordTest(testData.email); })
8757        .then(function(result) { return subscribeTest(); })
8758        .then(function(result) { return registerTest(testData); })
8759        .then(function(result) { return unsubscribeTest(); })
8760        .then(function(result) { return editNameTest(testData); })
8761        //.then(function(result) { return editEmailTest(testData); })
8762        //.then(function(result) { return editPasswordTest(testData); })
8763        .then(function(result) { showResult('Tests Completed', 'success'); $(document).trigger('rebuild');} );
8764
8765    });
8766
8767
8768}
8769
8770
8771function editEmailTest(testData) {
8772
8773    var newemail = 'gg+'+testnumber+'[email protected]';
8774
8775    var formdata = {
8776        email: newemail,
8777        lastname: 'Bar'
8778    };
8779
8780    return passport.update(formdata, upp_page.change_email, testlocale)
8781    .fail(function(jqXHR, textStatus, error){
8782
8783        log(jqXHR.status, textStatus, error);
8784        var error = terrors.error;
8785        if (jqXHR.status == 401) {
8786        } else if (jqXHR.status == 0) {
8787            error = terrors.emailchange;
8788        } else if (jqXHR.status == 409) {
8789            error = terrors.conflict;
8790        } else {
8791            error = terrors.cookies;
8792        }
8793        var fail = $.parseHTML(testResult(test.editemail+' '+error,0));
8794        _utbody.append(fail);
8795
8796    })
8797    .done(function(data, textStatus, jqXHR){
8798
8799        var good = $.parseHTML(testResult('Requested change email to: '+formdata.email,1));
8800        _utbody.append(good);
8801
8802    })
8803
8804}
8805
8806function editPasswordTest(testData) {
8807
8808    var formdata = {
8809        password: 'newpass123'
8810    };
8811
8812    return passport.update(formdata, upp_page.change_email, testlocale)
8813    .fail(function(jqXHR, textStatus, error){
8814
8815        var error = terrors.error;
8816        if (jqXHR.status == 401) {
8817        } else if (jqXHR.status == 409) {
8818            error = terrors.conflict;
8819        } else {
8820            error = terrors.cookies;
8821        }
8822        var fail = $.parseHTML(testResult(test.editpass+' '+error,0));
8823        _utbody.append(fail);
8824
8825    })
8826    .done(function(data, textStatus, jqXHR){
8827
8828        var passData = {
8829            email: testData.email,
8830            password: formdata.password,
8831        }
8832
8833        loginTest(passData);
8834
8835        var good = $.parseHTML(testResult('Changed password to: "'+formdata.password+'"',1));
8836        _utbody.append(good);
8837
8838    })
8839
8840}
8841
8842
8843function editNameTest(testData) {
8844
8845    var newname = 'Modded '+testData.firstname;
8846
8847    var formdata = {
8848        firstname: newname,
8849    };
8850
8851    return passport.update(formdata, upp_page.change_email, testlocale)
8852    .fail(function(jqXHR, textStatus, error){
8853
8854        var error = terrors.error;
8855        if (jqXHR.status == 401) {
8856        } else if (jqXHR.status == 409) {
8857            error = terrors.conflict;
8858        } else {
8859            error = terrors.cookies;
8860        }
8861        var fail = $.parseHTML(testResult(test.editname+' '+error,0));
8862        _utbody.append(fail);
8863
8864    })
8865    .done(function(data, textStatus, jqXHR){
8866
8867        var good = $.parseHTML(testResult('Changed firstname from: "'+testData.firstname+'"" to "'+newname+'"',1));
8868        _utbody.append(good);
8869
8870    })
8871
8872}
8873
8874
8875
8876function subscribeTest() {
8877
8878    return passport.subscribe('miami')
8879    .fail(function(jqXHR, textStatus, error){
8880        var error = terrors.error;
8881        if (jqXHR.status == 401) {
8882        } else if (jqXHR.status == 409) {
8883            error = terrors.conflict;
8884        } else {
8885            error = terrors.cookies;
8886        }
8887        var fail = $.parseHTML(testResult(test.subscribe+' '+error,0));
8888        _utbody.append(fail);
8889
8890    })
8891    .done(function(data, textStatus, jqXHR){
8892
8893        var good = $.parseHTML(testResult(test.subscribe+' to miami',1));
8894        _utbody.append(good);
8895
8896    })
8897
8898}
8899
8900
8901function unsubscribeTest() {
8902
8903    return passport.unsubscribe('miami')
8904    .fail(function(jqXHR, textStatus, error){
8905
8906        var error = terrors.error;
8907        if (jqXHR.status == 401) {
8908        } else if (jqXHR.status == 409) {
8909            error = terrors.conflict;
8910        } else {
8911            error = terrors.cookies;
8912        }
8913        var fail = $.parseHTML(testResult(test.unsubscribe+' '+error,0));
8914        _utbody.append(fail);
8915
8916    })
8917    .done(function(data, textStatus, jqXHR){
8918
8919        var good = $.parseHTML(testResult(test.unsubscribe+' to miami',1));
8920        _utbody.append(good);
8921
8922    })
8923
8924}
8925
8926function registerTest(testData) {
8927
8928    return passport.register('miami-2015')
8929    .fail(function(jqXHR, textStatus, error){
8930
8931        var error = terrors.error;
8932        if (jqXHR.status == 401) {
8933        } else if (jqXHR.status == 409) {
8934            error = terrors.conflict;
8935        } else {
8936            error = terrors.cookies;
8937        }
8938        var fail = $.parseHTML(testResult(test.register+' '+error,0));
8939        _utbody.append(fail);
8940
8941    })
8942    .done(function(data, textStatus, jqXHR){
8943
8944        var good = $.parseHTML(testResult(test.register+' for miami-2015',1));
8945        _utbody.append(good);
8946
8947    })
8948
8949}
8950
8951
8952function sendVerifyTest(path) {
8953
8954    return passport.sendVerify(path, testlocale)
8955    .fail(function(jqXHR, textStatus, error){
8956        var error = terrors.error;
8957        if (jqXHR.status == 401) {
8958        } else if (jqXHR.status == 409) {
8959            error = terrors.conflict;
8960        } else {
8961            error = terrors.cookies;
8962        }
8963        var fail = $.parseHTML(testResult(test.verify+' '+error,0));
8964        _utbody.append(fail);
8965    })
8966    .done(function(data, textStatus, jqXHR){
8967
8968        var good = $.parseHTML(testResult(test.verify,1));
8969        _utbody.append(good);
8970
8971    })
8972
8973}
8974
8975
8976function loginTest(testData) {
8977
8978    return passport.login(testData.email,testData.password)
8979    .fail(function(jqXHR, textStatus, error){
8980        var error = terrors.error;
8981        if (jqXHR.status == 401) {
8982        } else if (jqXHR.status == 409) {
8983            error = terrors.conflict;
8984        } else {
8985            error = terrors.cookies;
8986        }
8987        var fail = $.parseHTML(testResult(test.login+' '+error+' '+testData.email,0));
8988        _utbody.append(fail);
8989    })
8990    .done(function(data, textStatus, jqXHR){
8991
8992        $(document).trigger('rebuild');
8993
8994        var good = $.parseHTML(testResult(test.login+' '+testData.email,1));
8995        _utbody.append(good);
8996
8997    })
8998
8999}
9000
9001
9002
9003function lostPasswordTest(email) {
9004
9005
9006    return passport.sendReset(email, upp_page.reset_password, upp_page.signup, testlocale)
9007    .fail(function(jqXHR, textStatus, error){
9008
9009        var error = terrors.error;
9010        if (jqXHR.status == 401) {
9011        } else if (jqXHR.status == 409) {
9012            error = terrors.conflict;
9013        } else {
9014            error = terrors.cookies;
9015        }
9016        var fail = $.parseHTML(testResult(test.lost+' '+error+' for '+email,0));
9017        _utbody.append(fail);
9018
9019    })
9020    .done(function(data, textStatus, jqXHR){
9021
9022        var good = $.parseHTML(testResult(test.lost+' for '+email,1));
9023        _utbody.append(good);
9024
9025    })
9026
9027}
9028
9029function signupTest(testData) {
9030
9031    return passport.create(testData)
9032    .fail(function(jqXHR, textStatus, error){
9033        $(document).trigger('rebuild');
9034
9035        var error = terrors.error;
9036        if (jqXHR.status == 401) {
9037        } else if (jqXHR.status == 409) {
9038            error = terrors.conflict;
9039        } else {
9040            error = terrors.cookies;
9041        }
9042        var fail = $.parseHTML(testResult(test.signup+' '+error,0));
9043        _utbody.append(fail);
9044
9045
9046    })
9047    .done(function(data, textStatus, jqXHR){
9048
9049        var good = $.parseHTML(testResult(test.signup+' account created for '+testData.email+' : '+testData.password,1));
9050        _utbody.append(good);
9051
9052    });
9053}
9054
9055
9056
9057function testResult(test,status) {
9058
9059    if (status === 1) {
9060        status = 'pass';
9061    } else {
9062        status = 'fail';
9063    };
9064
9065    return '<tr class="'+status+' test"><td><p>'+test+'</p></td><td align="center"><strong>'+status.toUpperCase()+'</strong></td></tr>';
9066}
9067
9068//# sourceMappingURL=upp.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.