﻿function toggleAllCheckboxes(chk, column) {
	if(chk != null && typeof(chk.checked) != "undefined") {
		var tbl = chk.parentNode, regex = /table/i, boxes;
		while (tbl != null && !regex.test(tbl.tagName)) { tbl = tbl.parentNode; }
		boxes = getAllCheckboxes(tbl, column, false);
		if (boxes.length > 0) {
			for (var i = 0; i < boxes.length; i++) {
				boxes[i].checked = chk.checked;
			}
		}
	}
}

function getAllCheckboxes(tbl, column, includeFirst) {
	var regex = /table/i, boxes, arFinal = [];	
	if (tbl != null && typeof(tbl.rows) != "undefined") {
		for (var i = (includeFirst) ? 0 : 1; i < tbl.rows.length; i++) {
			boxes = tbl.rows[i].cells[column].getElementsByTagName("input");
			for (var j = 0; j < boxes.length; j++) {
				if (boxes[j].type == "checkbox") arFinal.push(boxes[j]);
			}
		}
	}
	return arFinal;
}

function getAllCheckboxesDivTable(div, column, includeFirst) { return _getAllInputsDivTable(div, column, includeFirst, "checkbox"); }
function getAllRadiosDivTable(div, column, includeFirst) { return _getAllInputsDivTable(div, column, includeFirst, "radio"); }

function _getAllInputsDivTable(div, column, includeFirst, type) {
	var rows, cells, boxes, arFinal = [];
	if (div != null && div.childNodes.length > 0) {
		rows = Explorica.getChildNodes(div, "div");
		for (var i = (includeFirst) ? 0 : 1; i < rows.length; i++) {
			cells = Explorica.getChildNodes(rows[i], "div");
			boxes = cells[column].getElementsByTagName("input");
			for (var j = 0; j < boxes.length; j++) {
				if (boxes[j].type == type) arFinal.push(boxes[j]);
			}
		}
	}
	return arFinal;
}