
/**
 * Handler for list head checkbox
 * 
 * @param	Object(checkbox)	checkbox	Head checkbox object
 */
function editor_check_all(checkbox) {
	var e = checkbox.form[checkbox.name.replace('_all','')+'[]'];
	if(e != null) {
        if(e.length) {
        	for(var i=0; i<e.length; i++)
				e[i].checked = checkbox.checked;
        } else
			e.checked = checkbox.checked;
	}
}

/**
 * Handler for list row checkbox
 * 
 * @param	Object(checkbox)	checkbox	Row checkbox object
 */
function editor_check_row(checkbox) {
	var e = checkbox.form[checkbox.name];
	if(e != null) {
	    var checked_all = true;
    	if(e.length) {
			for(var i=0; i<e.length; i++)
        		if(!e[i].checked) 
					checked_all = false;
	    } else
    		checked_all = e.checked
	    checkbox.form[checkbox.name.replace('[]','')+'_all'].checked = checked_all;
    }
}

/**
 * Calculates number of checked rows
 * 
 * @param	Object(NodeList)	checkbox	Checkbox list object
 */
function editor_checked_number(checkbox) {
	var e = checkbox; //checkbox.form[checkbox.name];
	var checked_no = 0;
	if(e != null) {
		if(e.length) {
			for(var i=0; i<e.length; i++)
				if(e[i].checked) 
					checked_no++;
		} else
			checked_no = e.checked ? 1 : 0;
	}
	return checked_no;
}

/**
 * Refresh edit form
 * 
 * @param	Object(Form)	form	Form to refresh
 */
function editor_refresh_form(control, action) {
	if(!action) {
		action = control.form.action.replace('/save/', '/refresh/');
	}
	control.form.action = action;
	control.form.submit();
}
