﻿//////////////////////////////////
//
// tableManager object
//
//////////////////////////////////
var helpNotSelected = "Vous devez d'abord sélectionner une ligne en cliquant sur le texte.";

var SortableTable = new Object();

SortableTable.manager = function(data)
{
	this.selected = null;
	if( data )
	 this.associatedData = data;
}

SortableTable.manager.prototype =
{
	rowSelected: function(row)
	{
		if (this.selected != row)
		{
			row.className += " selected";
			
			if (this.selected)
			{
				var prevClass = this.selected.className;
				this.selected.className = prevClass.slice(0, prevClass.indexOf("selected"));	
			}
			
			this.selected = row;
		}
	},
	
	rowDeselect: function(row)
	{
		if (this.selected == row)
		{
			var prevClass = this.selected.className;
			this.selected.className = prevClass.slice(0, prevClass.indexOf("selected"));	
			
			this.selected = null;
		}
	},
	
	moveUpRow: function()
	{
		var row = this.selected;
		
		if (!row)
		{
			alert( helpNotSelected );
			return false;
		}
		if (row.sectionRowIndex == 0)
			return false;
			
		var rows = row.parentNode.rows;
		
		row.parentNode.insertBefore(row, rows[row.sectionRowIndex-1]);
		return true;
	},
	
	moveDownRow: function()
	{
		var row = this.selected;
		
		if (!row)
		{
			alert( helpNotSelected );
			return false;
		}
			
		var rows = row.parentNode.rows;
		
		if (row.sectionRowIndex == rows.length - 1)
			return false;
		
		row.parentNode.insertBefore(rows[row.sectionRowIndex + 1], row );
		return true;
	},
	
	deleteRow: function()
	{
		var row = this.selected;
		
		if (!row)
		{
			alert( helpNotSelected );
			return false;
		}
		
		row.parentNode.deleteRow(row.sectionRowIndex);
		this.selected = null;
		return true;
	},
	
	dynamicFunction: function( myFunction )
	{
		var row = this.selected;
		
		if (!row)
		{
			alert( helpNotSelected );
			return false;
		}
		return myFunction(row, this.associatedData);
	}
}
