function check_all(status){
	var checks = $("input.check_printing");
	var tbodys = $("table.selprint > tbody[class]");
	for (var j=0; j<tbodys.length; j++){
		if (status){
			tbodys[j].className = "page";
			checks[j].checked = "checked";				
		}else{
			tbodys[j].className = "noprint";
			checks[j].checked = "";

			var last_tr = tbodys[j].rows[tbodys[j].rows.length-1];
			last_tr.className = last_tr.className.replace(/page_break/,'');
		}
	}
}

function print_selected(listings, donotprint){
	var checks = $("input.check_printing");
	var tbodys = $("table.selprint > tbody[class]");
	var print_all = 1;
	for (var i=1;i<checks.length;i++){
		if (checks[i-1].checked != checks[i].checked){
			print_all = 0;
		}
	}
	if (print_all){
		tbodys.attr("class", "page");
	}else{
		for (var i=0;i<checks.length;i++){
			tbodys[i].className = (checks[i].checked) ? "page" : "noprint";
		}
	}

	var i = 0;
	var nr = 0;
	var vprint = 0;

	for (var j=0; j< tbodys.length; j++) {
		var trs = tbodys[j].rows;
		if (tbodys[j].className != "") {
			tbodys[j].className = (tbodys[j].className == "noprint" ? "noprint" : "page");
			trs[trs.length-1].className = trs[trs.length-1].className.replace(/page_break/,'');
		}
		if (tbodys[j].className == "page" || tbodys[j].className == "page_break"){
			vprint = 1;
			nr++;
			if (nr % listings == 0) {	
				trs[trs.length-1].className = trs[trs.length-1].className + " page_break";
				tbodys[j].className = "page_break";
			}
		} 
	}
	if (vprint == 0) {
		nr = 0;
		for (var j=0; j<tbodys.length; j++){
			if (tbodys[j].className == "noprint") {
				nr++;
				var trs = tbodys[j].rows;
				if (nr % listings == 0){
					tbodys[j].className = "page_break";
					trs[trs.length-1].className = trs[trs.length-1].className + " page_break";
				} else {
					tbodys[j].className = "page";
				}
			}
		}
	} 
	if (vprint == 0) {
		for(var j=0; j<tbodys.length; j++){
			if (tbodys[j].className == "page" || tbodys[j].className == "page_break"){
				tbodys[j].className = "noprint";
				var trs = tbodys[j].rows;
				trs[trs.length-1].className = trs[trs.length-1].className.replace(/page_break/,'');
			}
			var input_objs = tbodys[j].getElementsByTagName('input');
			for (var k=0; k<input_objs.length; k++){
				if (input_objs[k].className == "check_printing"){
					input_objs[k].checked = "";
				}
			}
		}
	}
	
	if (!donotprint) window.print();
}
