//////////////////////////////////////////////////////////////////////////
// Выбор строки                                                         //
//////////////////////////////////////////////////////////////////////////

function checkbox_grid_select_row( checkbox_grid_id, row )
{
	if(document.getElementById("checkbox_"+row+"_"+checkbox_grid_id).disabled) return;
	
	eval("var columns_count = checkbox_grid_columns_count_" + checkbox_grid_id);
	eval("var selected_row = checkbox_grid_selected_row_" + checkbox_grid_id);

	for ( var i = 0; i < columns_count+1; i++ )
	{
		if ( selected_row != -1 )
		{
			document.getElementById("checkbox_grid_cell_" + selected_row + "_" + i + "_" + checkbox_grid_id).className = "cell";
		}
		
			document.getElementById("checkbox_grid_cell_" + row + "_" + i + "_" + checkbox_grid_id).className = "selected_cell";
	}

	eval("checkbox_grid_selected_row_" + checkbox_grid_id + " = " + row);	
}

//////////////////////////////////////////////////////////////////////////
// Снятие выделения с выделенной строки                                 //
//////////////////////////////////////////////////////////////////////////

function checkbox_grid_unselect_selected_row( checkbox_grid_id )
{
	
	eval("var columns_count = checkbox_grid_columns_count_" + checkbox_grid_id);
	eval("var selected_row = checkbox_grid_selected_row_" + checkbox_grid_id);
	
	if ( (selected_row == -1) || document.getElementById("checkbox_"+selected_row+"_"+checkbox_grid_id).disabled) return;
	
	if(!document.getElementById("checkbox_"+selected_row+"_"+checkbox_grid_id).checked)
	{
		for ( var i = 0; i < columns_count+1; i++ )
		{
			document.getElementById("checkbox_grid_cell_" + selected_row + "_" + i + "_" + checkbox_grid_id).className = "cell";
		}
	}
	else
	{
		for ( var i = 0; i < columns_count+1; i++ )
		{
			document.getElementById("checkbox_grid_cell_" + selected_row + "_" + i + "_" + checkbox_grid_id).className = "checked_cell";
		}
	}

	eval("checkbox_grid_selected_row_" + checkbox_grid_id + " = -1");		
}

function checkbox_grid_select_all_rows( checkbox_grid_id )
{
	eval("var rows_count = checkbox_grid_rows_count_" + checkbox_grid_id);
	eval("var columns_count = checkbox_grid_columns_count_" + checkbox_grid_id);
	
	document.getElementById("checkbox_main_" + checkbox_grid_id).className = "full_selected_checkbox_background";
	
	for(var i = 0; i < rows_count; i++)
	{
		if(document.getElementById("checkbox_"+i+"_"+checkbox_grid_id).disabled) continue;
		
		document.getElementById("checkbox_"+i+"_"+checkbox_grid_id).checked = document.getElementById("checkbox_main_"+checkbox_grid_id).checked;
		
		for ( var j = 0; j < columns_count+1; j++ )
		{
			if(document.getElementById("checkbox_main_"+checkbox_grid_id).checked)	
				document.getElementById("checkbox_grid_cell_" + i + "_" + j + "_" + checkbox_grid_id).className = "checked_cell";
			else
				document.getElementById("checkbox_grid_cell_" + i + "_" + j + "_" + checkbox_grid_id).className = "cell";
		}
	
		
	
	}
}

function checkbox_grid_check_row( checkbox_grid_id, row )
{
	if(document.getElementById("checkbox_"+row+"_"+checkbox_grid_id).disabled) return;
	
	document.getElementById("checkbox_"+row+"_"+checkbox_grid_id).checked = !document.getElementById("checkbox_"+row+"_"+checkbox_grid_id).checked;
	
	eval("var columns_count = checkbox_grid_columns_count_" + checkbox_grid_id);
	eval("var rows_count = checkbox_grid_rows_count_" + checkbox_grid_id);
	eval("var selected_row = checkbox_grid_selected_row_" + checkbox_grid_id);
	

	for ( var i = 0; i < columns_count+1; i++ )
	{
		if(document.getElementById("checkbox_"+row+"_"+checkbox_grid_id).checked)		
			document.getElementById("checkbox_grid_cell_" + row + "_" + i + "_" + checkbox_grid_id).className = "checked_cell";
		else
			document.getElementById("checkbox_grid_cell_" + row + "_" + i + "_" + checkbox_grid_id).className = "selected_cell";
	}
	
	var checked_count = 0;
	var disabled_count = 0;
	
	for (var i = 0; i < rows_count; i++)
	{
		if(document.getElementById("checkbox_"+i+"_"+checkbox_grid_id).checked)
			checked_count++;
		if(document.getElementById("checkbox_"+i+"_"+checkbox_grid_id).disabled)
			disabled_count++;
	}
	
	if(checked_count >= 0 && checked_count < rows_count-disabled_count)
	{
		document.getElementById("checkbox_main_" + checkbox_grid_id).className = "partly_selected_checkbox_background";
		document.getElementById("checkbox_main_" + checkbox_grid_id).checked = false;
	}
	else
	{
		document.getElementById("checkbox_main_" + checkbox_grid_id).className = "full_selected_checkbox_background";
		if(checked_count == rows_count-disabled_count)
			document.getElementById("checkbox_main_" + checkbox_grid_id).checked = true;
	}

	eval("checkbox_grid_selected_row_" + checkbox_grid_id + " = " + row);
}

function ckeckbox_grid_commit( checkbox_grid_id, confirmation_question, empty_commit_alert )
{
	eval("var rows_count = checkbox_grid_rows_count_" + checkbox_grid_id);
	var checked_count = 0;
	
	for(var i = 0; i < rows_count; i++)
	{
		if(document.getElementById("checkbox_"+i+"_"+checkbox_grid_id).checked)
			checked_count++;
	}
	
	if(checked_count > 0){
		submit_form_after_confirmation(checkbox_grid_id, confirmation_question);
	}else
		alert(empty_commit_alert);
}