Initial commit: AIFO official portal web.
Add static site, shared layout, and Node dev server with standard .gitignore. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+6328
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+3894
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Vendored
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,425 @@
|
||||
+(function(w){w.CHALLENGE_FLOOR_BOOT={currencyRates:{
|
||||
USD: { symbol: '$', rate: 1 },
|
||||
GBP: { symbol: '£', rate: 1 },
|
||||
CAD: { symbol: '$', rate: 1 },
|
||||
AUD: { symbol: '$', rate: 1 },
|
||||
EUR: { symbol: '€', rate: 1 },
|
||||
},programData:{
|
||||
'1step': {
|
||||
USD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','25k','50k','100k','200k'],
|
||||
data: {
|
||||
'10k': { fee: '89', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:2},
|
||||
'25k': { fee: '179', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:3 },
|
||||
'50k': { fee: '359', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:4 },
|
||||
'100k': { fee: '579', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:5 },
|
||||
'200k': { fee: '1,239', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:7 }
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','35k','70k','140k'],
|
||||
data: {
|
||||
'10k': { fee: '68', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:2},
|
||||
'20k': { fee: '136', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:3 },
|
||||
'35k': { fee: '272', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:4 },
|
||||
'70k': { fee: '438', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:5 },
|
||||
'140k': { fee: '937', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:7 }
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k','130k','260k'],
|
||||
data: {
|
||||
'15k': { fee: '125', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:2},
|
||||
'30k': { fee: '251', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:3 },
|
||||
'65k': { fee: '502', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:4 },
|
||||
'130k': { fee: '810', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:5 },
|
||||
'260k': { fee: '1732', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:7 }
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k','130k','260k'],
|
||||
data: {
|
||||
'15k': { fee: '129', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:2},
|
||||
'30k': { fee: '259', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:3 },
|
||||
'65k': { fee: '519', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:4 },
|
||||
'130k': { fee: '836', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:5 },
|
||||
'260k': { fee: '1789', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:7 }
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','40k','80k','160k'],
|
||||
data: {
|
||||
'10k': { fee: '78', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:2},
|
||||
'20k': { fee: '155', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:3 },
|
||||
'40k': { fee: '311', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:4 },
|
||||
'80k': { fee: '502', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:5 },
|
||||
'160k': { fee: '1073', daily: '3%', max: '5%', target: '8%', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:13, variant_id:7 }
|
||||
}
|
||||
}
|
||||
},
|
||||
'2step': {
|
||||
USD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:['100k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k', '25k', '50k', '100k', '200k'],
|
||||
data: {
|
||||
'10k': { fee: '109', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:9 },
|
||||
'25k': { fee: '219', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:10 },
|
||||
'50k': { fee: '359', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:11 },
|
||||
'100k': { fee: '589', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:12 },
|
||||
'200k': { fee: '1,249', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:14 }
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:['70k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','35k','70k','140k'],
|
||||
data: {
|
||||
'10k': { fee: '83', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:9 },
|
||||
'20k': { fee: '166', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:10 },
|
||||
'35k': { fee: '272', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:11 },
|
||||
'70k': { fee: '446', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:12 },
|
||||
'140k': { fee: '945', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:14 }
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:['130k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k','130k','260k'],
|
||||
data: {
|
||||
'15k': { fee: '153', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:9 },
|
||||
'30k': { fee: '307', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:10 },
|
||||
'65k': { fee: '502', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:11 },
|
||||
'130k': { fee: '824', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:12 },
|
||||
'260k': { fee: '1746', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:14 }
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:['130k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k','130k','260k'],
|
||||
data: {
|
||||
'15k': { fee: '158', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:9 },
|
||||
'30k': { fee: '317', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:10 },
|
||||
'65k': { fee: '519', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:11 },
|
||||
'130k': { fee: '851', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:12 },
|
||||
'260k': { fee: '1803', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:14 }
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:['80k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','40k','80k','160k'],
|
||||
data: {
|
||||
'10k': { fee: '95', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:9 },
|
||||
'20k': { fee: '190', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:10 },
|
||||
'40k': { fee: '311', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:11 },
|
||||
'80k': { fee: '510', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:12 },
|
||||
'160k': { fee: '1082', daily: ' 3%', max: '8%', target: '<div class="chall-phase-stack"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">5%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">8%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allowed', product_id:14, variant_id:14 }
|
||||
}
|
||||
}
|
||||
},
|
||||
'3step': {
|
||||
USD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k', '25k', '50k', '100k', '200k'],
|
||||
data: {
|
||||
'10k': { fee: '69', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:16},
|
||||
'25k': { fee: '149', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:17 },
|
||||
'50k': { fee: '299', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:18 },
|
||||
'100k': { fee: '459', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:19 },
|
||||
'200k': { fee: '909', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:21 }
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','35k','70k','140k'],
|
||||
data: {
|
||||
'10k': { fee: '53', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:16},
|
||||
'20k': { fee: '113', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:17 },
|
||||
'35k': { fee: '227', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:18 },
|
||||
'70k': { fee: '348', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:19 },
|
||||
'140k': { fee: '688', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:21 }
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k','130k','260k'],
|
||||
data: {
|
||||
'15k': { fee: '97', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:16},
|
||||
'30k': { fee: '209', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:17 },
|
||||
'65k': { fee: '418', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:18 },
|
||||
'130k': { fee: '642', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:19 },
|
||||
'260k': { fee: '1271', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:21 }
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k','130k','260k'],
|
||||
data: {
|
||||
'15k': { fee: '100', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:16},
|
||||
'30k': { fee: '216', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:17 },
|
||||
'65k': { fee: '432', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:18 },
|
||||
'130k': { fee: '663', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:19 },
|
||||
'260k': { fee: '1313', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:21 }
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','40k','80k','160k'],
|
||||
data: {
|
||||
'10k': { fee: '60', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:16},
|
||||
'20k': { fee: '129', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:17 },
|
||||
'40k': { fee: '259', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:18 },
|
||||
'80k': { fee: '398', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:19 },
|
||||
'160k': { fee: '787', daily: ' 3%', max: '5%', target: '<div class="chall-phase-stack chall-phase-stack--3"><div class="chall-phase-line"><span class="chall-phase-name">Phase 1</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 2</span><span class="chall-phase-pct text-orange">3%</span></div><div class="chall-phase-line"><span class="chall-phase-name">Phase 3</span><span class="chall-phase-pct text-orange">5%</span></div></div>', split: '80%~95%', miniday: '3 days', payout: '14 days', news: 'Allow', product_id:15, variant_id:21 }
|
||||
}
|
||||
}
|
||||
},
|
||||
'instant': {
|
||||
pro: {
|
||||
USD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '109', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:23 },
|
||||
'25k': { fee: '219', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:24 },
|
||||
'50k': { fee: '399', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:25 },
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','35k'],
|
||||
data: {
|
||||
'10k': { fee: '83', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:23 },
|
||||
'20k': { fee: '166', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:24 },
|
||||
'35k': { fee: '302', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:25 },
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k'],
|
||||
data: {
|
||||
'15k': { fee: '153', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:23 },
|
||||
'30k': { fee: '307', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:24 },
|
||||
'65k': { fee: '558', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:25 },
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '15k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['15k','30k','65k'],
|
||||
data: {
|
||||
'15k': { fee: '158', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:23 },
|
||||
'30k': { fee: '317', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:24 },
|
||||
'65k': { fee: '576', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:25 },
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['10k','20k','40k'],
|
||||
data: {
|
||||
'10k': { fee: '95', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:23 },
|
||||
'20k': { fee: '190', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:24 },
|
||||
'40k': { fee: '346', daily: '2%', max: '5%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:4, variant_id:25 },
|
||||
}
|
||||
}
|
||||
},
|
||||
aifo: {
|
||||
USD: {
|
||||
defaultSize: '100k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['100k', '200k'],
|
||||
data: {
|
||||
'100k': { fee: '749', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:33 },
|
||||
'200k': { fee: '1,199', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:35 }
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '70k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['70k','140k'],
|
||||
data: {
|
||||
'70k': { fee: '567', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:33 },
|
||||
'140k': { fee: '907', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:35 }
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '130k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['130k','260k'],
|
||||
data: {
|
||||
'130k': { fee: '1047', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:33 },
|
||||
'260k': { fee: '1676', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:35 }
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '130k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['130k','260k'],
|
||||
data: {
|
||||
'130k': { fee: '1082', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:33 },
|
||||
'260k': { fee: '1731', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:35 }
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '80k',
|
||||
best_value_lable:[],
|
||||
discount_lable:[],
|
||||
availableSizes: ['80k','160k'],
|
||||
data: {
|
||||
'80k': { fee: '649', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:33 },
|
||||
'160k': { fee: '1039', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:5, variant_id:35 }
|
||||
}
|
||||
}
|
||||
},
|
||||
NoCommission: {
|
||||
USD: {
|
||||
defaultSize: '100k',
|
||||
best_value_lable:['100k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['100k'],
|
||||
data: {
|
||||
'100k': { fee: '869', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow', product_id:19, variant_id:36},
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '70k',
|
||||
best_value_lable:['70k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['70k'],
|
||||
data: {
|
||||
'70k': { fee: '658', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow',product_id:19, variant_id:36 },
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '130k',
|
||||
best_value_lable:['130k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['130k'],
|
||||
data: {
|
||||
'130k': { fee: '1215', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow',product_id:19, variant_id:36 },
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '130k',
|
||||
best_value_lable:['130k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['130k'],
|
||||
data: {
|
||||
'130k': { fee: '1255', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow',product_id:19, variant_id:36 },
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '80k',
|
||||
best_value_lable:['80k'],
|
||||
discount_lable:[],
|
||||
availableSizes: ['80k'],
|
||||
data: {
|
||||
'80k': { fee: '753', daily: '2%', max: '4%', target: '4%', consistency: '15%|25%', split: '80%~95%', payout: 'payout on demand', news: 'Allow',product_id:19, variant_id:36 },
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
'aifolite': {
|
||||
USD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable: ['25k'],
|
||||
discount_lable: [],
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '149', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 38 },
|
||||
'25k': { fee: '329', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 39 },
|
||||
'50k': { fee: '599', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 40 }
|
||||
}
|
||||
},
|
||||
GBP: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable: ['25k'],
|
||||
discount_lable: [],
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '149', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 38 },
|
||||
'25k': { fee: '329', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 39 },
|
||||
'50k': { fee: '599', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 40 }
|
||||
}
|
||||
},
|
||||
CAD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable: ['25k'],
|
||||
discount_lable: [],
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '149', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 38 },
|
||||
'25k': { fee: '329', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 39 },
|
||||
'50k': { fee: '599', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 40 }
|
||||
}
|
||||
},
|
||||
AUD: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable: ['25k'],
|
||||
discount_lable: [],
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '149', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 38 },
|
||||
'25k': { fee: '329', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 39 },
|
||||
'50k': { fee: '599', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 40 }
|
||||
}
|
||||
},
|
||||
EUR: {
|
||||
defaultSize: '10k',
|
||||
best_value_lable: ['25k'],
|
||||
discount_lable: [],
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '149', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 38 },
|
||||
'25k': { fee: '329', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 39 },
|
||||
'50k': { fee: '599', target: '3%', enhanced_target: '6%+', window: '24 Hours', floating: '1%', max: '2%', split: '90%~95%', payout: 'within 24h', product_id: 23, variant_id: 40 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};})(typeof window !== "undefined" ? window : this);
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,57 @@
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
const images = document.querySelectorAll('.article_content img');
|
||||
if (!images.length) return;
|
||||
|
||||
// 创建 lightbox
|
||||
const lightbox = document.createElement('div');
|
||||
lightbox.className = 'img-lightbox';
|
||||
lightbox.innerHTML = '<img src="" alt="">';
|
||||
document.body.appendChild(lightbox);
|
||||
|
||||
const lightboxImg = lightbox.querySelector('img');
|
||||
|
||||
let scale = 1;
|
||||
const SCALE_STEP = 0.1;
|
||||
const SCALE_MIN = 1;
|
||||
const SCALE_MAX = 3;
|
||||
|
||||
function updateScale() {
|
||||
lightboxImg.style.transform = `scale(${scale})`;
|
||||
lightboxImg.style.cursor = scale > 1 ? 'zoom-out' : 'zoom-in';
|
||||
}
|
||||
|
||||
images.forEach(img => {
|
||||
img.addEventListener('click', () => {
|
||||
lightboxImg.src = img.src;
|
||||
scale = 1;
|
||||
updateScale();
|
||||
lightbox.classList.add('active');
|
||||
});
|
||||
});
|
||||
|
||||
// 鼠标滚轮缩放
|
||||
lightbox.addEventListener('wheel', (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (!lightbox.classList.contains('active')) return;
|
||||
|
||||
if (e.deltaY < 0) {
|
||||
scale = Math.min(scale + SCALE_STEP, SCALE_MAX);
|
||||
} else {
|
||||
scale = Math.max(scale - SCALE_STEP, SCALE_MIN);
|
||||
}
|
||||
|
||||
updateScale();
|
||||
}, { passive: false });
|
||||
|
||||
// 点击背景关闭
|
||||
lightbox.addEventListener('click', (e) => {
|
||||
if (e.target !== lightboxImg) {
|
||||
lightbox.classList.remove('active');
|
||||
lightboxImg.src = '';
|
||||
scale = 1;
|
||||
updateScale();
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
// Plugins init
|
||||
$(".highlight")[0] && hljs.initHighlightingOnLoad();
|
||||
|
||||
// Copy code blocks to clipboard
|
||||
$("figure.highlight, div.highlight").each(function() {
|
||||
var t = '<div class="code-clipboard"><button class="btn-clipboard" title="Copy to clipboard">Copy</button></div>';
|
||||
$(this).before(t);
|
||||
$(".btn-clipboard").tooltip().on("mouseleave", function() {
|
||||
$(this).tooltip("hide")
|
||||
});
|
||||
});
|
||||
|
||||
var t = new Clipboard(".btn-clipboard", {
|
||||
target: function(e) {
|
||||
return e.parentNode.nextElementSibling
|
||||
}
|
||||
});
|
||||
t.on("success", function(t) {
|
||||
e(t.trigger).attr("title", "Copied!").tooltip("_fixTitle").tooltip("show").attr("title", "Copy to clipboard").tooltip("_fixTitle");
|
||||
t.clearSelection()
|
||||
});
|
||||
t.on("error", function(t) {
|
||||
var n = /Mac/i.test(navigator.userAgent) ? "⌘" : "Ctrl-";
|
||||
var r = "Press " + n + "C to copy";
|
||||
e(t.trigger).attr("title", r).tooltip("_fixTitle").tooltip("show").attr("title", "Copy to clipboard").tooltip("_fixTitle")
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
document.querySelectorAll('[data-include]').forEach(el => {
|
||||
fetch(el.dataset.include)
|
||||
.then(res => res.text())
|
||||
.then(html => el.innerHTML = html);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,927 @@
|
||||
"use strict";
|
||||
|
||||
(function($){
|
||||
|
||||
$(window).on("load", function() {
|
||||
|
||||
}),
|
||||
|
||||
$(window).on('load resize', function() {
|
||||
|
||||
// Background image holder - Static hero with fullscreen autosize
|
||||
if ($('.spotlight').length) {
|
||||
$('.spotlight').each(function() {
|
||||
|
||||
var $this = $(this);
|
||||
var holderHeight;
|
||||
|
||||
if ($this.data('spotlight') == 'fullscreen') {
|
||||
if ($this.data('spotlight-offset')) {
|
||||
var offsetHeight = $('body').find($this.data('spotlight-offset')).height();
|
||||
holderHeight = $(window).height() - offsetHeight;
|
||||
}
|
||||
else {
|
||||
holderHeight = $(window).height();
|
||||
}
|
||||
|
||||
|
||||
if ($(window).width() > 991) {
|
||||
$this.find('.spotlight-holder').css({
|
||||
'height': holderHeight + 'px'
|
||||
});
|
||||
}
|
||||
else {
|
||||
$this.find('.spotlight-holder').css({
|
||||
'height': 'auto'
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}),
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
// Plugins init
|
||||
$(".scrollbar-inner")[0] && $(".scrollbar-inner").scrollbar().scrollLock();
|
||||
$('[data-stick-in-parent="true"]')[0] && $('[data-stick-in-parent="true"]').stick_in_parent();
|
||||
$('.selectpicker')[0] && $('.selectpicker').selectpicker();
|
||||
$('.textarea-autosize')[0] && autosize($('.textarea-autosize'));
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
$('[data-toggle="popover"]').each(function() {
|
||||
var popoverClass = '';
|
||||
if($(this).data('color')) {
|
||||
popoverClass = 'popover-'+$(this).data('color');
|
||||
}
|
||||
$(this).popover({
|
||||
trigger: 'focus',
|
||||
template: '<div class="popover '+ popoverClass +'" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
// Floating label
|
||||
$('.form-control').on('focus blur', function(e) {
|
||||
$(this).parents('.form-group').toggleClass('focused', (e.type === 'focus' || this.value.length > 0));
|
||||
}).trigger('blur');
|
||||
|
||||
|
||||
// Custom input file
|
||||
$('.custom-input-file').each(function() {
|
||||
var $input = $(this),
|
||||
$label = $input.next('label'),
|
||||
labelVal = $label.html();
|
||||
|
||||
$input.on('change', function(e) {
|
||||
var fileName = '';
|
||||
|
||||
if (this.files && this.files.length > 1)
|
||||
fileName = (this.getAttribute('data-multiple-caption') || '').replace('{count}', this.files.length);
|
||||
else if (e.target.value)
|
||||
fileName = e.target.value.split('\\').pop();
|
||||
|
||||
if (fileName)
|
||||
$label.find('span').html(fileName);
|
||||
else
|
||||
$label.html(labelVal);
|
||||
});
|
||||
|
||||
|
||||
// Firefox bug fix
|
||||
$input.on('focus', function() {
|
||||
$input.addClass('has-focus');
|
||||
})
|
||||
.on('blur', function() {
|
||||
$input.removeClass('has-focus');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// NoUI Slider
|
||||
if ($(".input-slider-container")[0]) {
|
||||
$('.input-slider-container').each(function() {
|
||||
|
||||
var slider = $(this).find('.input-slider');
|
||||
var sliderId = slider.attr('id');
|
||||
var minValue = slider.data('range-value-min');
|
||||
var maxValue = slider.data('range-value-max');
|
||||
|
||||
var sliderValue = $(this).find('.range-slider-value');
|
||||
var sliderValueId = sliderValue.attr('id');
|
||||
var startValue = sliderValue.data('range-value-low');
|
||||
|
||||
var c = document.getElementById(sliderId),
|
||||
d = document.getElementById(sliderValueId);
|
||||
|
||||
noUiSlider.create(c, {
|
||||
start: [parseInt(startValue)],
|
||||
connect: [true, false],
|
||||
//step: 1000,
|
||||
range: {
|
||||
'min': [parseInt(minValue)],
|
||||
'max': [parseInt(maxValue)]
|
||||
}
|
||||
});
|
||||
|
||||
c.noUiSlider.on('update', function(a, b) {
|
||||
d.textContent = a[b];
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
if ($("#input-slider-range")[0]) {
|
||||
var c = document.getElementById("input-slider-range"),
|
||||
d = document.getElementById("input-slider-range-value-low"),
|
||||
e = document.getElementById("input-slider-range-value-high"),
|
||||
f = [d, e];
|
||||
|
||||
noUiSlider.create(c, {
|
||||
start: [parseInt(d.getAttribute('data-range-value-low')), parseInt(e.getAttribute('data-range-value-high'))],
|
||||
connect: !0,
|
||||
range: {
|
||||
min: parseInt(c.getAttribute('data-range-value-min')),
|
||||
max: parseInt(c.getAttribute('data-range-value-max'))
|
||||
}
|
||||
}), c.noUiSlider.on("update", function(a, b) {
|
||||
f[b].textContent = a[b]
|
||||
})
|
||||
}
|
||||
|
||||
// Scroll to anchor with animation
|
||||
$('.scroll-me, .toc-entry a').on('click', function(event) {
|
||||
var hash = $(this).attr('href');
|
||||
var offset = $(this).data('scroll-to-offset') ? $(this).data('scroll-to-offset') : 0;
|
||||
|
||||
// Animate scroll to the selected section
|
||||
$('html, body').stop(true, true).animate({
|
||||
scrollTop: $(hash).offset().top - offset
|
||||
}, 600);
|
||||
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
}),
|
||||
|
||||
$(document).ready(function() {
|
||||
$("body").on("click", "[data-action]", function(e) {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
var $this = $(this);
|
||||
var action = $this.data('action');
|
||||
var target = '';
|
||||
|
||||
switch (action) {
|
||||
case "offcanvas-open":
|
||||
target = $this.data("target"), $(target).addClass("open"), $("body").append('<div class="body-backdrop" data-action="offcanvas-close" data-target=' + target + " />");
|
||||
break;
|
||||
case "offcanvas-close":
|
||||
target = $this.data("target"), $(target).removeClass("open"), $("body").find(".body-backdrop").remove();
|
||||
break;
|
||||
|
||||
case 'aside-open':
|
||||
target = $this.data('target');
|
||||
$this.data('action', 'aside-close');
|
||||
$this.addClass('toggled');
|
||||
$(target).addClass('toggled');
|
||||
$('.content').append('<div class="body-backdrop" data-action="aside-close" data-target='+target+' />');
|
||||
break;
|
||||
|
||||
|
||||
case 'aside-close':
|
||||
target = $this.data('target');
|
||||
$this.data('action', 'aside-open');
|
||||
$('[data-action="aside-open"], '+target).removeClass('toggled');
|
||||
$('.content, .header').find('.body-backdrop').remove();
|
||||
break;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
// nav
|
||||
|
||||
// Check if top code bar is visible
|
||||
function isTopCodeBarVisible() {
|
||||
const $topCodeBar = $('.top-code-bar');
|
||||
|
||||
// If element doesn't exist
|
||||
if (!$topCodeBar.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Use jQuery method to check if visible
|
||||
return $topCodeBar.is(':visible') && $topCodeBar.css('visibility') !== 'hidden' && $topCodeBar.height() > 0;
|
||||
}
|
||||
|
||||
function isMobileNavViewport() {
|
||||
if (window.matchMedia("(max-width: 991.98px)").matches) {
|
||||
return true;
|
||||
}
|
||||
if (window.matchMedia("(min-width: 992px)").matches) {
|
||||
return false;
|
||||
}
|
||||
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i
|
||||
.test(navigator.userAgent);
|
||||
}
|
||||
|
||||
function initDesktopFixedNav() {
|
||||
if (isMobileNavViewport()) return;
|
||||
|
||||
const $nav = $('#nav');
|
||||
if (!$nav.length) return;
|
||||
|
||||
const threshold = 35;
|
||||
const defaultTop = isTopCodeBarVisible() ? '35px' : '0';
|
||||
const fixedTop = '0';
|
||||
|
||||
$nav.css({
|
||||
'position': 'fixed',
|
||||
'top': defaultTop,
|
||||
'left': '0',
|
||||
'width': '100%',
|
||||
'z-index': '1500',
|
||||
'background-color': 'rgba(0, 0, 0, 0.4)',
|
||||
'box-shadow': '0 2px 10px rgba(0,0,0,0.1)',
|
||||
'transition': 'none'
|
||||
});
|
||||
|
||||
function updateNavPosition() {
|
||||
const isdefaultTop = isTopCodeBarVisible();
|
||||
if (!isdefaultTop) {
|
||||
$nav.css('top', fixedTop);
|
||||
return;
|
||||
}
|
||||
const scrollTop = $(window).scrollTop();
|
||||
$nav.css('top', scrollTop > threshold ? fixedTop : defaultTop);
|
||||
}
|
||||
|
||||
$(window).off('scroll.aifoNav resize.aifoNav');
|
||||
$(window).on('scroll.aifoNav resize.aifoNav', updateNavPosition);
|
||||
updateNavPosition();
|
||||
}
|
||||
|
||||
$(document).ready(initDesktopFixedNav);
|
||||
document.addEventListener('aifo:layout-ready', initDesktopFixedNav);
|
||||
|
||||
// Seaction-2
|
||||
$(function() {
|
||||
// Check if jQuery UI is loaded (for easing functions)
|
||||
const hasJQueryUI = typeof $.easing !== 'undefined';
|
||||
|
||||
const $section2 = $('#section-2');
|
||||
|
||||
// Counter data
|
||||
const counters = [
|
||||
{ index: 0, start: 1000, end: 50000, suffix: '+' },
|
||||
{ index: 1, start: 1, end: 20, suffix: 'M+' },
|
||||
{ index: 2, start: 1000, end: 70000, suffix: '+' }
|
||||
];
|
||||
|
||||
// Listen to elements entering viewport
|
||||
const observer = new IntersectionObserver(function(entries) {
|
||||
entries.forEach(function(entry) {
|
||||
if (entry.isIntersecting) {
|
||||
// Add fade-in class (if not already)
|
||||
if (!$section2.hasClass('fade-in')) {
|
||||
$section2.addClass('fade-in');
|
||||
}
|
||||
|
||||
triggerCounters();
|
||||
// Listen to animation end
|
||||
// $section2.one('animationend webkitAnimationEnd oanimationend MSAnimationEnd', function() {
|
||||
|
||||
// });
|
||||
|
||||
observer.unobserve(entry.target);
|
||||
}
|
||||
});
|
||||
}, { threshold: 0.2 });
|
||||
|
||||
// Check if element exists
|
||||
if ($section2.length) {
|
||||
observer.observe($section2[0]);
|
||||
}
|
||||
|
||||
function triggerCounters() {
|
||||
setTimeout(function() {
|
||||
counters.forEach(function(counter) {
|
||||
const $counter = $('#section-2 .counter').eq(counter.index);
|
||||
|
||||
if ($counter.length) {
|
||||
animateValue(
|
||||
$counter,
|
||||
counter.start,
|
||||
counter.end,
|
||||
counter.suffix,
|
||||
2000,
|
||||
hasJQueryUI ? 'easeOutElastic' : 'easeOutCubic'
|
||||
);
|
||||
}
|
||||
});
|
||||
}, 600);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Animation function
|
||||
function animateValue($element, start, end, suffix, duration, easing) {
|
||||
let startTimestamp = null;
|
||||
|
||||
// Easing function
|
||||
function getEasing(progress) {
|
||||
switch(easing) {
|
||||
case 'easeOutCubic':
|
||||
return 1 - Math.pow(1 - progress, 3);
|
||||
case 'easeOutElastic':
|
||||
const c4 = (2 * Math.PI) / 3;
|
||||
return progress === 0 ? 0 :
|
||||
progress === 1 ? 1 :
|
||||
Math.pow(2, -10 * progress) * Math.sin((progress * 10 - 0.75) * c4) + 1;
|
||||
default:
|
||||
return progress;
|
||||
}
|
||||
}
|
||||
|
||||
// Format number
|
||||
function formatNumber(num) {
|
||||
return num.toLocaleString('en-US');
|
||||
}
|
||||
|
||||
// Animation step
|
||||
function step(timestamp) {
|
||||
if (!startTimestamp) startTimestamp = timestamp;
|
||||
|
||||
const elapsed = timestamp - startTimestamp;
|
||||
const progress = Math.min(elapsed / duration, 1);
|
||||
const easedProgress = getEasing(progress);
|
||||
|
||||
const current = Math.floor(start + (end - start) * easedProgress);
|
||||
|
||||
// Update display
|
||||
if (suffix === 'M+') {
|
||||
$element.text('$'+current + suffix);
|
||||
} else {
|
||||
$element.text(formatNumber(current) + suffix);
|
||||
}
|
||||
|
||||
if (progress < 1) {
|
||||
requestAnimationFrame(step);
|
||||
}
|
||||
}
|
||||
|
||||
requestAnimationFrame(step);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/* =========================
|
||||
Intersection fade-in (pixel-precise)
|
||||
and lazy loaders for floor loading
|
||||
========================= */
|
||||
|
||||
const io = new IntersectionObserver((entries, obs) => {
|
||||
entries.forEach(e=>{
|
||||
if(e.isIntersecting){
|
||||
$(e.target).addClass('show');
|
||||
obs.unobserve(e.target);
|
||||
}
|
||||
});
|
||||
},{threshold:0.12});
|
||||
|
||||
$(function(){
|
||||
$('.fade-in').each(function(){ io.observe(this); });
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// ============================================
|
||||
// challenge
|
||||
// ============================================
|
||||
|
||||
const appState = {
|
||||
programType: '1step',
|
||||
instantMode: 'pro',
|
||||
accountSize: '10k',
|
||||
expandedParam: null
|
||||
};
|
||||
|
||||
const programData = {
|
||||
'1step': {
|
||||
defaultSize: '10k',
|
||||
availableSizes: ['10k', '25k', '50k', '100k', '200k'],
|
||||
data: {
|
||||
'10k': { fee: '$89', daily: '3%', max: '5%', target: '8%', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'25k': { fee: '$179', daily: '3%', max: '5%', target: '8%', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'50k': { fee: '$359', daily: '3%', max: '5%', target: '8%', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'100k': { fee: '$579', daily: '3%', max: '5%', target: '8%', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'200k': { fee: '$1,239', daily: '3%', max: '5%', target: '8%', split: '70%~95%', payout: '14 days', news: 'Allowed' }
|
||||
}
|
||||
},
|
||||
'2step': {
|
||||
defaultSize: '10k',
|
||||
availableSizes: ['10k', '25k', '50k', '100k', '200k'],
|
||||
data: {
|
||||
'10k': { fee: '$109', daily: ' 3%', max: '8%', target: 'Phase 1 <span class="text-orange"> 5%</span><br> Phase 2 <span class="text-orange"> 8%</span>', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'25k': { fee: '$219', daily: ' 3%', max: '8%', target: 'Phase 1 <span class="text-orange"> 5%</span><br> Phase 2 <span class="text-orange"> 8%</span>', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'50k': { fee: '$359', daily: ' 3%', max: '8%', target: 'Phase 1 <span class="text-orange"> 5%</span><br> Phase 2 <span class="text-orange"> 8%</span>', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'100k': { fee: '$589', daily: ' 3%', max: '8%', target: 'Phase 1 <span class="text-orange"> 5%</span><br> Phase 2 <span class="text-orange"> 8%</span>', split: '70%~95%', payout: '14 days', news: 'Allowed' },
|
||||
'200k': { fee: '$1,249', daily: ' 3%', max: '8%', target: 'Phase 1 <span class="text-orange"> 5%</span><br> Phase 2 <span class="text-orange"> 8%</span>', split: '70%~95%', payout: '14 days', news: 'Allowed' }
|
||||
}
|
||||
},
|
||||
'3step': {
|
||||
defaultSize: '10k',
|
||||
availableSizes: ['10k', '25k', '50k', '100k', '200k'],
|
||||
data: {
|
||||
'10k': { fee: '$69', daily: ' 3%', max: '5%', target: 'Phase 1 <span class="text-orange"> 3%</span><br>Phase 2 <span class="text-orange"> 3%</span><br>Phase 3 <span class="text-orange"> 5%</span>', split: '70%~95%', payout: '14 days', news: 'Allow' },
|
||||
'25k': { fee: '$149', daily: ' 3%', max: '5%', target: 'Phase 1 <span class="text-orange"> 3%</span><br>Phase 2 <span class="text-orange"> 3%</span><br>Phase 3 <span class="text-orange"> 5%</span>', split: '70%~95%', payout: '14 days', news: 'Allow' },
|
||||
'50k': { fee: '$299', daily: ' 3%', max: '5%', target: 'Phase 1 <span class="text-orange"> 3%</span><br>Phase 2 <span class="text-orange"> 3%</span><br>Phase 3 <span class="text-orange"> 5%</span>', split: '70%~95%', payout: '14 days', news: 'Allow' },
|
||||
'100k': { fee: '$459', daily: ' 3%', max: '5%', target: 'Phase 1 <span class="text-orange"> 3%</span><br>Phase 2 <span class="text-orange"> 3%</span><br>Phase 3 <span class="text-orange"> 5%</span>', split: '70%~95%', payout: '14 days', news: 'Allow' },
|
||||
'200k': { fee: '$909', daily: ' 3%', max: '5%', target: 'Phase 1 <span class="text-orange"> 3%</span><br>Phase 2 <span class="text-orange"> 3%</span><br>Phase 3 <span class="text-orange"> 5%</span>', split: '70%~95%', payout: '14 days', news: 'Allow' }
|
||||
}
|
||||
},
|
||||
'instant': {
|
||||
pro: {
|
||||
defaultSize: '10k',
|
||||
availableSizes: ['10k', '25k', '50k'],
|
||||
data: {
|
||||
'10k': { fee: '$1091', daily: '2%', max: '5%', target: '4%', split: '70%~95%', payout: 'payout on demand', news: 'Allow' },
|
||||
'25k': { fee: '$219', daily: '2%', max: '5%', target: '4%', split: '70%~95%', payout: 'payout on demand', news: 'Allow' },
|
||||
'50k': { fee: '$399', daily: '2%', max: '5%', target: '4%', split: '70%~95%', payout: 'payout on demand', news: 'Allow' },
|
||||
}
|
||||
},
|
||||
aifo: {
|
||||
defaultSize: '100k',
|
||||
availableSizes: ['100k', '200k'],
|
||||
data: {
|
||||
'100k': { fee: '$749', daily: '2%', max: '4%', target: '4%', split: '70%~95%', payout: 'payout on demand', news: 'Allow' },
|
||||
'200k': { fee: '$1,199', daily: '2%', max: '4%', target: '4%', split: '70%~95%', payout: 'payout on demand', news: 'Allow' }
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const parameterDescriptions = {
|
||||
'Challenge Fee': 'One-time fee to participate in the challenge program',
|
||||
'Daily Drawdown': 'Maximum percentage loss allowed in a single trading day based on the previous day’s closing balance or equity.',
|
||||
'Max Drawdown': 'The Maximum Loss Limit is the maximum allowable loss calculated based on the highest equity value your account reaches during the evaluation or trading phase.',
|
||||
'Profit Target': 'The percentage gain required to successfully complete each phase of the challenge.',
|
||||
'withdrawable profit': 'The Profit Target refers to the required percentage of withdrawable profit that the account must achieve before a payout can be requested.',
|
||||
'Profit split': 'Percentage of profits you keep. The firm keeps the remainder.',
|
||||
'Payout period': 'Minimum time required before you can request a withdrawal of profits.',
|
||||
'News Trading': ''
|
||||
};
|
||||
|
||||
// const parameterNames = ['Challenge Fee', 'Daily Drawdown', 'Max Drawdown', 'Profit Target', 'Profit split', 'Payout period', 'News Trading'];
|
||||
const parameterNames = ['Challenge Fee', 'Daily Drawdown', 'Max Drawdown', 'Profit Target', 'Profit split', 'Payout period'];
|
||||
const parameterNames_instant = ['Challenge Fee', 'Daily Drawdown', 'Max Drawdown', 'withdrawable profit', 'Profit split', 'Payout period'];
|
||||
|
||||
// ============================================
|
||||
// 工具函数
|
||||
// ============================================
|
||||
|
||||
function getIconSVG(paramName) {
|
||||
const icons = {
|
||||
'Challenge Fee': '<img src="./assets/images/backgrounds/svg/Component 26.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'Daily Drawdown': '<img src="./assets/images/backgrounds/svg/Component 27.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'Max Drawdown': '<img src="./assets/images/backgrounds/svg/Component 28.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'Profit Target': '<img src="./assets/images/backgrounds/svg/Component 29.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'withdrawable profit': '<img src="./assets/images/backgrounds/svg/Component 29.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'Profit split': '<img src="./assets/images/backgrounds/svg/Component 30.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'Payout period': '<img src="./assets/images/backgrounds/svg/Component 31.svg" alt="Funded Trading" class="chall-icon">',
|
||||
'News Trading': '<img src="./assets/images/backgrounds/svg/Component 32.svg" alt="Funded Trading" class="chall-icon">'
|
||||
};
|
||||
return icons[paramName] || '';
|
||||
}
|
||||
|
||||
function getCurrentProgramConfig() {
|
||||
if (appState.programType === 'instant') {
|
||||
return programData.instant[appState.instantMode];
|
||||
}
|
||||
return programData[appState.programType];
|
||||
}
|
||||
|
||||
function getDataForSize(size) {
|
||||
const config = getCurrentProgramConfig();
|
||||
return config.data[size];
|
||||
}
|
||||
|
||||
function formatAccountSize(size) {
|
||||
const formats = {
|
||||
'10k': '$10K',
|
||||
'25k': '$25K',
|
||||
'50k': '$50K',
|
||||
'100k': '$100K',
|
||||
'200k': '$200K'
|
||||
};
|
||||
return formats[size] || size;
|
||||
}
|
||||
|
||||
function getParamKey(paramName) {
|
||||
const keyMap = {
|
||||
'Challenge Fee': 'fee',
|
||||
'Daily Drawdown': 'daily',
|
||||
'Max Drawdown': 'max',
|
||||
'Profit Target': 'target',
|
||||
'withdrawable profit':'target',
|
||||
'Profit split': 'split',
|
||||
'Payout period': 'payout',
|
||||
'News Trading': 'news'
|
||||
};
|
||||
return keyMap[paramName];
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 桌面版渲染
|
||||
// ============================================
|
||||
|
||||
function renderDesktopTable(type) {
|
||||
const config = getCurrentProgramConfig();
|
||||
const sizes = config.availableSizes;
|
||||
|
||||
let html = '';
|
||||
|
||||
var param = parameterNames;
|
||||
if(type=="aifo" || type=="pro" || type=="instant"){
|
||||
param = parameterNames_instant;
|
||||
}
|
||||
|
||||
param.forEach(paramName => {
|
||||
const paramKey = getParamKey(paramName);
|
||||
const rowId = paramName.replace(/\s+/g, '-').toLowerCase();
|
||||
|
||||
// 参数行
|
||||
html += `<tr class="param-data-row" data-param="${paramName}">`;
|
||||
html += `<td>
|
||||
<div class="param-name-cell">
|
||||
<div class="param-icon">${getIconSVG(paramName)}</div>
|
||||
<div class="param-name">${paramName}</div>
|
||||
<div class="expand-btn ${appState.expandedParam === paramName ? 'expanded' : ''}">
|
||||
<img src="./assets/images/backgrounds/arraw-icon.png" alt="Funded Trading" class="arraw-icon-table">
|
||||
</div>
|
||||
</div>
|
||||
</td>`;
|
||||
|
||||
// 各账户大小的数值
|
||||
sizes.forEach(size => {
|
||||
const data = getDataForSize(size);
|
||||
html += `<td>${data[paramKey]}</td>`;
|
||||
});
|
||||
|
||||
html += `</tr>`;
|
||||
|
||||
// 展开说明行
|
||||
html += `<tr class="challenge-row-expand ${appState.expandedParam === paramName ? 'show' : ''}" data-expand="${paramName}">`;
|
||||
html += `<td colspan="6">${parameterDescriptions[paramName]}</td>`;
|
||||
html += `</tr>`;
|
||||
});
|
||||
|
||||
$('#desktopTableBody').html(html);
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 移动版渲染
|
||||
// ============================================
|
||||
|
||||
function renderMobileAccountSizes() {
|
||||
const config = getCurrentProgramConfig();
|
||||
const sizes = config.availableSizes;
|
||||
|
||||
const buttons = sizes.map(size => {
|
||||
const label = formatAccountSize(size);
|
||||
const activeClass = size === appState.accountSize ? 'active' : '';
|
||||
return `<button class="mobile-size-btn ${activeClass}" data-size="${size}">${label}</button>`;
|
||||
}).join('');
|
||||
|
||||
$('#mobileAccountSizes').html(buttons);
|
||||
|
||||
if (!sizes.includes(appState.accountSize)) {
|
||||
appState.accountSize = config.defaultSize;
|
||||
}
|
||||
}
|
||||
|
||||
function renderMobileParams(type) {
|
||||
const data = getDataForSize(appState.accountSize);
|
||||
|
||||
let html = '';
|
||||
|
||||
var param = parameterNames;
|
||||
if(type=="aifo" || type=="pro" || type=="instant"){
|
||||
param = parameterNames_instant;
|
||||
}
|
||||
|
||||
param.forEach(paramName => {
|
||||
const paramKey = getParamKey(paramName);
|
||||
|
||||
html += `<div>
|
||||
<div class="mobile-param-row" data-param="${paramName}">
|
||||
<div class="mobile-param-left">
|
||||
<div class="param-icon">${getIconSVG(paramName)}</div>
|
||||
<div class="param-name">${paramName}</div>
|
||||
<div class="expand-btn ${appState.expandedParam === paramName ? 'expanded' : ''}">
|
||||
<img src="./assets/images/backgrounds/arraw-icon.png" alt="Funded Trading" class="arraw-icon-table">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="mobile-param-value">${data[paramKey]}</div>
|
||||
</div>
|
||||
<div class="mobile-param-description ${appState.expandedParam === paramName ? 'show' : ''}" data-desc="${paramName}">
|
||||
${parameterDescriptions[paramName]}
|
||||
</div>
|
||||
</div>`;
|
||||
});
|
||||
|
||||
$('#mobileParamsList').html(html);
|
||||
}
|
||||
|
||||
function updateMobileAmount() {
|
||||
$('#mobileAmount').text(formatAccountSize(appState.accountSize));
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 状态切换
|
||||
// ============================================
|
||||
|
||||
function changeProgramType(newType) {
|
||||
appState.programType = newType;
|
||||
const config = getCurrentProgramConfig();
|
||||
appState.accountSize = config.defaultSize;
|
||||
appState.expandedParam = null;
|
||||
|
||||
renderDesktopTable(newType);
|
||||
renderMobileAccountSizes();
|
||||
renderMobileParams(newType);
|
||||
updateMobileAmount();
|
||||
}
|
||||
|
||||
function changeInstantMode(newMode) {
|
||||
appState.instantMode = newMode;
|
||||
const config = getCurrentProgramConfig();
|
||||
|
||||
if (!config.availableSizes.includes(appState.accountSize)) {
|
||||
appState.accountSize = config.defaultSize;
|
||||
}
|
||||
|
||||
appState.expandedParam = null;
|
||||
|
||||
renderDesktopTable(newMode);
|
||||
renderMobileAccountSizes();
|
||||
renderMobileParams(newMode);
|
||||
updateMobileAmount();
|
||||
}
|
||||
|
||||
function changeMobileAccountSize(newSize) {
|
||||
appState.accountSize = newSize;
|
||||
appState.expandedParam = null;
|
||||
|
||||
updateMobileAmount();
|
||||
$('#mobileParamsList').fadeOut(150, function() {
|
||||
|
||||
const tabs = document.querySelectorAll('.challenge-tab');
|
||||
var type = "step";
|
||||
tabs.forEach(tab => {
|
||||
if (tab.classList.contains('active')) {
|
||||
const program = tab.dataset.program;
|
||||
if(program == "instant"){
|
||||
type = "instant";
|
||||
}
|
||||
}
|
||||
});
|
||||
renderMobileParams(type);
|
||||
|
||||
|
||||
$(this).fadeIn(150);
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 事件监听
|
||||
// ============================================
|
||||
|
||||
$(document).on('click', '.challenge-tab', function() {
|
||||
$('.challenge-tab').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
|
||||
const newProgram = $(this).data('program');
|
||||
const addons = document.querySelector('.challenge-addons');
|
||||
|
||||
if (newProgram === 'instant') {
|
||||
$('#instantSubTabs').addClass('show');
|
||||
document.querySelectorAll('.ch-pro')
|
||||
.forEach(el => el.classList.remove('d-none'));
|
||||
|
||||
document.querySelectorAll('.ch-aifo')
|
||||
.forEach(el => el.classList.add('d-none'));
|
||||
|
||||
if (addons) {
|
||||
addons.classList.add('is-hidden');
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
document.querySelectorAll('.ch-pro')
|
||||
.forEach(el => el.classList.remove('d-none'));
|
||||
|
||||
document.querySelectorAll('.ch-aifo')
|
||||
.forEach(el => el.classList.remove('d-none'));
|
||||
|
||||
$('#instantSubTabs').removeClass('show');
|
||||
if (addons) {
|
||||
addons.classList.remove('is-hidden');
|
||||
}
|
||||
}
|
||||
|
||||
changeProgramType(newProgram);
|
||||
});
|
||||
|
||||
$(document).on('click', '.instant-tab', function() {
|
||||
$('.instant-tab').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
|
||||
const newMode = $(this).data('instant-type');
|
||||
|
||||
if (newMode === "pro") {
|
||||
document.querySelectorAll('.ch-pro')
|
||||
.forEach(el => el.classList.remove('d-none'));
|
||||
|
||||
document.querySelectorAll('.ch-aifo')
|
||||
.forEach(el => el.classList.add('d-none'));
|
||||
} else {
|
||||
document.querySelectorAll('.ch-pro')
|
||||
.forEach(el => el.classList.add('d-none'));
|
||||
|
||||
document.querySelectorAll('.ch-aifo')
|
||||
.forEach(el => el.classList.remove('d-none'));
|
||||
}
|
||||
|
||||
changeInstantMode(newMode);
|
||||
});
|
||||
|
||||
$(document).on('click', '.mobile-size-btn', function() {
|
||||
$('.mobile-size-btn').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
|
||||
const newSize = $(this).data('size');
|
||||
changeMobileAccountSize(newSize);
|
||||
});
|
||||
|
||||
$(document).on('click', '.param-data-row', function() {
|
||||
const paramName = $(this).data('param');
|
||||
if(paramName=="News Trading"){
|
||||
return;
|
||||
}
|
||||
|
||||
if (appState.expandedParam === paramName) {
|
||||
appState.expandedParam = null;
|
||||
} else {
|
||||
appState.expandedParam = paramName;
|
||||
}
|
||||
|
||||
$('.challenge-row-expand').removeClass('show');
|
||||
$('.param-data-row .expand-btn').removeClass('expanded');
|
||||
|
||||
if (appState.expandedParam) {
|
||||
$(`.challenge-row-expand[data-expand="${appState.expandedParam}"]`).addClass('show');
|
||||
$(this).find('.expand-btn').addClass('expanded');
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '.mobile-param-row', function() {
|
||||
const paramName = $(this).data('param');
|
||||
|
||||
if (appState.expandedParam === paramName) {
|
||||
appState.expandedParam = null;
|
||||
} else {
|
||||
appState.expandedParam = paramName;
|
||||
}
|
||||
|
||||
$('.mobile-param-description').removeClass('show');
|
||||
$('.mobile-param-row .expand-btn').removeClass('expanded');
|
||||
|
||||
if (appState.expandedParam) {
|
||||
$(`.mobile-param-description[data-desc="${appState.expandedParam}"]`).addClass('show');
|
||||
$(this).find('.expand-btn').addClass('expanded');
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '.start-challenge-btn', function() {
|
||||
const size = $(this).data('size');
|
||||
console.log('Start Challenge:', {
|
||||
programType: appState.programType,
|
||||
instantMode: appState.instantMode,
|
||||
accountSize: size
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('click', '.mobile-start-btn', function() {
|
||||
console.log('Start Challenge:', {
|
||||
programType: appState.programType,
|
||||
instantMode: appState.instantMode,
|
||||
accountSize: appState.accountSize
|
||||
});
|
||||
});
|
||||
|
||||
// ============================================
|
||||
// 初始化
|
||||
// ============================================
|
||||
|
||||
$(document).ready(function() {
|
||||
renderDesktopTable();
|
||||
renderMobileAccountSizes();
|
||||
renderMobileParams();
|
||||
updateMobileAmount();
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})(jQuery);
|
||||
|
||||
|
||||
/* ===========================================================
|
||||
Reusable Carousel Class
|
||||
=========================================================== */
|
||||
class Carousel {
|
||||
constructor(opts) {
|
||||
this.container = document.querySelector(opts.container);
|
||||
this.track = this.container.querySelector(".carousel-track");
|
||||
this.items = [...this.track.children];
|
||||
this.prevBtn = document.getElementById(opts.prev);
|
||||
this.nextBtn = document.getElementById(opts.next);
|
||||
this.dotsContainer = document.querySelector(opts.dots);
|
||||
|
||||
this.index = 0;
|
||||
this.pageWidth = this.items[0].offsetWidth + 40; // including margin
|
||||
|
||||
this.setupDots();
|
||||
this.update();
|
||||
this.bindEvents();
|
||||
}
|
||||
|
||||
setupDots() {
|
||||
this.dotsContainer.innerHTML = "";
|
||||
this.items.forEach((_, i) => {
|
||||
const dot = document.createElement("div");
|
||||
dot.className = "dot";
|
||||
dot.addEventListener("click", () => this.goTo(i));
|
||||
this.dotsContainer.appendChild(dot);
|
||||
});
|
||||
}
|
||||
|
||||
bindEvents() {
|
||||
this.prevBtn.addEventListener("click", () => this.prev());
|
||||
this.nextBtn.addEventListener("click", () => this.next());
|
||||
window.addEventListener("resize", () => {
|
||||
this.pageWidth = this.items[0].offsetWidth + 40;
|
||||
this.update();
|
||||
});
|
||||
}
|
||||
|
||||
prev() {
|
||||
this.index = Math.max(0, this.index - 1);
|
||||
this.update();
|
||||
}
|
||||
|
||||
next() {
|
||||
this.index = Math.min(this.items.length - 1, this.index + 1);
|
||||
this.update();
|
||||
}
|
||||
|
||||
goTo(i) {
|
||||
this.index = i;
|
||||
this.update();
|
||||
}
|
||||
|
||||
update() {
|
||||
const centerOffset = (window.innerWidth / 2) - (this.pageWidth / 2);
|
||||
let x = this.index * this.pageWidth * -1 + centerOffset;
|
||||
|
||||
if (this.index === 0) x = 0;
|
||||
if (this.index === this.items.length - 1) {
|
||||
x = (this.items.length - 1) * this.pageWidth * -1 + (window.innerWidth - this.pageWidth);
|
||||
}
|
||||
|
||||
this.track.style.transform = `translateX(${x}px)`;
|
||||
|
||||
[...this.dotsContainer.children].forEach((dot, i) => {
|
||||
dot.classList.toggle("active", i === this.index);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function showInfoAlert(){
|
||||
alert("New features are about to be launched");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
/*!
|
||||
* IE10 viewport hack for Surface/desktop Windows 8 bug
|
||||
* Copyright 2014-2017 The Bootstrap Authors
|
||||
* Copyright 2014-2017 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
// See the Getting Started docs for more information:
|
||||
// https://getbootstrap.com/getting-started/#support-ie10-width
|
||||
|
||||
(function () {
|
||||
'use strict'
|
||||
|
||||
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
||||
var msViewportStyle = document.createElement('style')
|
||||
msViewportStyle.appendChild(
|
||||
document.createTextNode(
|
||||
'@-ms-viewport{width:auto!important}'
|
||||
)
|
||||
)
|
||||
document.head.appendChild(msViewportStyle)
|
||||
}
|
||||
|
||||
}())
|
||||
Vendored
+44
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
*
|
||||
* Uses the built in easing capabilities added In jQuery 1.1
|
||||
* to offer multiple easing options
|
||||
*
|
||||
* TERMS OF USE - EASING EQUATIONS
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2001 Robert Penner
|
||||
* All rights reserved.
|
||||
*
|
||||
* TERMS OF USE - jQuery Easing
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2008 George McGinley Smith
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});
|
||||
Vendored
+165
@@ -0,0 +1,165 @@
|
||||
/*!
|
||||
* JavaScript Cookie v2.1.4
|
||||
* https://github.com/js-cookie/js-cookie
|
||||
*
|
||||
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
|
||||
* Released under the MIT license
|
||||
*/
|
||||
;(function (factory) {
|
||||
var registeredInModuleLoader = false;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define(factory);
|
||||
registeredInModuleLoader = true;
|
||||
}
|
||||
if (typeof exports === 'object') {
|
||||
module.exports = factory();
|
||||
registeredInModuleLoader = true;
|
||||
}
|
||||
if (!registeredInModuleLoader) {
|
||||
var OldCookies = window.Cookies;
|
||||
var api = window.Cookies = factory();
|
||||
api.noConflict = function () {
|
||||
window.Cookies = OldCookies;
|
||||
return api;
|
||||
};
|
||||
}
|
||||
}(function () {
|
||||
function extend () {
|
||||
var i = 0;
|
||||
var result = {};
|
||||
for (; i < arguments.length; i++) {
|
||||
var attributes = arguments[ i ];
|
||||
for (var key in attributes) {
|
||||
result[key] = attributes[key];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function init (converter) {
|
||||
function api (key, value, attributes) {
|
||||
var result;
|
||||
if (typeof document === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Write
|
||||
|
||||
if (arguments.length > 1) {
|
||||
attributes = extend({
|
||||
path: '/'
|
||||
}, api.defaults, attributes);
|
||||
|
||||
if (typeof attributes.expires === 'number') {
|
||||
var expires = new Date();
|
||||
expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
|
||||
attributes.expires = expires;
|
||||
}
|
||||
|
||||
// We're using "expires" because "max-age" is not supported by IE
|
||||
attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
|
||||
|
||||
try {
|
||||
result = JSON.stringify(value);
|
||||
if (/^[\{\[]/.test(result)) {
|
||||
value = result;
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
if (!converter.write) {
|
||||
value = encodeURIComponent(String(value))
|
||||
.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
|
||||
} else {
|
||||
value = converter.write(value, key);
|
||||
}
|
||||
|
||||
key = encodeURIComponent(String(key));
|
||||
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
|
||||
key = key.replace(/[\(\)]/g, escape);
|
||||
|
||||
var stringifiedAttributes = '';
|
||||
|
||||
for (var attributeName in attributes) {
|
||||
if (!attributes[attributeName]) {
|
||||
continue;
|
||||
}
|
||||
stringifiedAttributes += '; ' + attributeName;
|
||||
if (attributes[attributeName] === true) {
|
||||
continue;
|
||||
}
|
||||
stringifiedAttributes += '=' + attributes[attributeName];
|
||||
}
|
||||
return (document.cookie = key + '=' + value + stringifiedAttributes);
|
||||
}
|
||||
|
||||
// Read
|
||||
|
||||
if (!key) {
|
||||
result = {};
|
||||
}
|
||||
|
||||
// To prevent the for loop in the first place assign an empty array
|
||||
// in case there are no cookies at all. Also prevents odd result when
|
||||
// calling "get()"
|
||||
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
||||
var rdecode = /(%[0-9A-Z]{2})+/g;
|
||||
var i = 0;
|
||||
|
||||
for (; i < cookies.length; i++) {
|
||||
var parts = cookies[i].split('=');
|
||||
var cookie = parts.slice(1).join('=');
|
||||
|
||||
if (cookie.charAt(0) === '"') {
|
||||
cookie = cookie.slice(1, -1);
|
||||
}
|
||||
|
||||
try {
|
||||
var name = parts[0].replace(rdecode, decodeURIComponent);
|
||||
cookie = converter.read ?
|
||||
converter.read(cookie, name) : converter(cookie, name) ||
|
||||
cookie.replace(rdecode, decodeURIComponent);
|
||||
|
||||
if (this.json) {
|
||||
try {
|
||||
cookie = JSON.parse(cookie);
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
if (key === name) {
|
||||
result = cookie;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!key) {
|
||||
result[name] = cookie;
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
api.set = api;
|
||||
api.get = function (key) {
|
||||
return api.call(api, key);
|
||||
};
|
||||
api.getJSON = function () {
|
||||
return api.apply({
|
||||
json: true
|
||||
}, [].slice.call(arguments));
|
||||
};
|
||||
api.defaults = {};
|
||||
|
||||
api.remove = function (key, attributes) {
|
||||
api(key, '', extend(attributes, {
|
||||
expires: -1
|
||||
}));
|
||||
};
|
||||
|
||||
api.withConverter = init;
|
||||
|
||||
return api;
|
||||
}
|
||||
|
||||
return init(function () {});
|
||||
}));
|
||||
Reference in New Issue
Block a user