// to hide elements displayed by JavaScript document.body.className += ' js'; /** Toggle visibility * @param string * @return boolean */ function toggle(id) { var el = document.getElementById(id); el.className = (el.className == 'hidden' ? '' : 'hidden'); return true; } /** Set permanent cookie * @param string * @param number * @param string optional */ function cookie(assign, days) { var date = new Date(); date.setDate(date.getDate() + days); document.cookie = assign + '; expires=' + date; } /** Verify current Adminer version */ function verifyVersion() { cookie('adminer_version=0', 1); var script = document.createElement('script'); script.src = location.protocol + '//www.adminer.org/version.php'; document.body.appendChild(script); } /** Get value of select * @param HTMLSelectElement * @return string */ function selectValue(select) { return (select.value !== undefined ? select.value : select.options[select.selectedIndex].text); } /** Check all elements matching given name * @param HTMLInputElement * @param RegExp */ function formCheck(el, name) { var elems = el.form.elements; for (var i=0; i < elems.length; i++) { if (name.test(elems[i].name)) { elems[i].checked = el.checked; } } } /** Uncheck single element * @param string */ function formUncheck(id) { document.getElementById(id).checked = false; } /** Get number of checked elements matching given name * @param HTMLInputElement * @param RegExp * @return number */ function formChecked(el, name) { var checked = 0; var elems = el.form.elements; for (var i=0; i < elems.length; i++) { if (name.test(elems[i].name) && elems[i].checked) { checked++; } } return checked; } /** Select clicked row * @param MouseEvent */ function tableClick(event) { var el = event.target || event.srcElement; while (!/^tr$/i.test(el.tagName)) { if (/^(table|a|input|textarea)$/i.test(el.tagName)) { return; } el = el.parentNode; } el = el.firstChild.firstChild; el.click && el.click(); el.onclick && el.onclick(); } /** Set HTML code of an element * @param string * @param string undefined to set parentNode to   */ function setHtml(id, html) { var el = document.getElementById(id); if (el) { if (html == undefined) { el.parentNode.innerHTML = ' '; } else { el.innerHTML = html.replace(/