-
Notifications
You must be signed in to change notification settings - Fork 0
/
mnargiPortfolioMain.js
119 lines (99 loc) · 4.17 KB
/
mnargiPortfolioMain.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
contactForm = (function () {
'use strict';
var _alertStatus,
_checkMessage,
_clearForm,
_sendEmail,
_toggleFormDisplay;
_alertStatus = function (status) {
var statusField;
statusField = document.getElementById('sendEmailStatus');
if (status === 'success') {
statusField.classList.remove('statusError');
statusField.classList.add('statusSuccess');
statusField.innerHTML = 'Success';
setTimeout(_toggleFormDisplay, 2000);
} else {
statusField.classList.remove('statusSuccess');
statusField.classList.add('statusError');
statusField.innerHTML = 'Error';
}
if (statusField.classList.contains('hidden')) statusField.classList.remove('hidden');
};
_checkMessage = function () {
var emailRegex,
error,
messageBody,
returnAddress;
emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
error = '';
messageBody = document.getElementById('sendersMessage').value;
returnAddress = document.getElementById('sendersEmail').value;
if (!messageBody) {
error += 'Please enter a message before sending.'
}
if (!returnAddress || !returnAddress.match(emailRegex)) {
if (error !== '') error += '\n';
error += 'Please enter a valid return, email address before sending.';
}
error !== '' ? console.log(error) : _sendEmail(messageBody, returnAddress);
};
_clearForm = function () {
if(document.getElementById('contactFormGrid').classList.contains('slideOut')) {
document.getElementById('emailFormGrid').reset();
document.getElementById('sendEmailStatus').innerHTML = '';
}
};
_sendEmail = function (messageBody, returnAddress) {
var params,
response,
url,
xhr;
url = 'https://script.google.com/macros/s/AKfycbwqUYLfOoKvycT_doUotbJH9gJB699xSCBJitPqLMTQ6ofz0Ls/exec';
params = {
returnAddress: returnAddress,
messageBody: messageBody
};
params = Object.keys(params).map(function(k) {
return encodeURIComponent(k) + '=' + encodeURIComponent(params[k])
}).join('&')
xhr = new XMLHttpRequest;
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function () {
if(xhr.readyState === 4 ) {
if(xhr.status === 200) {
_alertStatus('success');
} else {
_alertStatus('error');
}
}
}
xhr.send(params);
};
_toggleFormDisplay = function () {
var contactFormGrid,
currentlyHidden;
contactFormGrid = document.getElementById('contactFormGrid');
currentlyHidden = contactFormGrid.classList.contains('slideOut');
if (currentlyHidden) {
contactFormGrid.classList.remove('slideOut');
contactFormGrid.classList.add('slideIn');
document.getElementById('sendersMessage').focus();
window.scrollTo(0, 0);
} else {
contactFormGrid.classList.remove('slideIn');
contactFormGrid.classList.add('slideOut');
setTimeout(_clearForm, 10000);
}
};
return {
alertStatus: _alertStatus,
checkMessage: _checkMessage,
toggleFormDisplay: _toggleFormDisplay
};
})();
document.getElementById('emailIconHeader').addEventListener('click', contactForm.toggleFormDisplay);
document.getElementById('contactFormX').addEventListener('click', contactForm.toggleFormDisplay);
document.getElementById('sendEmailButton').addEventListener('click', contactForm.checkMessage);
(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)