%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/forum.interface/templates/table/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/forum.interface/templates/table/script.js |
function ForumTable(namespace, params) { t = this; this.namespace = namespace; this.params = (!params ? {"init_checkbox" : "Y"} : {}); this.checkbox = {}; this.rows = {}; this.switcher = false; this.info = {"count" : 0, "checked" : 0}; this.counter = false; this.Init = function() { var res = false; var row = false; var res1 = false; oTable = document.getElementById(namespace + '_table') if (!oTable || oTable.tagName != 'TABLE') return false; for (var ii = 0; ii < oTable.rows.length; ii++) { row = oTable.rows[ii]; id = false; if (!row || !row.parentNode || row.parentNode.nodeName != 'TBODY') continue; res = row.getElementsByTagName("INPUT"); for (var jj = 0; jj < res.length; jj++) { if (!res[jj] || !res[jj].name || !res[jj].type || res[jj].type.toLowerCase() != "checkbox" || res[jj].name == (this.namespace + '_all') || (res[jj].name.replace(/[^a-z0-9_]/ig, "") != this.namespace)) continue; id = res[jj].value; res[jj].onclick = new Function("this.checked=(!this.checked);") this.checkbox[id] = res[jj]; this.info["count"]++; break; } if (id) { row.id = this.namespace + '_row_' + id; row.onmouseup = function(){t.onRowClick(this)}; this.rows[id] = row; res = row.getElementsByTagName("A"); for (var jj = 0; jj < res.length; jj++) { if (!res[jj]) continue; res[jj].onmouseup = function(e){jsUtils.PreventDefault(e)}; } } row.onmouseover = new Function("this.className+=' marked';"); row.onmouseout = new Function("this.className=this.className.replace('marked', '');"); } if (this.info["count"] > 0) { if (document.getElementById(this.namespace + '_all')) { this.switcher = document.getElementById(this.namespace + '_all'); this.switcher.onclick = function(){t.selectAll()} } if (document.getElementById(this.namespace + '_counter')) this.counter = document.getElementById(this.namespace + '_counter'); } } this.onRowClick = function(oRow, bChecked) { if (!oRow || !oRow.id) return false; var res = oRow.id.split("_row_"); var id = parseInt(res[1]); if (!(id > 0)) return false; if (!this.checkbox[id]) return false; var oCheckBox = this.checkbox[id]; bChecked = ((bChecked == "Y" || bChecked == "N") ? bChecked : "U"); if (bChecked == "U") bChecked = (oCheckBox.checked ? "N" : "Y"); if (bChecked == "N") { this.info["checked"]--; oCheckBox.checked = false; oRow.className = oRow.className.replace(/checked/gi, ""); oRow.className = oRow.className.replace(/\s+/gi, " "); } else { this.info["checked"]++; oCheckBox.checked = true; oRow.className += " checked"; } if (this.switcher) { if (this.info["checked"] == this.info["count"]) this.switcher.checked = true; else this.switcher.checked = false; } if (this.counter) this.counter.innerHTML = this.info["checked"]; } this.selectAll = function() { if (!this.switcher) return false; var res = (this.switcher.checked ? "Y" : "N"); this.info["checked"] = (this.switcher.checked ? 0 : this.info["count"]); for (var ii in this.rows) { this.onRowClick(this.rows[ii], res); } return; } } function InitForumTable(id) { var oObjectTable = new ForumTable(id); oObjectTable.Init(); } FTableScriptLoaded = true;