/* global alertify, store */ var feature = { addEventListener : !!window.addEventListener, querySelectorAll : !!document.querySelectorAll }; if (feature.addEventListener && feature.querySelectorAll) { var keys = getKeys(); for (var i = 0; i < keys.length; i++) { if (store.get(keys[i])) { var formId = keys[i].split('~')[1]; document.getElementById(formId).value = store.get(keys[i]); } } } var timerId = window.setInterval(function() { var saved = false; var inputs = document.querySelectorAll('input[type=text], textarea'); for (var i = 0; i < inputs.length; i++) { var key = getFormElement(inputs[i]).id + '~' + inputs[i].id; if (store.get(key) !== inputs[i].value && inputs[i].value !== '') { store.set(key, inputs[i].value); saved = true; } } if (saved === true) { alertify.logPosition('top right'); alertify.success('Auto saved text'); } }, 5000); var forms = document.querySelectorAll('form'); for (var f = 0; f < forms.length; f++) { var form = forms[f]; form.addEventListener('submit', function() { window.clearInterval(timerId); var formId = form.id; var storedKeys = store.keys(); for (var i = 0; i < storedKeys.length; i++) { if (storedKeys[i].indexOf(formId) > -1) { store.remove(storedKeys[i]); } } }); } function getKeys() { var keys = []; var formFields = document.querySelectorAll('input[type=text], textarea'); for (var f = 0; f < formFields.length; f++) { var parent = getFormElement(formFields[f]); if (parent !== false) { var key = parent.id + '~' + formFields[f].id; keys.push(key); } } return keys; } function getFormElement(elem) { if (elem.nodeName.toLowerCase() !== 'body') { var parent = elem.parentNode; if (parent.nodeName.toLowerCase() === 'form') { return parent; } else { return getFormElement(parent); } } else { return false; } }