// This file is part of the MsalsasVotingBundle package.
//
// (c) Manolo Salsas
//
// For the full copyright and license information, please view the LICENSE
// file that was distributed with this source code.
(function() {
document.addEventListener('DOMContentLoaded', function() {
var shakeItLink = document.querySelectorAll('.msalsas-voting-shake-it a');
for (var i = 0; i < shakeItLink.length; i++) {
if (shakeItLink[i].addEventListener) {
shakeItLink[i].addEventListener('click', shakeIt, false);
} else {
shakeItLink[i].attachEvent('onclick', shakeIt);
}
}
});
function shakeIt(evt) {
var shakeItButton = evt.target.parentNode;
var id = shakeItButton.dataset.id;
var url = shakeItButton.dataset.url;
var shakenText = shakeItButton.dataset.shakentext;
var http = new XMLHttpRequest();
http.open('POST', url, true);
http.setRequestHeader('Content-type', 'application/json');
http.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
var shakesElem = document.getElementById('msalsas-voting-shakes-' + id);
shakesElem.text = document.createTextNode(http.responseText).wholeText;
var buttonElem = document.getElementById('msalsas-voting-a-shake-' + id);
buttonElem.innerHTML = '<span>' + shakenText + '</span>';
} else if(http.readyState == 4 && http.status >= 400) {
showModal(http.responseText);
}
};
http.send();
}
function showModal(message) {
message = message.replace (/(^")|("$)/g, '');
var modal = document.getElementById('msalsas-modal');
var span = document.getElementsByClassName("msalsas-close")[0];
if (!modal || !span) {
alert(message);
return;
}
document.getElementById('msalsas-modal-text').innerText = message;
modal.style.display = "block";
if (span.addEventListener) {
span.addEventListener('click', closeModal, false);
} else {
span.attachEvent('onclick', closeModal);
}
if (window.addEventListener) {
window.addEventListener('click', closeModal, false);
} else {
window.attachEvent('onclick', closeModal);
}
}
function closeModal(event) {
var modal = document.getElementById('msalsas-modal');
var span = document.getElementsByClassName("msalsas-close")[0];
if (event.target === modal || event.target === span) {
modal.style.display = "none";
}
}
})();
|