// 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, params) { var date = new Date(); date.setDate(date.getDate() + days); document.cookie = assign + '; expires=' + date + (params || ''); } /** Verify current Adminer version */ function verifyVersion() { cookie('adminer_version=0', 1); var script = document.createElement('script'); script.src = 'https://adminer.svn.sourceforge.net/svnroot/adminer/trunk/version.js'; document.body.appendChild(script); } /** 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)$/i.test(el.tagName)) { return; } el = el.parentNode; } el = el.firstChild.firstChild; el.click && el.click(); el.onclick && el.onclick(); } /** Add row in select fieldset * @param HTMLSelectElement */ function selectAddRow(field) { var row = field.parentNode.cloneNode(true); var selects = row.getElementsByTagName('select'); for (var i=0; i < selects.length; i++) { selects[i].name = selects[i].name.replace(/[a-z]\[[0-9]+/, '$&1'); selects[i].selectedIndex = 0; } var inputs = row.getElementsByTagName('input'); if (inputs.length) { inputs[0].name = inputs[0].name.replace(/[a-z]\[[0-9]+/, '$&1'); inputs[0].value = ''; inputs[0].className = ''; } field.parentNode.parentNode.appendChild(row); field.onchange = function () { }; }