Completed
Push — master ( 2e96ee...51b9e4 )
by Rain
01:37
created

plugins/_depricated/recaptcha/js/recaptcha.js   A

Complexity

Total Complexity 29
Complexity/F 4.83

Size

Lines of Code 77
Function Count 6

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 0
wmc 29
nc 480
mnd 5
bc 18
fnc 6
dl 0
loc 77
rs 10
bpm 3
cpm 4.8333
noi 0
c 0
b 0
f 0
1
2
$(function () {
3
4
	var
5
		bStarted = false,
6
		bShown = false
7
	;
8
9
	function ShowRecaptcha()
10
	{
11
		if (window.Recaptcha)
12
		{
13
			if (bShown)
14
			{
15
				window.Recaptcha.reload();
16
			}
17
			else
18
			{
19
				window.Recaptcha.create(window.rl.pluginSettingsGet('recaptcha', 'public_key'), 'recaptcha-place', {
20
					'theme': 'custom',
21
					'lang': window.rl.settingsGet('Language')
22
				});
23
			}
24
25
			bShown = true;
26
		}
27
	}
28
29
	function StartRecaptcha()
30
	{
31
		if (!window.Recaptcha)
32
		{
33
			$.getScript('//www.google.com/recaptcha/api/js/recaptcha_ajax.js', ShowRecaptcha);
34
		}
35
		else
36
		{
37
			ShowRecaptcha();
38
		}
39
	}
40
41
	if (window.rl)
42
	{
43
		window.rl.addHook('view-model-on-show', function (sName, oViewModel) {
44
			if (!bStarted && oViewModel &&
45
				('View:RainLoop:Login' === sName || 'View/App/Login' === sName || 'LoginViewModel' === sName || 'LoginAppView' === sName) &&
46
				window.rl.pluginSettingsGet('recaptcha', 'show_captcha_on_login'))
47
			{
48
				bStarted = true;
49
				StartRecaptcha();
50
			}
51
		});
52
53
		window.rl.addHook('ajax-default-request', function (sAction, oParameters) {
54
			if ('Login' === sAction && oParameters && bShown && window.Recaptcha)
55
			{
56
				oParameters['RecaptchaChallenge'] = window.Recaptcha.get_challenge();
57
				oParameters['RecaptchaResponse'] = window.Recaptcha.get_response();
58
			}
59
		});
60
61
		window.rl.addHook('ajax-default-response', function (sAction, oData, sType) {
62
			if ('Login' === sAction)
63
			{
64
				if (!oData || 'success' !== sType || !oData['Result'])
65
				{
66
					if (bShown && window.Recaptcha)
67
					{
68
						window.Recaptcha.reload();
69
					}
70
					else if (oData && oData['Captcha'])
71
					{
72
						StartRecaptcha();
73
					}
74
				}
75
			}
76
		});
77
	}
78
});