/**
 * Creates an SC window with a htmlFlow to show content
 * @param id
 * @param title
 * @param url
 * @param width
 * @param height
 * @param modal
 * @return
 */
function createWindow( id , title , url , width , height )
{
	isc.HTMLFlow.create({
	    ID: id +"flow",
	    width: width,
	    height: height,
	    contentsURL: url
	});
	
	isc.Window.create({
		ID: id,
	    title: title,
	    autoDraw:true,
	    autoSize: true,
	    canDragReposition: true,
	    canDragResize: true,
	    width: width,
	    height: height,
	    top: 24,
	    items: [
	        id +"flow"
	    ]
	});
}

/**
 * Shows up the add form
 * @param layout
 * @param listMember
 * @param addMember
 * @return
 */
function showAddForm( layout , listMember , addMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	if ( addMember == null )
	{
		addMember = 1;
	}
	
	layout.getMember( listMember ).hide();
	layout.getMember( addMember ).show();
}

/**
 * Save the add form
 * @param form
 * @param layout
 * @param listMember
 * @param addMember
 * @return
 */
function saveAddForm( form , layout , listMember , addMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	if ( addMember == null )
	{
		addMember = 1;
	}
	
	form.saveData( function() {
		form.editNewRecord();
		layout.getMember( addMember ).hide();
		layout.getMember( listMember ).show();
	});
}

/**
 * Cancel add form
 * @param layout
 * @param listMember
 * @param addMember
 * @return
 */
function cancelAddForm( layout , listMember , addMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	if ( addMember == null )
	{
		addMember = 1;
	}
	
	layout.getMember( addMember ).hide();
	layout.getMember( listMember ).show();
}

/**
 * Show edit form
 * @param grid
 * @param layout
 * @param form
 * @param listMember
 * @param editMember
 * @return
 */
function showEditForm( grid , layout , form , listMember , editMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	if ( editMember == null )
	{
		editMember = 2;
	}
	
	rows = grid.getSelection();

	// Check if one row is selected 
	if ( rows.length == 1 )
	{
		layout.getMember( listMember ).hide();
		layout.getMember( editMember ).show();
		form.setData( grid.getSelection() );
		
		return true;
	}
	else
	{
		isc.warn( 'Please, select one row to edit.' );
		
		return false;
	}
}

/**
 * Save edit form
 * @param form
 * @param layout
 * @param listMember
 * @param editMember
 * @return
 */
function saveEditForm( form , layout , listMember , editMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	if ( editMember == null )
	{
		editMember = 2;
	}
	
	form.saveData( function() {
		layout.getMember( editMember ).hide();
		layout.getMember( listMember ).show();
	});
}

/**
 * Cancel edit form
 * @param layout
 * @param listMember
 * @param editMember
 * @return
 */
function cancelEditForm( layout , listMember , editMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	if ( editMember == null )
	{
		editMember = 2;
	}
	
	layout.getMember( editMember ).hide();
	layout.getMember( listMember ).show();
}

/**
 * Show layout with grid
 * @param layout
 * @param currentMember
 * @param listMember
 * @return
 */
function showList( layout , currentMember , listMember )
{
	if ( listMember == null )
	{
		listMember = 0;
	}
	
	layout.getMember( currentMember ).hide();
	layout.getMember( listMember ).show();
}


/**
 * Delete selected data on grid
 * @param grid
 * @return
 */
function deleteData( grid )
{
	rows = grid.getSelection();
	if ( rows.length == 0 )
	{
		isc.warn( 'Please, select a row to delete.' );
	}
	else
	{
		isc.confirm( 'Are you sure you want to remove the selected rows?' , function( value )
				{
					if ( value )
					{
						grid.removeSelectedData();
					}
				}
		);
	}
}
